The tech landscape is changing rapidly. With the need for increased development velocity, CI/CD has become ubiquitous among most organizations. Yet, with the growing number of microservices, CI/CD may be tough to wrangle without the right strategy. At the same time, it’s difficult to keep pace with the constant evolution around CI/CD
With the number of microservices rising to the hundreds (or thousands) for some enterprises, maintaining consistent release strategies across the board could easily become a nightmare. If the goal is to replicate a unique CI/CD pipeline per microservice, pipeline automation and configuration management become top concerns.
“Automation will be the key"
Tools like Jenkins could enable this sort of automation. Companies should consider evolving their CI/CD pipelines with better configuration management.
What is Jenkins?
Jenkins is an open-source automation server. With Jenkins, organizations can accelerate the software development process by automating it. Jenkins manages and controls software delivery processes throughout the entire lifecycle, including build, document, test, package, stage, deployment, static code analysis and much more.
You can set up Jenkins to watch for any code changes in places like GitHub or Bitbucket and automatically do a build with tools like Maven and Gradle. You can utilize container technology such as Docker and Kubernetes, initiate tests and then take actions like rolling back or rolling forward in production.
Jenkins has become an indispensable tool in helping them achieve those goals. Jenkins has been a key enabling technology that is increasingly helping DevOps practices gain widespread adoption in many organizations around the world.
How it Works?
Jenkins triggers a build upon every commit to the source code repository, typically to a development branch. Jenkins can be configured to run an initial suite of unit tests to ensure that the commit did not “break the build”.
If the tests do not pass, the developer can be immediately notified to take corrective action. This puts to rest the question of “What broke to build?” as it is easy to determine which commit caused the build to fail. If all the unit tests pass, then the build pipeline can proceed to the next phase with integration tests which typically take longer to run.
Jenkins provides the ability to run a build in parallel across multiple machines to minimize the total amount of time it takes to complete many of these activities. Finally, Jenkins can deploy the build to an environment that allows for any needed testing before releasing it into production.
Benefits of Jenkins
Jenkins is an open-source tool that is extremely easy to install and use. You need no extra components to use it
It is free and available to be used with different platforms, such as Windows, Linux, macOS, and others
It is widely used, so finding support on online communities is not a big problem
Jenkins automates all integration work. Integration issues are scarce, and so, it helps in saving time and money over the project lifecycle.
It is easy to configure, extend, and modify. It allows the instant generation of tests and building, automation, and deployment of code on different platforms
Jenkins can be configured to run CI and CD concepts properly
It can easily detect and fix issues. The software is always ready for a sudden release
Supports a variety of plugins, which allows better flexibility
It helps in detecting errors very early, thus saving developers a lot of time and hard work
Some Use Cases
- D4Science
To promote open science practices and support scientific communities while serving 11k registered users in 45 countries, D4Science introduced a new delivery pipeline that replaced their pre-existing build platform.
Of course, they had to build and release their software framework (gCube) in a way that would support multi-project releases at scale — from 200+ Git repositories within the same day! It had to be fast, automate all release activities, and it had to deliver incremental releases to address user requirements quickly. Most of all, the solution had to be cost-effective.
Using Jenkins, they created an innovative approach to software delivery: a continuous integration/continuous delivery (CI/CD) pipeline, scalable, easy to maintain, and upgradable at a minimal cost.
- Gainsight
Gainsight’s customer service experience platform helps customer success teams at more than 100 leading IT and healthcare clients. How? By driving engagement for tens of thousands of their customers.
That’s why the engineering team at Gainsight approached the customer experience by building a smarter, faster DevSecOps platform using Jenkins. They stuck to an infrastructure-as-code approach while integrating various tools and programming languages all within the platform. And they secured processes with better visibility and air-tight quality control.
The result was a flexible DevSecOps infrastructure, 95% of which is scalable with code. And the cost of infrastructure costs was 40% less. That provides Gainsight with ease of collaboration, keener operational insight, and — because builds are 30% faster — the ability to stay a step ahead of the competition.
- Avoris Travel
Part of Barceló Group, Ávoris Travel is behind prominent destination travel brands like LeSki, Le Musik, and a selection of author travels under its "Viagens Com Assinatura" signature travel concept. A proprietary database and a smart, dynamic booking engine are the tickets to offering differentiating and inventive travel opportunities.
Also unique to Avoris is a discreet machining technology that enables agents to enter specific criteria to search and find all types of trips and travel opportunities across the entire network.
"Our infrastructure is very important because we have to be online to meet customer demand anywhere in the world," said Alejandro Alvarez Vazquez, Sysadmin, Avoris Travel. "Our CI/CD platform is used by 200 people. The services that we build and deploy are used by thousands of potential clients and by our network of 675 own agencies located in Spain and Portugal."
Final Thoughts
Jenkins has become an indispensable tool in helping them achieve those goals. Jenkins has been a key enabling technology that is increasingly helping DevOps practices gain widespread adoption in many organizations around the world.
Looking towards the future, Jenkins has found a sweet spot in many DevOps environments. Some have even called it “the engine of DevOps”. the use of the cloud and containers. Jenkins can run in the cloud (AWS, Google, Azure, IBM, etc.), and leveraging technologies like Docker and Kubernetes give Jenkins additional flexibility, speed, and reliability to meet the demands of today’s modern cloud-native, microservices-based applications. The future looks very bright for Jenkins as a key enabling technology for CI/CD pipelines for companies around the world.