Background: I provide IT services for a multinational company that offers consulting and processing services. To support our clients, we created a DevOps platform: a tools environment for continuously testing, releasing, and maintaining applications. While there are many tools in the market, we needed one with enough flexibility to support our needs in any cloud, technology, and language. Jenkins was the answer to that.
We already have used Jenkins for Java and web technologies, but we wanted to build a platform that will support our clients' current needs and likely needs in the future*.* Whether the platform was supporting Salesforce, native mobile apps, Cobol on a Mainframe, or Scala, Jenkins gives us the ability to provision new jobs rapidly and to adapt to new technologies easily. Jenkins is the way!
Goals: Create a multi-cloud, all-technology platform that can be rapidly provisioned and easy to configure and run.
Solution & Results: To respond to our need for easy deployment, we containerized Jenkins, which was easy to achieve after basing our build in the official Jenkins image. We bundled the recommended plugins and exemplar configuration with it (e.g., integrated with OpenLDAP for auth/auth).
Without Jenkins, we would not have been able to deliver as much value without investing a lot more money and time.
To respond to our need for flexibility, we created reference pipelines for common languages and technologies and named that set: a cartridge. Cartridges are very easy to create and to provision thanks to Groovy API. In the more recent versions, we began to leverage Jenkins decorative pipelines, which further enhanced the experience of creating or providing a new pipeline for a new project, library, or application.
Jenkins has allowed us to deliver as much value without investing a lot more money and time. And it's helped us drive real results for our clients, including the ability to: