Skip to main content

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

OrderConceptsRecommended toolsOther tools
1CI/CDGitHub ActionsJenkins, GitLab, CircleCI
2IaCTerraformAzure Bicep, AWS CloudFormation, Pulumi
3ContainersDocker
4Containers orchestrationKubernetes
5MonitoringPrometheus and GrafanaDatadog

Resources

ResourceNotes
The DevOps GuideLearn all the DevOps Concepts
GitHub Actions Tutorial - Basic Concepts and CI/CD Pipeline with DockerNana 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 BeginnersComplete 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 BeginnersHands-On Kubernetes Tutorial
Complete Prometheus Monitoring TutorialComplete Prometheus Monitoring Tutorial

Capstone Project: QR Code Generator

A sample application is available at rishabkumar7/devops-qr-code. It includes the front-end built in NextJS, uses the FastAPI Python framework for the API, and AWS S3 for storage. Your goal is to apply DevOps practices like containerization, CI/CD, observability, and monitoring.

Project Components

  1. Front-End Container: Hosts the website where users can input URLs.
  2. API Container: Handles QR code generation for given URLs.
  3. Storage Container: Stores the generated QR codes.

Steps

  1. Containerization: Containerize both the front-end and API by creating Dockerfiles.
  2. CI/CD: Write a CI/CD pipeline to automate the deployment of the containers once your source code is changed.
  3. Kubernetes YAML Files: Create deployment and service YAML files for both the Next.js front-end and the FastAPI backend.
  4. Kubernetes Setup: Set up a Kubernetes service within your cloud provider (Azure AKS, Amazon EKS, or GCP GKE).
  5. Container Deployment: Deploy the front-end, API, and storage containers to the Kubernetes cluster.
  6. Interconnectivity: Ensure the containers are interconnected for seamless data flow.
  7. CI/CD Implementation: Set up a CI/CD pipeline to deploy the containers and application after the source code changes. Use tools like GitHub Actions or Azure DevOps.
  8. 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.

Certifications you might want to look into