Let’s pick up on Part I, where we described what Jenkins is and how it’s used. Now let’s try to explain the next steps and possibilities that Jenkins brings or how it helps with software delivery.
Automated testing
Tests are run and results are saved as part of the step in the pipeline where automated tests are performed. The goal is to make the code work under different scenarios defined by the testers. They do this in order to cover all possible issues that could mess up the delivery of the software, while at the same time verifying that there are no problems with existing functionality once the new version is deployed.
This automated testing phase is seamlessly integrated into the CI pipeline in Jenkins. Various plugins help run integration, functional and regression tests. Finally, the results are stored for later analysis.
Controller, formerly known as Master
The Jenkins architecture takes care of distributed builds. Controller is known as the central control unit and organizer. This controller is central to the Jenkins configuration process. It is this controller that manages the agents and their connections, helps load plugins, and generally coordinates the flow of the project.
Agent, formerly known as Slave
These agents connect to the Jenkins controller and run projects. One major prerequisite for agents is a Java installation on a physical or virtual machine or server, similar to Docker image installation or Kubernetes clusters. Jenkins agents help provide better and more balanced performance by balancing the build load to avoid overloading while separating these from the controller.
Node
Node is a generic term for agents and controllers, regardless of their actual role. In other words, any machine with the ability to create projects and pipelines is a node in Jenkins. Controller is also known as built-in node. When the built-in node monitors the status of the connected nodes and detects that the thresholds are exceeded, it disconnects them.
Project, also known as Job
A Jenkins project or Job is a user-created automation procedure with a specific goal. Jenkins offers various tasks by default, with more available via a plugin.
A list with short descriptions for some of project/job types:
Freestyle – “Anarchist” is an unlimited project/job. This is actually the main function of Jenkins, which builds your project, and connects any administration and versioning system to the build system.
Pipeline – A multi-stage project with multiple build agents. It organizes long-running activities that may involve multiple build agents.
Multi-configuration – Project/Job with multiple test environments and different configurations.
Multi-branch Pipeline – Project/Job that creates a set of pipeline projects/jobs according to branches in repositories.
Are you interested in the IT field and looking for job positions and opportunities in the IT industry? Whether you are a programmer, developer, tester, analyst, or software architect, contact us and we will find an IT project tailored to your needs from our IT job offers. Take a look at the current available job positions in the IT field. We will help you find new job challenges and opportunities. We look forward to collaborating with you!
Build
Build in Jenkins means building a job with the current configuration. Build creates software from various sources that are defined in the project workflow. Depending on the project, the build mechanisms include:
- dependency collection
- code compilation or transformation
- testing
- deployment in different environments
A build is therefore a single run time that is defined in a project with different steps.
How does it all work?
Jenkins takes the development steps from integration to deployment and automates each step along the way. So when a developer commits to the GIT, which is then revised by another developer who merges the code into the main branch, the build in Jenkins is automatically run. Code testing is also done in several steps during building to ensure that the build doesn’t break anything. However, if an error occurs, Jenkins will send information to the developer that the build ended with an error. Assuming the code tests pass, the pipeline can proceed to integration. Integration takes a little longer and requires code testing against multiple system configurations. Integration tests are performed in parallel on different nodes to reduce the time required to integrate the code. Automated tests are then run to verify that the deployed code doesn’t break anything already working.
Jenkins features
The main features of Jenkins are:
- Easy and simple installation. The Java-based program is autonomous and platform agnostic.
- Simple configuration. The web interface is user-friendly and simplifies configuration.
- Thanks to a large number of plugins, Jenkins is easily customizable. There are currently more than 1,700 plugins.
- One of the main reasons Jenkins is in high demand is it’s open-source. That means it’s free.
Pros and cons of Jenkins
Like any software, Jenkins has its advantages and disadvantages.
Pros:
- Fast development cycle. New features and software versions reach the customer (e.g. business) faster and with fewer bugs.
- It saves time when integrating code, because before Jenkins, code integration was a manual process and code debugging was quite complex. When Jenkins is used every time code is changed, errors are less likely and the software environment is stable.
- Quick feedback for development. If a build fails, the developers know immediately that something has gone wrong and can work to fix the problem.
- The automated job pipeline includes automated tests for each build.
Cons:
- It can be costly, as Jenkins requires a stable and robust infrastructure.
- Constant maintenance is needed. Maintaining a server running Jenkins is time consuming. Upgrading the server with new features and tracking plugin updates requires the administrator to restart and manage the server manually.
- Non-developers may get a bit confused. Jenkins is aimed at developers for a reason. Nowadays, developers need to be proficient with Jenkins. This skill is often requested on job applications.
I could write pages and pages on what can be done and set up in Jenkins and how to do it, but I mainly wanted to explain why it’s such a popular system in many companies. There are, of course, alternatives, whether paid or free.
🟡 Are you looking for an interesting project? Check out how we do things here and see which colleagues we're currently looking for.
🟡 Do you have a colleague or friend who is looking for a new project? Join our Referral program and get a financial reward for your recommendation.
🟡 Would you like to start working in IT? Download our ebook START WORKING IN IT: From First Steps to Dream Job, in which we guide you step by step with information, courses, and practical experience that are so essential not only for those who want to switch fields, but also for those who want to advance their careers and further their education.
Or share this article, which may also be useful to your acquaintances.