/udacity_cloud_devops_nd

A repository for all projects part of Udacity's Cloud DevOps engineer nanodegree

Primary LanguageCSS

Udacity Cloud DevOps Engineer Nanodegree

Link to program

Project 1: Deploy a static website on AWS

In this project, students are expected to deploy an instructor-supplied static website on AWS and setup content distribution using AWS CloudFront.

Access project files here.

Cloud services used

  • Amazon Web Services/AWS.

  • AWS Simple Storage Service/S3.

  • AWS Identity and Access Management/IAM.

  • AWS CloudWatch for performance and health checks.

Project 2: Deploy a high-availability web application using CloudFormation

Access project files here.

In this project, students are expected to deploy web servers for an instructor-supplied web application to achieve high scalability using infrastructure provisioning tool, AWS CloudFormation.

Tasks

  1. Develop a cloud diagram using any websites such as Lucidchart or Diagrams as a reference/visual aid to help write the CloudFormation script.

  2. Interpret the instructions from the cloud diagram and create a matching CloudFormation script.

  3. Get access to the S3 bucket containing the web application files using AWS Identity and Access Management/IAM and deploy it on our private clouds in an automated fashion.

  4. Discard the provisioned infrastructure using command-line tools once the web application is verified to be viewable by anyone with the given link, in an automated fashion.

Project 3: Build a Jenkins pipeline for AWS

Note: This project was submitted in the form of screenshots for proof of its functioning and as such files are unavailable.

Access project files here.

In this project, a student must deploy his/her own web site on AWS by building a multi-stage pipeline, of which one must be a step for linting, using Jenkins for CI/CD.

Tools

  • Tidy HTML linter.

  • Latest version of Jenkins.

  • AWS Identity and Access Management/IAM

  • AWS Elastic Compute Cloud/EC2.

  • AWS Simple Storage Service/S3.

  • GitHub for version control.

Project 4: Operationalize a Machine Learning Microservice API and deploy to Kubernetes

Access project files here.

In this project, students must containerize an instructor-supplied SciKit learn Machine-learning model that predics housing prices in Boston, using Docker, Kubernetes and AWS Elastic Kubernetes Service/EKS.

Tools and cloud services used

  • Docker, Dockerhub for docker repository, Kubernetes(Minikube)

  • Hadolint for linting Docker file.

  • Pylint for linting the Python script.

  • AWS Cloud 9 IDE

  • AWS Elastic Compute Cloud/EC2 running Ubuntu 18.04 LTS image.

  • AWS Identity and Access Management/IAM.

  • Jenkins for Continuous Integration/Continuous Delivery.

  • eksctl, a command-line utility for creating and managing Kubernetes clusters using EKS.

  • GitHub for version control.

Capstone project: Containerize a simple web application and deploy to EKS

Access project files here.

In this project, students are tasked to propose their own scope of the project by including the following tools:

  1. Amazon Web Services/AWS and its various services.

  2. Jenkins for Continuous Integration/Continuous Delivery.

  3. Docker for containerization and Kubernetes for orchestration.

  4. CircleCI for deployments.