Continuous Delivery with Jenkins: General Concepts
When supplying enterprise-level projects, you have to place a great emphasis on the process of continuous integration and rapid delivery of new product versions. This guide is intended to help you in solving this problem by means of a bundle of DevOps tools, that can be easily installed on any bare metal or cloud infrastructure, such as Virtual Private Cloud or Hybrid Cloud.
Here, we’ll implement a pretty complex example of enterprise application lifecycle, with its continuous integration and seamless migration throughout DevOps Pipeline, from development to production:
The flow above will be controlled by the Jenkins continuous integration server, that allows to unceasingly and automatically build, deploy, test and deliver new project versions to production.
Such DevOps management approach can be especially useful for cluster administrators (such as systems integrators, hosting service providers, enterprises, and ISV customers), as it can be easily implemented at any platform installation. Nevertheless, this advanced guide contains plenty of features and CI tips described, which can be interesting for developers of any kind.
And now, let’s start with the required preliminary configurations:
Setting Up Dedicated User Groups
First of all, you need to allocate separate hardware sets for all your project teams (one per each development phase, i.e. development > testing > production) and adjust the access permissions to make them completely isolated and not influenced by others. This task could be easily accomplished by leveraging the platform Multi-Regions for a Hybrid Cloud feature.
To start with, create three hardware node groups (within one region) and name them after the corresponding stages for more convenience (e.g. dev, test, production).
The next step is to prepare three user groups and attach them to the corresponding hardware - in our case the dev group has access to the dev hardware node group only, qa - to the test one, and ops should work specifically with the production set.
In such a way, users from the appropriate groups can use the specified sets of hardware only, but at the same time - they have a possibility to transfer their environments throughout the whole platform, between different teams' accounts.
Jenkins Continuous Integration Server Installation
Jenkins is a popular continuous integration server, that can help to increase developers' productivity greatly. In our case, it will be used to control the automatic performing of the required operations at different project’s lifecycle stages (i.e. to build the cloud DevOps pipeline itself) and, in such a way, to ensure its continuous delivery.
Also, you can install Jenkins manually by deploying its latest package to the existing Java environment.
Anyway, as a result, you’ll get the pure Jenkins installed, which should be properly adjusted before you can start organizing your application lifecycle. The required processes are described within the following documents:
- Manual Jenkins Server Configuration (a step-by-step instruction for a single time flow implementation)
- Jenkins Auto-Configuration via Add-on (creating a configuration template to simplify multiple projects delivery)
So, choose the best-suited for you option and proceed by navigating to the appropriate guide.