It is undeniable that CI/CD pipelines for microservices have exhibited significant growth. Here, I go over five concepts which I think are crucial for managing proper and robust CI/CD pipelines. Hopefully, we’ll see better implementations in 2019!
Tips and tricks
Control your CI/CD processes for all services – Make sure you provide the right tools and features! You should always know what is going on in your CI/CD infrastructure, so you can change and enhance anything you want on the spot.
Make all CI/CD processes for all services are unified as much as possible – It’s important that all services have the same build, deployment, and tests skeleton. The logic should be implemented specifically in the service build configurations (POM, build.gradle, package.json, etc.), but the processes should remain the same. In that way, your Ops will be able to support each service CI/CD process without getting into it too deeply.
Enforce governance outside the service code – Write the tools and code that make some post-build actions like static code analysis, DB saves, or security scans, so developers won’t be able to mark steps unintentionally. In that way, you can fulfill mandatory standards and corporate rules.
Hold all CI/CD configurations in a single location and make sure all services inherit from this location –Every plugin, version, and release behavior should be stored in a single location. If you add new behavior, upgrade a dependency or plugin version, then you should do it from a single location. That way, it will be implemented for all services instantly.
If you cannot find the perfect tool, take control and develop it – If your organization deploys in a different way or maintains a specific style, it’s likely that you won’t be able to find the right tools for the problem. Develop it yourself instead. Maven plugins, Node.js plugins, and any other packages can ensure unified way all services are running in the same way exactly as you need and in that way – Ops can support all services.
Interested in integrating a CI/CD pipeline for your microservices environment? Nir Koren will be at JAX DevOps in May 2019. His talk “CI/CD for microservices: Rule them all” is a part of the Continuous Delivery track, which is all about practical knowledge on how to automate software delivery and boost productivity. Join us at JAX DevOps in London this May!