Skip to content

containersorg/containers-labs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

containers-labs: From Monolith to Kubernetes

This repository contains the example project designed as laboratory exercises for the 'Containers and Microservices' course at Collin College.

The repository is structured to take you through a comprehensive, step-by-step journey: from modeling traditional monolithic applications to deploying a modern, resilient, multi-service application stack on a Kubernetes cluster.

podman

1. Lab Index (The Containerization Journey)

The entire course progression is managed through separate Git branches. To begin a lab, check out the corresponding branch (e.g., git checkout lab-01).

Branch Name Description

main

Main branch containing the general README and tools

lab-01

Monolithic Architecture Application

lab-02

Microservices Architecture Application

lab-02-fix

Fixing the Microservices Application (manual approach)

lab-03

Managing Containers with Commands (manual approach)

lab-04

Creating Images Using Running Containers (manual approach)

lab-05

Improving Image Efficiency (Single Image Source)

lab-06

A More Automated Approach (Containerfiles)

lab-07

The Unified Image Pattern (ENTRYPOINT)

lab-08

Making Data Persistent (Volumes)

lab-09

Isolate the Application (Bridge Networking)

lab-10

Troubleshooting the Application

lab-11

Securing our Application (Secrets Management)

lab-12

Using Compose for the Pharmacy Application

lab-13

Running Applications in Kubernetes

2. Final Conclusion: The Value of Containerization

The series of labs demonstrates the fundamental shift required for modern application management, moving from brittle, tightly-coupled code to secure, scalable microservices.

Key Operational & Security Lessons Learned

  1. Immutability: Images are single sources of truth. Changes are never applied to running containers; instead, a new, clean image version is built and deployed.

  2. Persistence vs. Immutability: Data must be externalized from the container’s volatile filesystem and placed into a dedicated Volume to survive crashes and restarts.

  3. Security: Secrets are never stored in source code or environment variables.

  4. Isolation: Moving from the insecure Host Network to a dedicated Bridge Network is crucial for preventing container conflicts.

  5. Orchestration: Tools like Compose and Kubernetes are necessary to manage the lifecycle, networking, and scaling of multiple interconnected services automatically.

Prof. Juan Medina - Collin College

About

Containers Laboratories

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages