Saturday, April 30, 2022

Capstone DevOps Project

Part -1 Mid Term Capstone Project

 Finish Part-1 before starting this project.

You are promoted to Senior DevOps Engineer and now your responsibility is to provide an end-to-end CI/CD Automation pipeline for SDLC.

Tools to be used

  • Version Control:- git and Github
  • Build Automation:- Maven
  • IaC : Ansible
  • Containerization: Docker
  • CI/CD: Jenkins
  • Orchestration: Kubernetes
  • Testing: Create a Dummy job

Task 1 (Developer Task): Create a java maven project which builds the project and generates a war file and also adds the Unit Test cases for your maven project.


Create an Html or any web file which to is published on the Apache server
Create a database script for docker image which basically has a following details
  •    Database Name: company
  •    Database Table: employee (name and mobile)

Task 2(Developer Task): Commit the changes to the local repository and once the changes have been finished for a particular module then it should be pushed to Github Repo.

Task 3(Developer + DevOps Task): Create the branches (main,dev1,dev2) for different developers locally as well on Github.

Task 4: (DevOps): Once the Code is in the main branch then there should be an automatic job triggered which builds the code and generate a war file.


The build job is to be created which will build the code. 

Task 5: (DevOps): A custom docker image is to be developed by using Dockerfile which has a tomcat docker base image the war file is to be added as a part of the final golden docker image.


A Docker image is to be developed for your web container and db container using Dockerfile and image should be created in such a way that web container can communicate to db container and stores the records in employee table

Task 6: (DevOps): Create a Jenkins job to push the docker image to the docker hub repository whenever there is a new build.

Task 7: (DevOps): A dummy Selenium Jenkins job is to be created which returns a pass result always but it has an email notification capability to send to the developer's email in case the test result is unstable. You can also run a docker container from the docker image and check container is in a running state if it is in the running state means job is successful.

Task 8: (DevOps): The worker nodes (node2 and node3) should have docker installed on them and it should be configured by using the Ansible playbook.

Task 9: (DevOps): Use the latest docker image to run the application in the Kubernetes environment with deployment having replica =3.

Task 10(DevOps): All the jobs above should follow the CICD pipeline rule as mentioned in the diagram. All the jobs should be automatically triggered as soon as the code is pushed into the main branch.



Post a Comment