Table of contents : Table of Contents Introduction I Need Your Help Who Are We? About The Requirements Off We Go Infrastructure as Code (IaC) Going Back In Time Back To Present Using Terraform To Manage Infrastructure As Code (IaC) What Are We Going To Do? Creating And Managing Google Kubernetes Engine (GKE) Clusters With Terraform Preparing For The Exercises Exploring Terraform Variables Creating The Credentials Defining The Provider Storing The State In A Remote Backend Creating The Control Plane Exploring Terraform Outputs Creating Worker Nodes Upgrading The Cluster Reorganizing The Definitions Destroying The Resources Creating And Managing AWS Elastic Kubernetes Service (EKS) Clusters With Terraform Preparing For The Exercises Exploring Terraform Variables Creating The Credentials Storing The State In A Remote Backend Creating The Control Plane Exploring Terraform Outputs Creating Worker Nodes Upgrading The Cluster Reorganizing The Definitions Destroying The Resources Creating And Managing Azure Kubernetes Service (AKS) Clusters With Terraform Preparing For The Exercises Exploring Terraform Variables Creating The Credentials Storing The State In A Remote Backend Creating The Control Plane Exploring Terraform Outputs Creating Worker Nodes Upgrading The Cluster Dealing With A Bug That Prevents Upgrade Of Node Pools Reorganizing The Definitions Destroying The Resources Packaging, Deploying, And Managing Applications Using Helm As A Package Manager For Kubernetes Defining A Scenario Preparing For The Exercises Creating Helm Charts Adding Application Dependencies Deploying Applications To Production Deploying Applications To Development And Preview Environments Deploying Applications To Permanent Non-Production Environments Packaging And Deploying Releases Rolling Back Releases What Did We Do Wrong? Destroying The Resources Using Helm As A Package Manager For Kubernetes Defining A Scenario Preparing For The Exercises Creating Helm Charts Adding Application Dependencies Deploying Applications To Production Deploying Applications To Development And Preview Environments Deploying Applications To Permanent Non-Production Environments Packaging And Deploying Releases Rolling Back Releases What Did We Do Wrong? Destroying The Resources Setting Up A Local Development Environment Which Operating System Is The Best For Laptops? Installing Windows Subsystem For Linux (WSL) Choosing A Shell A Short Intermezzo Choosing An IDE And A Terminal Using Oh My Zsh To Configure Z Shell Going For A Test Drive With Oh My Zsh What Should We Do Next? There Is More Exploring Serverless Computing Using Managed Functions As A Service (FaaS) Deploying Google Cloud Functions (GCF) Deploying Azure Functions (AF) Deploying AWS Lambda To FaaS Or NOT To FaaS? Choosing The Best Managed FaaS Provider Personal Thoughts About Managed FaaS Using Managed Containers As A Service (CaaS) Discussing The ``Real'' Expectations Deploying Applications To Google Cloud Run Deploying Applications To Amazon Elastic Container Service (ECS) With Fargate Deploying Applications To Azure Container Instances To CaaS Or NOT To CaaS? Personal Thoughts About Managed CaaS Using Self-Managed Containers As A Service (CaaS) Using Knative To Deploy And Manage Serverless Workloads Self-Managed Vs. Managed CaaS There Is More About Serverless Using Centralized Logging About Vadim Why Not Using The ELK Stack? Using Loki To Store And Query Logs Destroying The Resources Deploying Applications Using GitOps Principles Discussing Deployments And Environments Off We Go Applying GitOps Principles Using Argo CD Installing And Configuring Argo CD Deploying An Application With Argo CD Defining Whole Environments Creating An Environment As An Application Of Applications Updating Applications Through GitOps Principles Destroying The Resources There Is More About GitOps Applying Progressive Delivery Using Argo Rollouts To Deploy Applications Installing And Configuring Argo Rollouts Exploring Argo Rollouts Definitions Deploying The First Release Deploying New Releases Using The Canary Strategy Rolling Back New Releases Exploring Prometheus Metrics And Writing Rollout Queries Exploring Automated Analysis Deploying Releases With Fully Automated Steps What Happens Now? This Is NOT The End