5 tips for utilizing CI/CD for microservices
Are you trying to integrate a CI/CD pipeline into your microservices project? Here are five useful tips from JAX DevOps speaker Nir Koren. Protip: your pipelines will be more robust than ever as long as you can unify and control CI/CD processes.
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.
Feel free to join my session at JAX DevOps 2019 in London and see how we manage CI/CD pipelines in a microservices environment!