Times in software development are quickly changing. While in the past, software projects could take years, today an application can be built, deployed, and offered for sale in just a few months.
This new trend is possible thanks to concepts such as Continuous Integration and Continuous Deployment (CI/CD). These terms refer to the ability of automating all software development processes. Committing your code, building your application, testing the changes, and deploying them into production quickly is not magic: it is just the software development pipeline.
Automation and the ability to work in parallel by using an automation CI/CD tool such as Jenkins allow you to save a lot of time and avoid big breaking changes, so you can ensure the delivery of high-quality software.
Jenkins is an open source automation server that helps you automate the building, testing, and deployment of any project across multiple platforms. It can be extended with hundreds of plugins to better suit your needs. It also has a web interface from which you can easily manage your jobs.
Bitnami offers you a Jenkins cluster comprised by one master node and a configurable number of slaves, making it an essential piece of your deployment pipeline. Find it available in the Microsoft Azure Marketplace.
Based on our experience in getting applications into production in a fast and reliable way, we have created a ready-to-use Jenkins cluster comprised of three nodes (one master and two slaves) to adapt large-scale software pipelines with simplicity.
The Bitnami Multi-Tier Solution for Jenkins uses multiple VMs to enable a Jenkins master to distribute workloads out to a configurable number of build slaves using the Jenkins Swarm plugin.
Let's take a look at which tasks the master manages and which tasks the slaves manage in a Jenkins cluster:
The Jenkins master server is responsible for:
The Jenkins slave servers can handle the following:
In short, selecting a multi-tier solution has several advantages over a single virtual machine solution, such as:
The Bitnami Multi-Tier Solution for Jenkins in Azure is endowed with a 3.5 RAM and 50 GB of disk space in each machine. It is composed of three virtual machines by default: one acting as master node and two as slave nodes.
As mentioned above, the number of slave nodes in the cluster is configurable. To add more nodes to the cluster, launch more servers either when deploying the solution or after the cluster is created. Having more slave machines in your cluster means not only better distributing the workloads and jobs, but also ensures fail tolerance on your deployment. If a slave node goes down, jobs will be scheduled to a different slave.
To add more slave nodes to the set default quantity, indicate this in the “Number of slave machines to create” section when creating the cluster. You can launch up to 32 slave nodes on Microsoft Azure:
To add new nodes once the cluster is running, follow these instructions and redeploy the solution to make the changes take effect.
On an initial startup of the Bitnami Multi-Tier Solution for Jenkins, you will also take the advantage of:
The Bitnami Jenkins cluster, by default, includes the Docker plugin. Combining Jenkins and Docker will improve the speed and the coherence of your automation tasks, but you can also enjoy more advantages of this blend, because it:
With all this in mind, Bitnami Jenkins Cluster is an excellent choice to deal with multiple concurrent jobs and heavy workloads, while at the same time, it is a safe way to test your applications before taking them to production.
Click “Follow” on the Bitnami Jenkins Stack page to be informed about all the improvements and enhancements we are adding to this solution!