Flask + Docker Workshop: In 2 intensiven Tagen eine komplette Web‑App bauen und containerisieren.
Hands‑on mit Flask Routes, Templates, Forms und Datenbank‑Integration.
Services mit Docker containerisieren und Multi‑Container‑Setups aufbauen.
Praktische Erfahrung sammeln durch ~70% Labs mit Docker‑Deployment.
Nutzen: Produktionsreife Python‑Webapps in Containern schnell starten.
Für wen: gedacht für Personen mit Python‑Grundlagen, die in Web/DevOps gehen.
Mit optionalen Themen zu Skalierung, CI/CD und Cloud Deployment.
Curriculum
Tag 1 – Grundlagen & Projekt‑Scaffolding
- Flask Designentscheidungen: WSGI, Request/Response Cycle, Blueprints, Jinja2 vs. API‑only
- Repository‑Layout (src/), Config über Environment Variables, .env‑Handling; Secrets‑Basics
- App‑Factory‑Pattern; Blueprints für Modularität; CLI mit flask CLI
- Templates, statische Dateien, WTForms (optional) und CSRF‑Schutz
- REST‑Endpoints und OpenAPI (apispec/flasgger) — Request‑Validierung (pydantic oder marshmallow)
- Docker Multi‑Stage Image; Compose für Dev (Hot Reload) vs. Prod
- Hands‑on Lab: Projekt scaffolden, in Docker starten, minimale Page + JSON‑API
Tag 1 – Datenebene & Auth
- SQLAlchemy ORM & Session‑Muster; Models, Beziehungen, Migrationen mit Alembic
- JWT‑Authentifizierung (Access/Refresh), Sessions vs. Tokens; Password Hashing
- CORS und CSRF — wann und wie; rollenbasierter Zugriff (kurz)
- Hands‑on Lab: Models/Migrationen, Auth‑Endpoints, Seed‑Daten
Tag 2 – Betrieb, Performance & Async‑Workloads
- Gunicorn Prozessmodell; Worker/Threads; Timeouts und Keep‑Alive; Nginx Reverse Proxy (optional)
- Caching (Flask‑Caching mit Redis); idempotente Endpoints und Pagination
- Background‑Jobs mit Celery + Redis; Retries, Time Limits, Result Backends
- WebSockets mit Flask‑Sock (optional) und Server‑Sent Events (SSE)
- Observability: strukturiertes Logging, Request‑IDs, Basis‑Metriken; Health‑ und Readiness‑Endpoints
- Hands‑on Lab: Prod‑Image containerisieren, Celery Worker/Beat hinzufügen, Caching für langsamen Endpoint
Tag 2 – Qualität, Tests & CI
- pytest‑Fixtures für App, DB und Client; factory_boy/Faker für Daten
- Integrationstests in Docker Compose; Coverage und parallele Läufe
- Pre‑commit Hooks (ruff/black); Typprüfungen (mypy, optional)
- CI‑Skizze (GitHub Actions): Build, Test, Image Push; .env und Secrets‑Handling
- Wrap‑up: Deployment‑Optionen (Container Registry, ECS/Kubernetes), Next Steps
Optionale Module
Optional – API Gateways & Auth‑Provider
- OAuth2/OIDC mit externen Providern (Auth0/Keycloak)
- Rate Limiting und API Keys (Flask‑Limiter)
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