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
  • 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

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