Hands-on Microservices: Ein Microservices-System mit Python, Flask und Consul entwerfen, bauen und betreiben.
Service Discovery, Konfiguration, Load Balancing und Observability implementieren.
Sichere Kommunikation, State-Management und Skalierung in realistischen Szenarien üben.
Praktische Erfahrung sammeln durch 70% Coding-Labs mit Docker und Cloud-Setups.
Nutzen: Trade-offs in realen Microservice-Architekturen verstehen.
Für wen: gedacht für Personen mit Python-Grundlagen, die praxisnahe Microservices-Skills wollen.
Beinhaltet geführte Labs und ein End-to-End-Projekt zur Festigung des Gelernten.
Curriculum
Tag 1 — Architektur & Service Design
- Microservices vs Monoliths: Kosten/Nutzen, wann splitten, organisatorische Passung
- Domain‑Driven Design (DDD): Bounded Contexts, Ubiquitous Language, Aggregates, Anti‑corruption Layer
- Service‑Zerlegung: Data Ownership, Database‑per‑Service, transaktionale Grenzen
- Konsistenz: Idempotency, Retries, Eventual Consistency, SAGA (Orchestration vs Choreography) — Überblick
- Schnittstellen: REST vs gRPC (Read‑only Intro), API‑Versionierung, Fehlermodelle
- Cross‑cutting: 12‑Factor App, Konfiguration, Secrets, Health/Readiness Checks
- Discovery: Service Registry & Discovery mit Consul; Health Checks und Tags
- Lab 1: Domänenmodellierung und Aufteilung in Services (catalog, orders, payments). APIs und Events skizzieren
Tag 1 — Containerisierung des Skeletons
- Dockerfiles für Python: Multi‑Stage Builds, schlanke Images, Non‑Root‑User
- Docker‑Compose‑Projektlayout; Umgebungen trennen (dev/test)
- Lab 2: catalog & orders containerisieren, /health und /ready exponieren
Tag 2 — Implementierung in Python/Flask mit DI
- Flask‑Patterns: App Factory, Blueprints, Request Lifecycle, Config (Env & Files)
- Dependency Injection (leichtgewichtige Patterns oder dependency‑injector); Repositories, Gateways, Service Layer
- Validierung & Serialisierung mit Pydantic/Marshmallow; Fehler auf HTTP abbilden
- Resilienz: Timeouts, Retries (tenacity), Backoff & Jitter; Idempotency Keys
- Service Discovery in der Praxis: Consul Agent, Service Registration, DNS vs HTTP API Lookups
- Lab 3: Services über Consul verbinden; orders→payments mit Idempotency implementieren
Tag 2 — Observability‑Grundlagen
- Strukturiertes Logging: JSON, Correlation IDs (X‑Request‑ID), Log‑Levels
- Logs zu ELK schicken: Logstash Pipeline; Indizes & Retention in Elasticsearch; Dashboards in Kibana
- Metriken: prometheus_client, RED/SUSE‑Metriken, Prozessmetriken
- Lab 4: JSON‑Logs und /metrics aktivieren; Rate & Latenz visualisieren
Tag 3 — Full‑Stack Ops: ELK, Prometheus & Grafana
- Compose‑Stack: Consul Server + Agents, Services, Logstash, Elasticsearch, Kibana, Prometheus, Grafana
- Dashboards & Alerts: Grafana‑Panels für p50/p95‑Latenz, Fehlerquote; grundlegende Alarmregeln (Konzepte)
- Security‑Aspekte: Secrets in Env/Consul KV, JWT am Edge (Skizze), TLS‑Termination (Reverse Proxy optional)
- Lab 5: End‑to‑End Lauf — Stack starten, Last erzeugen, in Kibana und Grafana analysieren
Tag 3 — Hardening & Delivery
- Tests: Unit/Integration, Contract Testing (Pact — Überblick)
- Packaging & CI: pyproject.toml, Wheels, Image‑Scan; GitHub‑Actions‑Skeleton
- Operations‑Checklisten: Readiness Probes, SLO‑Basics, Rollbacks
- Lab 6: fehlschlagende Abhängigkeit einbauen, beobachten, sicher zurückrollen
Optionale Module
Optional — Erweiterte Patterns
- Event‑driven Microservices mit Kafka/RabbitMQ (Überblick)
- CQRS & SAGA Deep Dive; Outbox/Inbox Patterns
- Service Mesh/Consul Connect und mTLS (Intro)
Kursablauf
- Part 1: 09:00–10:30
- Break: 10:30–10:45
- Part 2: 10:45–12:15
- Lunch break: 12:15–13:15
- Part 3: 13:15–15:15
- Break: 15:15–15:30
- Part 4: 15:30–17:30