The DevOps Toolkit: Catalog, Patterns, And Blueprints [1 (30.12.2020) ed.]

Unlike my other books where I typically dive into a single tool or a single process, this time, I chose a different appr

1,095 199 9MB

English Pages 413 Year 2020

Report DMCA / Copyright

DOWNLOAD FILE

The DevOps Toolkit: Catalog, Patterns, And Blueprints [1 (30.12.2020) ed.]

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

Polecaj historie