Workshop Flask + Docker: construiești și containerizezi o aplicație web completă în 2 zile intensive.
Hands‑on cu rute Flask, template‑uri, formulare și integrare cu baze de date.
Containerizezi servicii cu Docker și creezi setup‑uri multi‑container.
Dobândești experiență practică prin ~70% laboratoare de deploy pe Docker.
Cum te ajută: pornești rapid aplicații Python web gata de producție în containere.
Cui i se adresează: conceput pentru persoane cu baze Python care intră în web și DevOps.
Include opțional scalare, CI/CD și pattern‑uri de deployment în cloud.
Curriculum
Ziua 1 – Fundamente & scaffolding proiect
- Alegerile de design Flask: WSGI, request/response cycle, Blueprints, Jinja2 vs. API‑only
- Structură repo (src/), config prin environment variables, .env; noțiuni de secrets
- App factory pattern; Blueprints pentru modularitate; CLI cu flask CLI
- Templates, fișiere statice, WTForms (opțional) și protecție CSRF
- REST endpoints și OpenAPI (apispec/flasgger) — validare request (pydantic sau marshmallow)
- Docker multi‑stage image; Compose pentru dev (hot reload) vs. prod
- Lab: scaffold proiect, rulează în Docker, adaugă o pagină minimă + JSON API
Ziua 1 – Strat de date & autentificare
- SQLAlchemy ORM & session patterns; modele, relații, migrații cu Alembic
- Autentificare JWT (access/refresh), sesiuni vs. tokens; password hashing
- CORS și CSRF — când și cum; access pe roluri (pe scurt)
- Lab: adaugă modele/migrații, endpoints de auth, seed data
Ziua 2 – Operațional, performanță & workloaduri async
- Modelul de proces Gunicorn; workers/threads; timeouts și keep‑alive; Nginx reverse proxy (opțional)
- Caching (Flask‑Caching cu Redis); endpoints idempotente și pagination
- Joburi în fundal cu Celery + Redis; retries, time limits, result backends
- WebSockets cu Flask‑Sock (opțional) și server‑sent events (SSE)
- Observability: structured logging, request IDs, metrics de bază; health și readiness endpoints
- Lab: imagine prod containerizată, adaugă Celery worker/beat, cache pe un endpoint lent
Ziua 2 – Calitate, testare & CI
- pytest fixtures pentru app, DB și client; factory_boy/Faker pentru date
- Teste de integrare în Docker Compose; coverage și rulări paralele
- Pre‑commit (ruff/black); verificări de tip (mypy, opțional)
- Schiță CI (GitHub Actions): build, test, push image; .env și gestionare de secrets
- Wrap‑up: opțiuni de deployment (container registry, ECS/Kubernetes), next steps
Module opționale
Opțional – API gateways & provideri de auth
- OAuth2/OIDC cu provideri externi (Auth0/Keycloak)
- Rate limiting și API keys (Flask‑Limiter)
Structura zilei de curs
- 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