Supporting True DevOps with Your Pipelines
by Ian David Rossi
In previous posts, we had highlighted the benefits of using global shared libraries with your Jenkins Pipelines and some best practices to employ when using them, namely, to create reusable functions and then compose those functions into pipelines that are reusable across teams. This is especially critical when working in a microservices architecture so that everything can be uniform for maximum automation.
Now we would like to expand this a bit more and show how a true DevOps model can be supported, not only by Jenkins, but by any CI/CD tool that allows for composability.
A Bit About DevOps
DevOps is a grand subject and I won’t delve into it here. I’ll just bring out a key DevOps concept that can be supported by what I’m about to demonstrate.
DevOps is all about continuous improvement and working together on a process. An engineer assigned to provide “DevOps capabilities” for an organization has the responsibility to facilitate key interactions of stakeholders with the process. For example, a developer needs to be able to easily commit changes to source code and quickly get feedback about quality. However, they also need feedback about the security of their change. Additionally, there may even be additional feedback they need regarding special rules (governament, medical) to comply with.
To Each His Own
Each of the aforementioned checks–quality, security and compliance–most likely have separate teams that are responsible for each. As a provider of DevOps capability, how can we facilitate each of these stakeholders in the process to continually improve the aspect of the process that they own, and make it easy for the developer?