In this project, I applied the skills and knowledge which was developed throughout the Cloud DevOps Nanodegree program. These include:
- Working in AWS
- Using Jenkins to implement Continuous Integration and Continuous Deployment
- Building pipelines
- Working with Ansible and CloudFormation to deploy clusters
- Building Kubernetes clusters
- Building Docker containers in pipelines
I developed a CI/CD pipeline for microservices applications with rolling deployment. I developed Continuous Integration steps, such as typographical checking (aka “linting”). I also developed Contiguous Deployment steps. These includes:
- Pushing the built Docker containers to the Docker repository
- Deploying these Docker containers to a small Kubernetes cluster. For Kubernetes cluster I used AWS EKS. To deploy my Kubernetes cluster using Cloudformation. I ran these from Jenkins as an independent pipeline.
- Create a
Makefile
- Create a
Dockerfile
- Create a
Jenkinsfile
including all the necessary steps - Create CloudFormation Script using
create-stack.sh
command - Install Jenkins and all the necessary plugins in the EC2 Instance
- Run
make lint
to lint the app locally
- Run Docker:
./run_docker.sh
- Run Kubernetes:
./run_kubernetes.sh
- Run
./upload_docker.sh
to upload the api to the Docker Hub
aws eks --region ap-south-1 update-kubeconfig --name EKS-Name
kubectl apply -f aws/aws-auth-cm.yaml
kubectl apply -f deployment/deployment.yml
kubectl get nodes
kubectl get pods -o wide
- Run
docker system prune
to clean up