This series of tutorials is for Developers who are new to Kubernetes and Google Kubernetes Engine (GKE). In the series, you learn how to transform Cymbal Books, a sample monolithic app, into a modular, containerized app that runs on a GKE cluster.
Before starting this tutorial series, it's helpful if you have some experience with Python programming and web application development. Although all the code is provided and you won't need to write any code yourself, being able to read and understand basic Python code will help you follow along better. You also need to be comfortable using the command line to run commands. If you're new to Google Cloud, containerization, or Kubernetes, don't worry—these concepts are explained in the series.
Costs
You can complete this tutorial without incurring any charges. However, following the steps in the final tutorial of this series incurs charges on your Google Cloud account. Costs begin when you enable GKE and deploy the Cymbal Books app to a GKE cluster. These costs include per-cluster charges for GKE, as outlined on the Pricing page, and charges for running Compute Engine VMs.
To avoid unnecessary charges, ensure that you disable GKE or delete the project once you have completed this tutorial.
Why containerize an app?
You might be wondering why you'd want to containerize your app. The following list explains some of the advantages of containerized apps:
- Isolation: each component runs independently in its own container. Changes or updates to one component don't disrupt the rest of the app.
- Scalability: you can scale individual components based on demand. If one part of the app experiences high load, you can scale only that part. You don't need to scale the entire app.
- Fault isolation: issues in one component are contained and don't affect other components. This isolation makes it easier to debug and resolve issues without affecting the rest of the system.
- Faster development and deployment: teams can work on different components of the app simultaneously. They can develop, test, and deploy independently, which can speed up development cycles.
- Resource efficiency: containers help optimize resource usage, which can reduce the costs of running your app.
- Consistency across environments: each container runs the same way in different environments, such as development, testing, and production.
Tutorials in this series
The series is divided into the following five tutorials:
- Understand the monolith
- Modularize the monolith
- Prepare the modular app for containerization
- Containerize the modular app
- Deploy the app to a GKE cluster
Each tutorial builds on the previous one, and helps you understand key concepts and practices in app modularization, containerization, and deployment. By the end of the series, you'll have an app that's running on GKE and a solid understanding of modularization, containerization, and Kubernetes basics.
To get started, see Understand the monolith.