MODULE 1  ·  DAY 1

Container-Native GenAI

Why the open standard — not Docker — is the through-line for AI

AI Colima Rancher OrbStack Podman

Gourav Shah  ·  School of DevOps & AI  ·  Lesson + Lab + Quiz

M1·01

Five ideas carry the rest of the course

Five ideas that shape every lab in the rest of the course.

12 34 5 Why "container-native" beats "Docker-native" — OCI + the Compose Spec What containers actually buy an AI stack: package, serve, isolate, ship The Apple-Silicon GPU limit and the native-server / containerized-app fix The OpenAI-compatible endpoint as one universal, swappable contract The 2026 map: declarative agents vs orchestration, and the Acme ladder
M1·02

The assumption that just broke

Docker Desktop is now paid for orgs over 250 staff or $10M revenue.

the old assumption container = Docker Desktop paid over 250 staff or $10M revenue — a pricing change, not a technical one what still holds container = the open OCI standard
M1·03

Container-native, not Docker-native

An OCI image is a shipping container — the carrier is your business.

compose.yaml open Compose Spec Colima OrbStack Rancher Desktop Podman Desktop Same app identical containers
M1·04

What containers buy an AI stack

Think of each component as a hermetically sealed shipment.

Package Pin Python, CUDA, library versions — "works everywhere" Serve Embed, vector DB, API behind fixed ports, no pollution Isolate Conflicting deps? Each framework in its own sealed box Ship Push to any OCI registry, pull anywhere
M1·05

Guest rooms with no power outlets

macOS containers are like guest rooms with no power outlets.

The building (your Mac) Mains power = Metal GPU + unified memory Guest rooms = containers no outlet on the wall — they fall back to battery (CPU) Hypervisor.framework exposes no virtual GPU Model inside a container runs 3–6× slower on CPU
M1·06

Native server, containerized everything else

Serve the model natively; containerize the app, agent, and vector DB.

macOS host (Apple Silicon) Ollama — NATIVE Metal-accelerated unified memory listens on :11434 Container runtime App (Streamlit) Agent (crew) Vector DB (ChromaDB) http://host.docker.internal :11434
M1·07

One universal contract: the OpenAI-compatible endpoint

The API is a wall socket: swap the power station, appliance never notices.

Ollama vLLM llama.cpp /v1/chat/completions Your app / agent code never changes
M1·08

The 2026 map: declarative vs orchestration

Two ways to build an agent — start light, add weight only when needed.

Declarative agents (M6) Who the agent is + what tools it has, written in plain files The runtime executes them Change a markdown file → change the behaviour Orchestration (M7) LangGraph — deterministic control flow explicit state machines, branching Retries, human-in-the-loop checkpoints For hard sequencing a declarative agent can't self-determine add only when needed
M1·09

Anatomy of a declarative agent

Four plain parts define an agent — no framework code required.

A declarative agent AGENTS.md / SOUL.md who the agent is — role & intent SKILL.md reusable capabilities it can call MCP tool connections what it can reach in the world Guardrails limits on what it may do
M1·10

Meet Acme — two connected tools

One fictional company, runbooks nobody reads, two connected AI tools.

Acme's runbooks DAY 1 · GenAI Docs Assistant Naive RAG: question → docs → answer used as a tool DAY 2 · Agentic Support Agent → Incident Crew single → multi-agent
M1·11

The build ladder — one step per module

Every module adds exactly one rung to the same growing compose.yaml.

M1 model M2 serve M3 scale M4 package M5 RAG M6 agent M7 crew M8 · Ship + Capstone ← DAY 1 · Serve & Package DAY 2 · RAG → Agentic → Ship →
M1·12

TO THE LAB

Build it once. Run it anywhere.

In the lab you'll prove this wiring yourself, hands on.

throwaway container host.docker.internal:11434 a real response back Ollama native · Metal GPU

Now open Module 1 · Lab.  ·  Gourav Shah · School of DevOps & AI

M1·13