Development and Operations (DevOps) is a management culture that improves the IT service delivery agility on the basis of communication, collaboration and integration. It has become very critical to shorten the time to production for software as well as accepting change requests frequently. This requires a flexible method such as agile software development approach which can accelerate time to market and improve code quality.
In this blog series I will introduce you to Jenkins and how it can be used to automate your business processes (continuous deployment). I will do this in three phases;
Jenkins is a powerful application that allows continuous integration and continuous delivery of projects, regardless of the platform you are working on. It is a free source that can handle any kind of build or continuous integration. You can integrate Jenkins with a number of testing and deployment technologies. This means that you can use Jenkins to build and test your software projects continuously and push them to production.
Continuous Integration (CI)- Continuous integration is a development practice that requires developers to integrate code into a shared repository several times a day. It is a process of running your tests on a non-developer (say testers) machine automatically when someone pushes new code into the source repository. This can be at GitHub level
Continuous Delivery (CD)- Continuous Delivery is similar to Continuous Integration. You are building a product that can be released to production at any time. Continuous Delivery requires building, testing, and releasing faster and more frequently. This is at the staging environment or the pre-production environment.
Continuous Deployment (CD) - Continuous deployment is a strategy for software releases wherein any code commit that passes the automated testing phase is automatically released into the production environment, making changes that are visible to the software's users.
Below is a figure showing the different levels of Dev Ops
Prerequisite
Install openjdk-8 and maven
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo apt-get install maven
Install language package
sudo apt-get install language-pack-en
Install Jenkins
wget -q -O - https://pkg.jenkins.io/debian/ jenkins.io.key | sudo apt-key add -
echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
sudo apt-get update
sudo apt-get install jenkins
Install Apache2
sudo apt-get install apache2
sudo a2enmod proxy
sudo a2enmod proxy_http
Edit jenkins configuration file and specify the port, servername as well as other security configurations.
/etc/apache2/sites-available/jenkins.conf
ServerName YOURHOSTNAME
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost on
ProxyPass / http://localhost:8080/
</VirtualHost>```
Enable jenkins.conf file and restart apache2
sudo a2ensite jenkins
sudo service apache2 reload
Visit the browser to finish th setup by entering the IP of the server and the port. You might want to use sudo
to open the file containing the password.
Install the most used dev plugins when prompted to do so.
Now you have Jenkins installed and running on your ubuntu machine. Next time we will at the process of creating a pipeline to build Java projects from your Github repository with maven, test the code, create docker images and push them to docker hub
Have fun and watch this space for the second phase of this project!.
To make a comment you have to login
1 Comments
Testing commenting on my blog