Welcome to the Jenkins Basics. Jenkins is a CI-CD tool. If you want to learn more about Continuous Integration. Continuous Delivery and Continuous Deployment, go through a separate unit on that, click here. In this blog, we are going to understand the basics of Jenkins, its characteristics, benefits, and comparison with the other tools in the same genre.
What is Jenkins?
Jenkins is a powerful application which helps with Continuous Integration and Continuous Deployment regardless of the platform you are working on. It is an Open-Source tool written in Java. We can integrate Jenkins with a number of tools from SCM, Build to Testing and from Code Quality to Deployment.
Hudson is a very popular open-source continuous integration tool by Sun Microsystem which was later acquired by Oracle and a fork was created from Hudson code, which brought the introduction of Jenkins
System Requirement
JDK | JDK 1.5 or later |
Memory | 2 GB (recommended) |
Operating System | Windows, Ubuntu/Debian, Red Hat/Fedora/CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo |
Disk Space | No minimum requirement. Since all the builds are stored in Jenkins, it should be kept accordingly. |
Why Jenkins?
Jenkins allows you to continuously deliver your software by integrating with a large number of development and testing benefits. With Jenkins, the organization can excel in their software development lifecycle. Jenkins achieve continuous integration with the help of various plugins assigned in different steps of SDLC.
Features of Jenkins
- Jenkins is written in Java, so compatible with most of the operating systems.
- It automatically triggers the build when the code gets a new commit.
- Jenkins deploy code in different environment passing various tests, which makes it a Continuous Delivery tools also.
- Jenkins can distribute the builds to different environments when using as Master-Slave Architecture.
- It can even send notifications for builds such as emails or to the tools like Slack, Jira, etc
Before Jenkins
Before the introduction of continuous integration, the way of code building and release was different. Let’s take this scenario and go through the issues without Continuous Integration:
- Developers have to wait until the software is tested by the Testing team.
- There were chances of having multiple bugs and it was difficult for developers to check which part of the code has bugs.
- The whole process was manual which increases the risk of failure.
- It decelerates the delivery process.
- The quality of the software gets compromised.
After Jenkins
When Jenkins was introduced, it became a very vital component in the software development lifecycle. To overcome all the issues we had with manual setup, Jenkins started getting used majorly among the organizations. Let’s update the above scenario with the implementation of Jenkins:
- Developers don’t have to wait for their code to get tested as the testing practice can be automated.
- Even if multiple bugs are there in code, developers can understand which part of the code is throwing the error. Even if the code fails to build, the concerned teams will get notified.
- The whole process is automated and hence there are no chances for manual error.
- It accelerates the delivery process as it polls the source code repository for the new commits.
- The quality of the code will be increased.
Advantages of Jenkins
- It is an Open-Source tool.
- It is easy to install.
- It has a better UI and UX and easy to use.
- It is free of cost.
- It has 1000+ major and minor plugins.
- You can write your own plugins if you don’t find the one which suits your requirement.
- It is built in Java, so portable in most of the platforms.
- It has the largest community base and support.
- It can deploy directly to test or production making it a CI-CD tool.
Disadvantages of Jenkins
- Jenkins is not complaint with non-java environments which might be some client requirements.
- Jenkins is not the best tool for .net projects.
- It doesn’t support two-factor authentication.
Jenkins vs other tools
Conclusion
Jenkins has a very vital place in the DevOps Ecosystem. It provides all the functions for a CI-CD system. It also helps in automating almost all the DevOps tasks and has the opportunity to add plugins as per our requirement. Even you can contribute to the Jenkins codebase at https://jenkins.io/participate. In the next blog, we will go through the Installation and Configuration of Jenkins. To go through it, click here.
Stay tuned with linuxnix.com.
Latest posts by Ankesh K (see all)
- Deep-Dive into Jenkins – What are all Jenkins functionalities ? - January 10, 2019
- What are different Maven Plugins and how to build a Maven project? - January 7, 2019
- What is a Maven POM File and what are different Maven Repositories? - January 3, 2019
- What is Maven and what are its benefits? - December 31, 2018
- What are the different ways to install Jenkins ? - December 27, 2018