Modernizing the Monolith: Containerizing and Deploying to Kubernetes
Introduction
Modernizing the Monolith is a hands-on experience helping you learn how to quickly move your applications as they exist today into containers and on to Google Kubernetes Engine (GKE).
Learning Objectives
In this hack you will be taking on the role of a DevOps engineer tasked with containerizing a monolithic web game and deploying, testing, and debugging it on GKE. You will learn:
- Containers
- Creating a Dockerfile
- Using multi-stage builds
- Building images
- Running containers with Docker
- SSH’ing into Docker containers
- Pushing and Pulling Docker images
- Creating a Dockerfile
- GKE
- Creating a cluster
- Creating and resizing node pools
- Creating services
- Creating an ingress
- Deploying your application
- Creating deployments
- SSH’ing into pods
- Implementing Vertical Pod Autoscaling
- Implementing Horizontal Pod Autoscaling
- Creating a kubeconfig file
- Troubleshooting
Challenges
- Challenge 1: Containerize the web application
- Write a Dockerfile to create your container and then push it to Artifact Registry.
- Challenge 2: Deploying on GKE
- Create a cluster and deploy the containerized web application on it. Fine tune your pod and node sizes, and play test the game to make sure everything is working!
- Challenge 3: Speedrun - containerize and deploy the load testing application
- Use what you learned from challenges 1 and 2 to containerize the test client application and scale it up on GKE to test your servers.
Prerequisites
- Your own GCP project with Owner IAM role
- Exemption for your project to any security policy that would prevent you from creating and using external IPs
Contributors
- Damian Lance