In this POC To learn DevOps, I will explain the right way to get hands-on experience on DevOps and Cloud when you don’t have a chance to work on real-time projects.
If you trying to become a DevOps engineer, learning tools and technologies definitely help you to take your DevOps journey to the next level. And with the vast amount of online learning resources and little hard work, you can learn any tool or technology.
My intention is to give you an overall idea of the entire application involved in a DevOps practice by creating CI/CD workflows and deploying an application on the AWS cloud.
In this series of guides, I will walk you through the entire CI/CD process
POC To learn DevOps & Cloud [ Project Petclinic ]
Here is the scenario we are going to assume.
A company named Scriptcamp wants to build a Pet Clinic application for its client.
The high-level requirements for the project are
- The application should be built on the Java Spring MVC framework.
- The application should be hosted on Cloud with the following.
- High availability.
- Autoscaling for applications.
- Highly available database.
- The entire build and deploy process should be automated.
Application Architecture & Approval Process
Any applications development process follows a standard set of processes from planning, development to deployments. This process differs between organizations.
For this POC, let’s assume the following process.
- Based on the client’s requirements, the application architect designs the application architecture.
- As per the client’s organizational standards, the architecture should be approved by its Enterprise architects and Enterprise security teams.
- As per the process, the Application architect sets up a meeting with both Enterprise architects and Enterprise security teams to explain the architecture.
- Finally, the architecture gets the signoff with a few suggestions from the Enterprise architect & security teams.
And the next phase is to start the development. Before
CI/CD/Infra Architecture & Approval Process
Like the application development process, CI/CD development has its own architecture and design approval process.
When it comes to infrastructure & CI/CD, In a standard organization, the following core teams are involved
- Enterprise security
- Network team
- Tools or Central platform team
- Cloud/IAM team
- Engineering team.
As a DevOps engineer, you will have to collaborate with the above teams in terms of infrastructure automation and CI/CD. I will talk about the involvement of these teams under each POC task.
Building CI/CD For Petclinic Application
Scriptcamp CTO wants the Petclinic team to follow all the DevOps principles for Pet Clinic application development and deployment.
So the project manager for the Petclinic application asks the team to come up with a list of high-level CI/CD tasks.
DevOps POC Tasks
Following are the high-level tasks that the team has come up with.
- Understanding application architecture & requirements.
- AWS cloud infrastructure design as per standard security practices.
- Setting up CI/CD infrastructure using Jenkins
- Setting up Artifact repository using Nexus
- Setting up Sonarqube for Static Code Analysis
- Setting up Hashicorp vault to store Secrets
- Setting up Prometheus for application monitoring.
- Branching strategy & Standard Practices for Development
- Creating Jenkins Pipeline for Continuous Integration
- Creating Pipeline for AMI creation using Packer & Ansible – The AMI contains the following
- AWS logging agent to push logs to cloudwatch
- Java code with Prometheus agent to capture application metrics.
- Develop Terraform Code to create Amazon RDS for the backend database.
- Develop Terraform code to create Route53 records.
- Develop Terraform code to Deploy autoscaling Group & Loadbalncer & Route 53 configurations.
- Jenkins Pipeline as code for Code Deployment
- Documenting KPIs for Infrastructure and application monitoring.
- Monitoring and logging dashboards for applications and infrastructure.
- Setting up Alerting using Prometheus for application issues.
- Documentation of Design, workflows, Code, and Standard Operating Procedures (SOP).
We will use the open-source pet-clinic spring boot java application for this POC.
If you want more projects like this to learn DevOps, you can check out the list of real-world DevOps projects