Description
Learn how to design and deploy infrastructure as code, create and monitor CI/CD pipelines for various deployment strategies, and use Kubernetes to deploy scalable microservices. You will combine your new skills by completing a capstone project at the end of the programme.
Syllabus:
Course 1: Cloud Fundamentals
Cloud Overview
- Learn the basics of cloud computing including cloud deployment models, benefits, and popular options
- Explore services provided by Amazon Web Services(AWS)
Foundational and Compute Services
- Learn why we need servers, compute power, and security
- Explore AWS compute services like Elastic Cloud Compute (EC2), Virtual Private Cloud (VPC), Lambda for serverless framework, and Elastic Beanstalk in action
- Launch a secure EC2 instance, create and execute a Lambda, and deploy an application to Elastic Beanstalk
Storage and Content Delivery
- Learn why we need storage and content delivery in the cloud
- Learn storage services like S3, DynamoDB, Relational Database Service (RDS), and CloudFront
- Create a DynamoDB table, launch a MySQL database instance, and create a CloudFront distribution
Security
- Learn the importance of security in the cloud
- See Identity & Access Management (IAM) in action
- Secure applications using IAM users, groups, and policies
Networking & Elasticity
- Learn the basics of networking and elasticity in the cloud
- Examine services like Route 53, EC2 Auto Scaling, and Elastic Load Balancing
- Add an auto scaling policy to your EC2 instance
Messaging & Containers
- Learn the basics of messaging and containers in the cloud
- Explore services like Simple Notification Service (SNS), Simple Queue Service (SQS), and Elastic Container Service (ECS)
- Create cloud notifications using SNS
AWS Management
- Learn why we need logging, auditing, and resource management in the cloud
- Understand services like CloudWatch, CloudTrail, CloudFormation, and the AWS Command Line Interface (CLI)
- Explore the CLI
Project: Deploy Static Website on AWS
The cloud is ideal for hosting static websites with only HTML, CSS, and JavaScript files that do not require server-side processing. You will deploy a static website to AWS in this project. To begin, you'll create an S3 bucket, configure it for website hosting, and secure it with IAM policies. Following that, you will upload the website files to your bucket and use AWS's content distribution network service, CloudFront, to accelerate content delivery. Finally, you will use the unique S3 endpoint to access your website in a browser.
Course 2: Deploy Infrastructure as Code (IAC)
Getting Started with CloudFormation
- Set up the necessary tools to get started with CloudFormation and deploy your first server using CloudFormation
Infrastructure Diagrams
- Convert business requirements into infrastructure diagrams and understand the principles behind design choices
Networking Infrastructure
- Implement a virtual private network and subnets and learn how to provide inbound and outbound internet access to your public and private subnets inside your VPC
- Use routing table to route the traffic within your virtual private cloud
Servers and Security Groups
- Deploy a web server into an autoscaling group
- Implement load-balancer to increase capacity of your app
- Implement security groups and understand the concept of least-privilege as it applies to network traffic
Storage and Databases
- Deploy S3 storage for images, config files, and more.
- Deploy relational database and encryption service for your application
Project: Deploy a High-Availability Web App Using CloudFormation
In this project, you will use CloudFormation to deploy web servers for a highly available web app. From the ground up, you will write the code that creates and deploys the infrastructure and application for an Instagram-like app. You will start by deploying networking components, then servers, security roles, and software. The steps you take here will be added to your portfolio of cloud projects. You'll do it exactly the way it's done on the job: by adhering to best practises and scripting as much as possible.
Course 3: Build CI/CD Pipelines, Monitoring & Logging
Configuration Management with Ansible
- Install software automatically with a tested and repeatable process that can be executed across your entire server fleet
- Apply patches to your infrastructure without having to manage servers individually
Build CI/CD Pipelines with Jenkins on AWS
- Select the appropriate deployment strategies to avoid downtime
- Create pipelines that include automated testing to ensure software packages are delivered with quality in mind
- Identify and create pipelines for development and production
Logging
- Use CloudWatch to aggregate logs
- Setup log agents to collect data directly from the source and send it to a centralized location for analysis
Monitoring & Alarms
- Identify and monitor meaningful metrics
- Set up alarms that will alert you of potential server issues
- Create dashboards to visualize your server metrics
Project: Build CI/CD Pipeline for Blue/Green Deployment
This project will allow you to expand on the skills you learned in this course.
You'll start by building a pipeline that spins up three servers and then uses Ansible to deploy an application on those servers. Once those servers are up and running, you will create another pipeline to ensure that they were configured correctly. You will then use the "Blue/Green" deployment strategy to add more features to those servers.
Course 4: Microservices at Scale Using Kubernetes
Deploy Highavailability Microservice EventDriven Application
- Understand Serverless (AWS Lambda) concepts
- Understand which container abstraction to use: AWS Lambda or Kubernetes
- Deploy producer/consumer AWS Lambda applications
- Configure CloudWatch events
Use Docker Format Containers
- Understand Docker image format
- Run and modify Docker containers locally
- Deploy customized containers to Amazon ECR
Containerization of Existing App
- Use the appropriate Docker base image
- Install packages into Docker image
- Copy application into Docker image
- Configure application setup and start in Docker image
Operationalize & Orchestrate Kubernetes
- Understand Kubernetes concepts
- Configure monitoring, alerts, and incidence response
- Integrate CI/CD Pipeline
- Configure Autoscaling
Project: Operationalize a Machine Learning Microservice API
You will continue your work on operationalizing microservices in this project by deploying an elastic and fault-tolerant Machine Learning inference API using Kubernetes. Using Kubernetes best practises, you will configure this microservice to be highly available. You will validate your design by load testing the service and ensuring that the application architecture works as expected.
Project: Capstone Project
The goal of the Cloud DevOps capstone project is to allow you to apply what you've learned throughout the programme.
This project will be an important part of your portfolio, assisting you in achieving your cloud development career goals. Each project in the capstone project is unique to the student. You will create a CI/CD pipeline for a microservices application that will support various deployment strategies. Students define the project's scope and choose the best deployment strategy based on various business requirements.