Case Study: Industry use-cases of Jenkins
Nowadays, in almost all industry, we need some tools which help in automating the whole process… from continuous integration to continuous deployment and delivery(CI/CD). One of the tool for CI/CD is Jenkins.
What is CI/CD?
CI/CD is a method to frequently deliver apps to customers by introducing automation into the stages of app development. The main concepts attributed to CI/CD are continuous integration, continuous delivery, and continuous deployment. CI/CD is a solution to the problems integrating new code can cause for development and operations team.
Jenkins is an open-source automation server that enables developers around the world to reliably build, test, and deploy their software.
In Jenkins, we use plugins for Continuous Integration purposes. Jenkins is used to built and test your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build.
Jenkins is one of the most used tools in the Industry for CI/CD purposes. Almost 2833 companies reportedly use Jenkins in their tech stacks, including Facebook, Netflix, and Udemy.
How Industry works with Jenkins…?
When developer pushes the code to GitHub, how fast client gets access to those new features matter a lot in today's competitive world. Jenkins is a CI/CD tool that helps in this process of integrating multiple tools. Let’s discuss steps one by one…
- Jenkins fetch code from Github after developer pushes the code; we can use triggers also so that whenever some new code is pushed by developer, Job tun again automatically.
- For connecting Github with Jenkins, we have plugins for Github. We need to install those plugins first.
- After this, we build the application again using tools like Maven.
- We run this tool first on local server to check everything works fine.
- If not, it again sent a notification to the developer to re-check the code.
- Else it sent code to the production server.
These are some basic steps that I try to explain above how Jenkins actually works in the industry.
In Netflix, multiple tools and techniques they used to go from source code to a deployed service serving movies and TV shows to more than 75 million global Netflix members. They used Jenkins to integrate these tools to make the process automated.
In Netflix, they use tools like Git, Nebula, Jenkins, Bakery, and Spinnaker.
- Nebula help in built and test the code locally.
- A Jenkins job executes Nebula, which builds, tests, and packages the application for deployment.
- Builds are “baked” into Amazon Machine Images.
Once a line of code has been built and tested locally using Nebula, it is ready for continuous integration and deployment. The first step is to push the updated source code to a git repository. Teams are free to find a git workflow that works for them.
Once the change is committed, a Jenkins job is triggered. They started with a single massive Jenkins master in our datacenter and have evolved to running 25 Jenkins masters in AWS. Jenkins is used throughout Netflix for a variety of automation tasks above just simple continuous integration.
A Jenkins job is configured to invoke Nebula to build, test, and package the application code. If the repository being built is a library, Nebula will publish the .jar to our artifact repository. If the repository is an application, then the Nebula os package plugin will be executed. Using the Nebula os package (short for “operating system package”) plugin, an application’s build artifact will be bundled into either a Debian or RPM package, whose contents are defined via a simple Gradle-based DSL. Nebula will then publish the Debian file to a package repository where it will be available for the next stage of the process, “baking”.
When a Jenkins job is successful, it typically triggers a Spinnaker pipeline. Spinnaker pipelines can be triggered by a Jenkins job or by a git commit. Spinnaker will read the operating system package generated by Nebula, and call the Bakery API to trigger a bake.
Like Netflix, many other industries using Jenkins and solving their use cases in a very effective manner.
Thanks for reading :)