DevOps Project with full CI/CD pipeline
Below tools are used to setup CI/CD pipeline
Git - For the local version control system
GitHub - For the distributed version control system
Jenkins - Continuous integration tool
Maven - Build tool
Ansible - For configuration management and deployment tool
Docker - Containerization
Kubernetes - Container management tool
All the tools were setup on different EC2 instances and configured.
In this project, first of all code will be committed to GitHub, which is going to be pulled by continuous integration tool Jenkins by integrating GitHub with Jenkins. After that, the code will be built by Maven and copy artifacts to configuration management tool Ansible, It will generate a docker image and push it to the docker hub along with deploying the container on Kubernetes. This all process will be done by ansible playbook. At last Kubernetes pull the docker image from the docker hub and deploy it on different replicas available in the cluster. I have used Kubernetes for the container management tool instead of docker swarm just because it's architecture will never down our application.
We just have to push the code to GitHub from our local system and everything will be running automatically in backend, it will test our code and deploy it using Kubernetes. Here is the final output of the code.
https://github.com/dhruvdave98/hello-world-DevOps-Project.git
I have used simple java application to run this project which you can find above, also you will find all the necessary files to run this project.