# ai-infra-curriculum/ai-infra-engineer-learning architecture

> Architecture diagram of the GitHub repository ai-infra-curriculum/ai-infra-engineer-learning, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ai-infra-curriculum/ai-infra-engineer-learning
- Repository: https://github.com/ai-infra-curriculum/ai-infra-engineer-learning

## Overview

1. **What this repository is**
   - This is not a runtime application repo; it is an **education platform repository** for an AI Infrastructure Engineer learning path.
   - Its architecture is centered on **content delivery**: lessons, labs, quizzes, assessments, and three capstone-style projects.

2. **Top-level structure**
   - The repo splits into four main subsystems:
     - `lessons/` for module-based curriculum content
     - `projects/` for production-style hands-on systems
     - `assessments/` for quizzes, exams, rubrics, and answer keys
     - `resources/` for cheat sheets, FAQs, and reading lists
   - Supporting root files (`README.md`, `CURRICULUM.md`, `GETTING_STARTED.md`, `VERSIONS.md`, `Makefile`, `requirements.txt`, `pyproject.toml`) provide navigation, standards, and repo-wide tooling.

3. **Curriculum content subsystem**
   - `lessons/mod-101` through `lessons/mod-110` form the core learning spine.
   - Each module is organized the same way: lecture docs, lab docs, exercises, quizzes, and a module README.
   - The content flows from fundamentals to advanced systems: foundations → cloud → containers → Kubernetes → pipelines → MLOps → GPU computing → observability → IaC → LLM infrastructure.

4. **Learning progression boundary**
   - The lesson modules are **static instructional content**, not executable product code.
   - They establish conceptual and procedural boundaries: what learners should know before touching the projects.
   - The repo’s architectural “control plane” is the curriculum sequencing itself, managed through module READMEs and cross-references.

5. **Assessment subsystem**
   - `assessments/` provides the evaluation layer for the curriculum.
   - It includes coding challenges, practical exams, quiz answer keys, and rubrics.
   - This creates a clear separation between **teaching content** and **evaluation artifacts**, which is important for diagrams that distinguish learning materials from grading materials.

6. **Project 101: Basic model serving**
   - `projects/project-101-basic-model-serving` is a compact production-style service architecture.
   - Main components:
     - `src/api.py` for the API surface
     - `src/model.py` for inference logic
     - `src/config.py` and `src/utils.py` for configuration/support code
   - Deployment boundaries:
     - `Dockerfile` and `docker-compose.yml` for local/container execution
     - `kubernetes/` manifests for cluster deployment
     - `monitoring/` for Prometheus and Grafana integration
   - Data flow is straightforward: client request → API → model inference → response, with metrics exported for observability.

7. **Project 102: MLOps pipeline**
   - `projects/project-102-mlops-pipeline` is a workflow-oriented system built around orchestration.
   - The main control plane is Airflow DAGs in `dags/`:
     - data pipeline
     - training pipeline
     - deployment pipeline
   - Supporting execution layers live in `src/`:
     - `data/` for ingestion, preprocessing, validation
     - `training/` for train/evaluate
     - `deployment/` for rollout logic
     - `monitoring/` for health and metrics
   - This project’s architecture is a **pipeline chain**: ingest/validate data → train/evaluate model → register/promote/deploy → monitor.

8. **Project 102 external ML platform dependencies**
   - The README indicates integration with **MLflow**, **DVC**, **PostgreSQL**, **Redis**, and **MinIO**.
   - Architecturally, that means the repo models a split between:
     - orchestration and business logic in the repo
     - persistent experiment/data/model state in external services
   - This is a classic MLOps boundary: compute is ephemeral, metadata and artifacts are persisted.

9. **Project 103: LLM deployment platform**
   - `projects/project-103-llm-deployment` is the most complex system in the repo.
   - It has three major runtime paths:
     - `src/llm/` for LLM serving and optimization
     - `src/rag/` and `src/ingestion/` for retrieval-augmented generation and document indexing
     - `src/api/` for the client-facing API and streaming responses
   - Supporting concerns:
     - `src/monitoring/` for metrics and cost tracking
     - `prompts/` for template management
     - `scripts/` and `notebooks/` for operational experiments and benchmarking

10. **Project 103 data flow**
   - The LLM project has a multi-stage data path:
     - documents are loaded and processed in ingestion
     - chunks are embedded and indexed
     - retrieval feeds the RAG pipeline
     - the API streams generated responses back to clients
   - In parallel, monitoring captures runtime metrics and cost signals.
   - This project should be diagrammed as **ingestion/indexing path + online inference path + observability path**.

11. **Infrastructure and deployment boundaries across projects**
   - All three projects use the same deployment patterns:
     - containerization via Docker
     - local multi-service development via Docker Compose
     - Kubernetes manifests for production-style deployment
   - The presence of `hpa.yaml`, GPU node pool manifests, services, config maps, and monitoring configs shows the repo emphasizes **operational deployment**, not just code.

12. **Observability as a first-class subsystem**
   - Monitoring is not centralized in one shared service; it is embedded per project.
   - Prometheus and Grafana appear in Projects 101 and 103, and project 102 adds model/pipeline monitoring.
   - This makes observability a recurring architectural concern across the repo, with metrics, dashboards, and alerts attached to each runtime system.

13. **Automation and quality gates**
   - GitHub Actions workflows exist both at the repo level and inside project folders.
   - Tests are present in each project, typically using `pytest`.
   - This means the repo has a layered quality model: documentation + tests + CI + deployment artifacts.

14. **How to think about the repo in a diagram**
   - Model the repo as three concentric layers:
     - **Curriculum content layer**: lessons, labs, quizzes, assessments
     - **Reference system layer**: three project implementations showing real architectures
     - **Operational tooling layer**: CI, docs, Docker/Kubernetes, monitoring, scripts
   - The most important boundary is between **static learning assets** and **executable project systems**.

Main entry points: [`projects/project-103-llm-deployment/README.md`](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/README.md) (Project 103), [`README.md`](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/README.md) (README), [`projects/project-102-mlops-pipeline/README.md`](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-102-mlops-pipeline/README.md) (Project 102), [`lessons/mod-101-foundations/README.md`](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-101-foundations/README.md) (Mod 101)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_grp_root["Repo guides"]
  node_n_readme["README<br/>entry doc<br/>[README.md]"]
  node_n_curriculum["Curriculum<br/>roadmap doc<br/>[CURRICULUM.md]"]
  node_n_start["Getting Started<br/>onboarding doc<br/>[GETTING_STARTED.md]"]
  node_n_tools["Tooling"]
end

subgraph group_grp_lessons["Curriculum"]
  node_n_mod101["Mod 101<br/>foundations module<br/>[README.md]"]
  node_n_mod104["Mod 104<br/>kubernetes module<br/>[README.md]"]
  node_n_mod106["Mod 106<br/>mlops module<br/>[README.md]"]
  node_n_mod110["Mod 110<br/>llm infra module<br/>[README.md]"]
  node_n_lessons_quiz["Lesson quizzes<br/>module checks<br/>[module-quiz.md]"]
end

subgraph group_grp_projects["Projects"]
  node_n_project101["Project 101<br/>model serving app<br/>[README.md]"]
  node_n_p101_src["P101 runtime<br/>service runtime<br/>[api.py]"]
  node_n_p101_deploy["P101 deploy<br/>deployment stack<br/>[deployment.yaml]"]
  node_n_project102["Project 102<br/>mlops pipeline<br/>[README.md]"]
  node_n_p102_dags["P102 DAGs<br/>orchestration plane<br/>[data_pipeline.py]"]
  node_n_p102_src["P102 ops<br/>pipeline services<br/>[ingestion.py]"]
  node_n_project103["Project 103<br/>llm platform<br/>[README.md]"]
  node_n_p103_ingest["P103 ingest<br/>ingestion/indexing<br/>[loader.py]"]
  node_n_p103_rag["P103 RAG<br/>retrieval pipeline<br/>[pipeline.py]"]
  node_n_p103_api["P103 API<br/>streaming API<br/>[main.py]"]
  node_n_p103_obs["P103 observe<br/>metrics/cost<br/>[metrics.py]"]
end

subgraph group_grp_assessments["Assessments"]
  node_n_assessments["Assessments<br/>evaluation layer<br/>[README.md]"]
  node_n_answer_keys["Answer keys<br/>grading artifacts<br/>[README.md]"]
  node_n_rubric["Project rubric"]
end

subgraph group_grp_resources["Resources"]
  node_n_resources["Resources<br/>reference library<br/>[README.md]"]
end

node_n_readme -->|"maps"| node_n_curriculum
node_n_readme -->|"starts"| node_n_start
node_n_readme -->|"includes"| node_n_assessments
node_n_readme -->|"links"| node_n_resources
node_n_readme -->|"packs"| node_n_tools
node_n_curriculum -->|"sequences"| node_n_mod101
node_n_mod101 -->|"progresses"| node_n_mod104
node_n_mod104 -->|"progresses"| node_n_mod106
node_n_mod106 -->|"progresses"| node_n_mod110
node_n_mod101 -->|"checks"| node_n_lessons_quiz
node_n_lessons_quiz -->|"validated by"| node_n_answer_keys
node_n_assessments -->|"uses"| node_n_rubric
node_n_project101 -->|"implements"| node_n_p101_src
node_n_project101 -->|"deploys"| node_n_p101_deploy
node_n_project102 -->|"orchestrates"| node_n_p102_dags
node_n_project102 -->|"executes"| node_n_p102_src
node_n_project103 -->|"ingests"| node_n_p103_ingest
node_n_project103 -->|"retrieves"| node_n_p103_rag
node_n_project103 -->|"serves"| node_n_p103_api
node_n_project103 -->|"observes"| node_n_p103_obs
node_n_project101 -->|"evolves to"| node_n_project102
node_n_project102 -->|"evolves to"| node_n_project103
node_n_mod101 -->|"prepares for"| node_n_project101
node_n_mod106 -->|"prepares for"| node_n_project102
node_n_mod110 -->|"prepares for"| node_n_project103

click node_n_readme "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/README.md"
click node_n_curriculum "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/CURRICULUM.md"
click node_n_start "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/GETTING_STARTED.md"
click node_n_mod101 "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-101-foundations/README.md"
click node_n_mod104 "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-104-kubernetes/README.md"
click node_n_mod106 "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-106-mlops/README.md"
click node_n_mod110 "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-110-llm-infrastructure/README.md"
click node_n_lessons_quiz "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-108-monitoring-observability/quizzes/module-quiz.md"
click node_n_assessments "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/assessments/README.md"
click node_n_answer_keys "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/assessments/quizzes/answer-keys/README.md"
click node_n_rubric "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/assessments/rubrics/project-assessment-rubric.md"
click node_n_project101 "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-101-basic-model-serving/README.md"
click node_n_p101_src "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-101-basic-model-serving/src/api.py"
click node_n_p101_deploy "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-101-basic-model-serving/kubernetes/deployment.yaml"
click node_n_project102 "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-102-mlops-pipeline/README.md"
click node_n_p102_dags "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-102-mlops-pipeline/dags/data_pipeline.py"
click node_n_p102_src "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-102-mlops-pipeline/src/data/ingestion.py"
click node_n_project103 "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/README.md"
click node_n_p103_ingest "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/src/ingestion/loader.py"
click node_n_p103_rag "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/src/rag/pipeline.py"
click node_n_p103_api "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/src/api/main.py"
click node_n_p103_obs "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/src/monitoring/metrics.py"
click node_n_resources "https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/resources/README.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_n_readme,node_n_curriculum,node_n_start,node_n_tools toneBlue
class node_n_mod101,node_n_mod104,node_n_mod106,node_n_mod110,node_n_lessons_quiz toneAmber
class node_n_project101,node_n_p101_src,node_n_p101_deploy,node_n_project102,node_n_p102_dags,node_n_p102_src,node_n_project103,node_n_p103_ingest,node_n_p103_rag,node_n_p103_api,node_n_p103_obs toneMint
class node_n_assessments,node_n_answer_keys,node_n_rubric toneRose
class node_n_resources toneIndigo
```

## Components

### Repo guides

Top-level navigation, standards, and tooling for the learning repo.

- [README](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/README.md): entry doc · Primary repo overview and starting point. · `README.md`
- [Curriculum](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/CURRICULUM.md): roadmap doc · Curriculum structure and module sequencing. · `CURRICULUM.md`
- [Getting Started](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/GETTING_STARTED.md): onboarding doc · Setup and first-run guidance for learners. · `GETTING_STARTED.md`
- **Tooling**: repo tooling · Root-level automation and packaging metadata.

### Curriculum

Static instructional spine across modules 101-110.

- [Mod 101](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-101-foundations/README.md): foundations module · ML infrastructure basics, cloud intro, Docker, and API development. · `lessons/mod-101-foundations/README.md`
- [Mod 104](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-104-kubernetes/README.md): kubernetes module · Cluster architecture, workloads, networking, storage, and monitoring. · `lessons/mod-104-kubernetes/README.md`
- [Mod 106](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-106-mlops/README.md): mlops module · Tracking, registry, deployment strategies, and governance. · `lessons/mod-106-mlops/README.md`
- [Mod 110](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-110-llm-infrastructure/README.md): llm infra module · vLLM, RAG, vector databases, fine-tuning, and production LLM practices. · `lessons/mod-110-llm-infrastructure/README.md`
- [Lesson quizzes](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/lessons/mod-108-monitoring-observability/quizzes/module-quiz.md): module checks · Per-module quizzes and completion checks across the curriculum. · `lessons/mod-108-monitoring-observability/quizzes/module-quiz.md`

### Projects

Capstone-style reference systems showing real deployment architectures.

- [Project 101](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-101-basic-model-serving/README.md): model serving app · Basic model-serving service with API, model logic, containerization, Kubernetes, and monitoring. · `projects/project-101-basic-model-serving/README.md`
- [P101 runtime](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-101-basic-model-serving/src/api.py): service runtime · API and inference implementation for model serving. · `projects/project-101-basic-model-serving/src/api.py`
- [P101 deploy](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-101-basic-model-serving/kubernetes/deployment.yaml): deployment stack · Docker, Compose, Kubernetes, and observability configuration. · `projects/project-101-basic-model-serving/kubernetes/deployment.yaml`
- [Project 102](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-102-mlops-pipeline/README.md): mlops pipeline · Airflow-orchestrated ingestion, training, deployment, and monitoring pipeline. · `projects/project-102-mlops-pipeline/README.md`
- [P102 DAGs](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-102-mlops-pipeline/dags/data_pipeline.py): orchestration plane · Airflow pipelines controlling data, training, and deployment flow. · `projects/project-102-mlops-pipeline/dags/data_pipeline.py`
- [P102 ops](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-102-mlops-pipeline/src/data/ingestion.py): pipeline services · Data, training, deployment, and monitoring execution layers. · `projects/project-102-mlops-pipeline/src/data/ingestion.py`
- [Project 103](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/README.md): llm platform · LLM serving platform with ingestion, RAG, API streaming, and observability. · `projects/project-103-llm-deployment/README.md`
- [P103 ingest](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/src/ingestion/loader.py): ingestion/indexing · Document loading, processing, chunking, embeddings, and indexing. · `projects/project-103-llm-deployment/src/ingestion/loader.py`
- [P103 RAG](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/src/rag/pipeline.py): retrieval pipeline · Retriever and RAG orchestration for online question answering. · `projects/project-103-llm-deployment/src/rag/pipeline.py`
- [P103 API](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/src/api/main.py): streaming API · Client-facing API, middleware, and streaming responses. · `projects/project-103-llm-deployment/src/api/main.py`
- [P103 observe](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/projects/project-103-llm-deployment/src/monitoring/metrics.py): metrics/cost · Runtime metrics, alerts, and cost tracking. · `projects/project-103-llm-deployment/src/monitoring/metrics.py`

### Assessments

Quizzes, exams, rubrics, and answer keys for evaluation.

- [Assessments](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/assessments/README.md): evaluation layer · Central assessment area for the curriculum. · `assessments/README.md`
- [Answer keys](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/assessments/quizzes/answer-keys/README.md): grading artifacts · Quiz solutions organized by module. · `assessments/quizzes/answer-keys/README.md`
- [Project rubric](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/assessments/rubrics/project-assessment-rubric.md): rubric · Shared rubric for project evaluation. · `assessments/rubrics/project-assessment-rubric.md`

### Resources

Cheat sheets, FAQs, and reading lists.

- [Resources](https://github.com/ai-infra-curriculum/ai-infra-engineer-learning/blob/main/resources/README.md): reference library · Cheat sheets, FAQs, and reading lists. · `resources/README.md`

## Connections

- README → Curriculum: maps · Repository overview points to the curriculum structure.
- README → Getting Started: starts · New learners begin with onboarding guidance.
- README → Assessments: includes · Repo overview includes the evaluation layer.
- README → Resources: links · Reference materials are part of the repo entry point.
- README → Tooling: packs · Root tooling supports the whole repository.
- Curriculum → Mod 101: sequences · Curriculum begins with the foundations module.
- Mod 101 → Mod 104: progresses · Learners move from foundations into Kubernetes.
- Mod 104 → Mod 106: progresses · Kubernetes prepares learners for MLOps concepts.
- Mod 106 → Mod 110: progresses · MLOps leads into LLM infrastructure.
- Mod 101 → Lesson quizzes: checks · Modules are paired with quiz checkpoints.
- Lesson quizzes → Answer keys: validated by · Quiz answers provide the grading reference.
- Assessments → Project rubric: uses · Projects are assessed against a shared rubric.
- Project 101 → P101 runtime: implements · The runtime is centered on API and model code.
- Project 101 → P101 deploy: deploys · Container and cluster deployment are first-class.
- Project 102 → P102 DAGs: orchestrates · Airflow DAGs control the MLOps workflow.
- Project 102 → P102 ops: executes · Pipeline stages are implemented in source services.
- Project 103 → P103 ingest: ingests · Documents enter through the ingestion path.
- Project 103 → P103 RAG: retrieves · RAG coordinates retrieval and generation.
- Project 103 → P103 API: serves · The API exposes streaming inference to clients.
- Project 103 → P103 observe: observes · Monitoring and cost tracking run alongside inference.
- Project 101 → Project 102: evolves to · The projects form a progression from serving to workflow automation.
- Project 102 → Project 103: evolves to · The final project extends into LLM platform architecture.
- Mod 101 → Project 101: prepares for · Foundations support the basic model-serving project.
- Mod 106 → Project 102: prepares for · MLOps lessons align with the pipeline project.
- Mod 110 → Project 103: prepares for · LLM infrastructure lessons align with the deployment platform.
