In this post you will learn about Jenkins. Jenkins is a continuous integration server (continuous integration server is the practice of running tests on non-developer machine automatically every time when new code is pushed into source repository). It is written in Java. It provides many plugins that help to support building, deploying and automating any project. It can be installed through native system packages, Docker or even run standalone by any machine with the help of JRE (Java Runtime Environment). It automates multiple tasks including building, testing and delivering software.
Continuous integration server has tremendous advantage. It helps to provide information if all the tests working properly and getting fast feedback. Fast feedback helps you whenever you broke the build and introduce changes. So you get to know about the error codes and get rectified immediately. Continuous deployment and delivery are built on the top of continuous integration and Jenkins helps to speed up the deployment process.
Nowadays it has been used by many companies like Facebook, E-bay, GitHub etc. Jenkins can be easily modified and extended and is available for all the platforms and operating systems for example OS X, Windows or Linux.
Advantages of jenkins :
- It is open source and it is user-friendly, easy to install and does not require additional installations or components.
- It is free of cost.
- Easily Configurable. Jenkins can be easily modified and extended. It deploys code instantly, generates test reports. Jenkins can be configured according to the requirements for continuous integrations and continuous delivery.
- Platform Independent. Jenkins is available for all platforms and different operating systems, whether OS X, Windows or Linux.
- Rich Plugin ecosystem. The extensive pool of plugins makes Jenkins flexible and allows building, deploying and automating across various platforms.
- Easy support. Because it is open source and widely used, there is no shortage of support from large online communities of agile teams.
- Developers write the tests to detect the errors of their code as soon as possible. So the developers don’t waste time on large-scale error-ridden integrations.
- Issues are detected and resolved almost right away which keeps the software in a state where it can be released at any time safely.
- Most of the integration work is automated. Hence fewer integration issues. This saves both time and money over the lifespan of a project.
When any developer commits any changes to the source code, Jenkins will automatically pull the code and continuously build and test that code.
Jenkins has a lot of features like easy installation, easy configuration, extensible, etc.
Jenkins uses master-slave architecture to perform its tasks. Jenkins master pull the code every time there is a commit in the remote source code repository. It uses TCP/IP protocol to interact with the slaves. Jenkins master distributes its workload to all the slaves. On request from Jenkins master, the slaves carry out builds, tests and produce test reports. Jenkins slaves can be run on any platform like Windows, Linux, Mac OS, etc. and sends the results back to Jenkins master. Above diagram that show how the distributed architecture of Jenkins works:
No comments:
Post a Comment