Jenkins is a most popular and pretty powerful open source continuous integration server and an automation platform. It integrates seamlessly with hundreds of tools and platforms that are used during software development lifecycle.
In world of DevOps, various tools help to achieve automation at various stages which helps in achieving Continuous Development( CD ) , Continuous Integration( CI ), Continuous Testing, Continuous Deployment , Continuous Monitoring to deliver a quality software to the customer at a very fast pace
Continuous Integration being the integral part of the DevOps lifecycle, I will be focusing on it and its tool in this post. Let’s understand the term “Continuous Integration”.
Continuous Integration: –
Continuous integration is a process in which all the development activities (every day activities) are integrated at a given point of time by compiling and building the project and well tested. The basic idea behind the continuous integration is to ensure that there are no compilation issues at the end of the day by numerous check ins made by the developers in a team. Also, this would enable to identify any compilation issues at the early stages of the development process.
In this process, all the developer’s activities are collaborated and merged at the central system (repository at which all the check ins are made). The main aim is to eliminate the “integration problems”. Each and every integration is automatically build, deployed and tested thoroughly.
Best Practices Of Continuous Integration:-
- Maintain a proper code repository.
- Automate the build process.
- Ensure every developer commits the files to the master branch every day.
- Every commit made should be build.
- Results of the build should be made transparent, so that all the developers will be aware of the quality of the build every day.
- Test the build in a production look-like environment.
- Broken builds should be fixed immediately.
- Everyone should be able to get the latest build from the master.
- Automate the deployment process.
Continuous Integration (CI) Tools holds the entire DevOps structure together.
It is the CI tools which helps in the automation of tools falling under other DevOps lifecycle phases. Be it, Continuous Development tools, or Continuous Testing tools, or Continuous Deployment tools, or even Continuous Monitoring tools, the Continuous Integration tools integrates with all of them.
Jenkins-A Continuous Integration Tool
Jenkins is a java based self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.
Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed.
Jenkins provide 1000+ plugins and is easily integrate with available tools in market like git, maven, ant, Selenium, Puppet and many more.
· When integrated with Git/ SVN, Jenkins schedule jobs by pulling the code from shared repositories automatically and make it ready for builds and testing (Continuous Development). Jenkins can build jobs either at scheduled times of day or whenever a commit is pushed to the central repository.
· When integrated with testing tools like Selenium, we can achieve Continuous Testing. How? The developed code can be built using tools like Maven/ Ant/ Gradle. When the code is built, then Selenium can automate the execution of that code by creating a suite of test cases and executing the test cases one after the other.
The role of Jenkins here would be to schedule/ automate “Selenium to automate test case execution”.
· When integrated with Continuous Deployment tools, Jenkins can trigger the deployments planned by configuration management or the containerization tools.
· Finally, Jenkins can also be integrated with Continuous Monitoring tools like Splunk/ ELK/ Nagios/ NewRelic, to continuously monitor the status & performance of the deployment server Continuous Deployment.
Now as we have got fair idea about DevOps, Continuous Integration and Jenkins, why not give Jenkins a try and start learning it. To start up with, refer to below section for the system requirements and to access the installation guide of Jenkins.
Jenkins requires Java7 or above to function. Java8 is recommended. Jenkins requires a fair amount of memory to operate well. Smaller installations should start around 256MB-1GB.
To install Jenkins on your favourite Operating system,follow the instructions provided here https://jenkins.io/doc/book/installing/
Once installation is complete and Jenkins is opened in browser, it will look something like this: —
Yes, Jenkins Dashboard is in front of you…. Get yourself comfortable with its beautiful UI.
Look forward to more stories covering Managing Plugins,Jenkins Integration with different Tools, Building Pipeline,will be sharing soon…..