This project is for applying the skills and knowledge which were 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 CloudFormation to deploy clusters
- Building Kubernetes clusters
- Building Docker containers in pipelines
Step 1: Propose and Scope the Project
- Deploying a simple web application (url shortener) to AWS EKS cluster.
- Using Jenkins to build, test and deploy the application.
- Using rolling update strategy to update the web app.
Step 2: Use Jenkins and implement rolling deployment.
- Setting github repository with 3 branches (dev, uat and prod).
- Setting up EC2 Instance for Jenkins.
- Configure Jenkins plugins and credentials.
Step 3: Build AWS Kubernetes as a Service (EKS) Kubernetes cluster.
- Using eksctl to create a cluster using the configuration file (./eks/eks-config.yml)
Step 4: Build your pipeline
- Construct your pipeline in your GitHub repository.
- Set up all the steps that your pipeline will include.
- Configure a deployment pipeline.
- Include your Dockerfile/source code in the Git repository.
- Include with your Linting step both a failed Linting screenshot and a successful Linting screenshot to show the Linter working properly.
Step 5: Test your pipeline
- Perform builds on your pipeline.
- Verify that your pipeline works as you designed it.
- Take a screenshot of the Jenkins pipeline showing deployment.
Blue version of the webapp:
Aprroval step to deploy to production:
Rollout Status:
Green version of the webapp: