Phase 4: DevOps fundamentals
Author: GPS
How does this phase apply to Cloud?
DevOps is all about ensuring your solutions run efficiently from development to updates. While not specific to the cloud, DevOps practices can be implemented on-premises and in hybrid environments as well. DevOps roles may vary, with some companies having dedicated DevOps Engineers. This phase will introduce you to DevOps fundamentals, but if you aim to become a DevOps engineer, you'll need to dive deeper on your own.
DevOps is a culture, not a specific tool or service. Read up on what DevOps is through these articles:
For a fun and insightful read, consider The Phoenix Project which explains the importance of DevOps through a fictional story. If you prefer a textbook approach, The DevOps Handbook. is a great alternative.
You should've completed the Cloud Resume Challenge in the previous phase. That project introduces you to DevOps concepts, if you haven't, go back and do so.
How to break down this phase
Order | Concepts | Recommended tools | Other tools |
---|---|---|---|
1 | CI/CD | GitHub Actions | Jenkins, GitLab, CircleCI |
2 | IaC | Terraform | Azure Bicep, AWS CloudFormation, Pulumi |
3 | Containers | Docker | |
4 | Containers orchestration | Kubernetes | |
5 | Monitoring | Prometheus and Grafana | Datadog |
Resources
Resource | Notes |
---|---|
The DevOps Guide | Learn all the DevOps Concepts |
GitHub Actions Tutorial - Basic Concepts and CI/CD Pipeline with Docker | Nana is the queen of DevOps and creates some of the best DevOps learning content out there. This tutorial will introduce you to GitHub actions. |
Complete Terraform Course - From BEGINNER to PRO! | Learn how to use Terraform to automate your AWS infrastructure. |
Docker tutorial for Beginners | Complete Docker Hands-on course with a lot of demos and explaining the concepts behind, so that you really understand it. |
Kubernetes Crash Course for Absolute Beginners | Hands-On Kubernetes Tutorial |
Complete Prometheus Monitoring Tutorial | Complete Prometheus Monitoring Tutorial |
Capstone Project: Expanding on the Movies/Shows API
A sample application is available at rishabkumar7/ltc-devops-project. It builds on the Phase 2 Capstone Project - Serverless Movies API, shows your favorite TV Shows or movies. It includes the front-end built with React, uses the FastAPI Python framework for the API, and NoSQL for database. Your goal is to apply DevOps practices like containerization, CI/CD, observability, and monitoring.
Project Components
- Front-End Container: Hosts the website where users can view your movies/shows.
- API Container: Handles fetching of the data from the database.
- NoSQL Database: Stores the movies/shows data.
Steps
- Containerization: Containerize both the frontend and API by creating Dockerfiles.
- CI/CD: Write a CI/CD pipeline to push the container images to dockerhub or other container registries like ACR or ECR, once your source code is changed. Use tools like GitHub Actions or Azure DevOps.
- Kubernetes Infra with IaC: Set up a Kubernetes service within your cloud provider (Azure AKS, Amazon EKS, or GCP GKE). Use Terraform to provision your infrastructure.
- Kubernetes YAML Files: Create deployment and service YAML files for both the React front-end and the FastAPI backend.
- Container Deployment: Deploy the frontend and API containers to the Kubernetes cluster.
- Inter-connectivity: Ensure the containers are interconnected for seamless data flow.
- Monitoring: Set up monitoring for containers to track key metrics and insights. Use Azure Monitor for AKS, Amazon CloudWatch Container Insights for EKS, or Grafana for advanced monitoring.
Things you should be familiar with at the end of this phase
- Explain each DevOps practice:
- Why each one matters.
- What each one accomplishes.
- Most popular tools for each practice.
- For all your GitHub Projects:
- Have a CI/CD pipeline.
- Have IaC files.
- Have monitoring implemented.
- Understand logging and metrics data.