Welcome: Build a Cloud-Native Simple App
Meet the application, the learning path, and the safe practice loop used throughout the tutorial.
You are about to turn one small web page into a real cloud-native application. No Kubernetes experience is assumed. Each lesson gives you a complete snapshot, commands you can copy, a result to check, and clues for recovering when reality differs from the example.
Download this chapter's files
Use your browser to download either ivia-chapter-01.tar.gz or ivia-chapter-01.zip. The archive is self-contained; you do not need this tutorial repository.
Open a terminal after the browser download:
cd ~/Downloads
tar -xzf ivia-chapter-01.tar.gz
cd ivia-chapter-01
All remaining relative paths in this chapter start from that extracted directory.
The challenge
Challenge: identify each layer of the final application and prove that your command-line tools are reachable. This is one challenge with two small checkpoints: understanding the destination and checking your starting point.
Prerequisites
-
A terminal: Terminal on macOS/Linux or PowerShell on Windows.
-
The small Chapter 1 resources archive downloaded above.
-
Curiosity and permission to create containers and a local Kubernetes cluster.
-
About 6 GB of free memory and 20 GB of free disk space for later chapters.
-
No cloud account is required; Chapter 3 covers the remaining tools.
Learning goals
- Describe the roles of the browser, frontend, backend, container image, Helm release, and Kubernetes cluster
- Distinguish source code from a built image and a running container
- Use the tutorial's build → deploy → observe → improve loop
- Find complete stage snapshots as known-good references
Orient yourself
Confirm that you are in the extracted chapter directory:
pwd
find . -maxdepth 1 -type f -print
Later chapter downloads are deliberately complete: the static package contains nginx and chart values, the full-stack package adds React and FastAPI, and the persistent package adds SQLite storage.
The IVIA generic chart is fixed to version 4.8.0 in every Helm command. Pinning makes today's lesson reproducible even after a newer chart is published.
The practice loop
- Build an immutable container image from source.
- Deploy that image by describing values, not by hand-editing cluster objects.
- Observe Pods, Services, logs, and HTTP responses.
- Improve one concern—configuration, health, networking, or persistence.
Kubernetes is a collection of control loops. You state the result you want; controllers continually work toward it. A failing Pod is useful evidence, not a verdict on your ability.
Expected validation
Your path should end in ivia-chapter-01, and the final command should list README.txt. Nothing is built or deployed in this chapter.
Say the architecture aloud in one sentence: “A browser loads React from nginx, React calls FastAPI through ingress, and the backend optionally stores messages on a persistent volume.” If that sentence makes sense, the challenge is complete.
Troubleshooting and common pitfalls
- Wrong directory: return to your Downloads folder and enter
ivia-chapter-01. findis unavailable in PowerShell: use the PowerShell command shown above.- Trying to memorize everything: use the snapshots. Experienced engineers rely on known-good references too.
- Treating warnings as failures: read the final status and exit code; a warning may still lead to a successful command.
You have already taken the most important step: starting with a small, inspectable system. We will add one idea at a time.