Edocti
Training tehnic avansat pentru inginerul software de mâine
Edocti Training

Practical Microservices cu Python, Flask & Consul

Intermediar
21 h
4.9 (609 recenzii)
Practical Microservices cu Python, Flask & Consul

Microservicii practice: proiectezi, construiești și rulezi un sistem de microservicii cu Python, Flask și Consul.

Implementezi service discovery, configurare, load balancing și observability.

Securizezi comunicarea, gestionezi starea și scalezi servicii în scenarii realiste.

Dobândești experiență practică prin 70% coding labs cu Docker și setup-uri cloud-ready.

Cum te ajută: înțelegi compromisurile din arhitecturile reale cu microservicii.

Cui i se adresează: conceput pentru persoane cu baze de Python care vor skill-uri practice de microservicii.

Include laboratoare ghidate și un proiect end-to-end pentru consolidarea cunoștințelor.

Curriculum

Ziua 1 — Arhitectură & design de servicii
  • Microservices vs Monoliths: costuri/beneficii, când separăm, potrivire organizațională
  • Domain‑Driven Design (DDD): bounded contexts, ubiquitous language, aggregates, anti‑corruption layer
  • Decompoziție: ownership pe date, database‑per‑service, limite tranzacționale
  • Consistență: idempotency, retries, eventual consistency, SAGA (orchestration vs choreography) — overview
  • Interfețe: REST vs gRPC (scurt intro), versionare API, modele de erori
  • Cross‑cutting: 12‑Factor App, configurație, secrets, health/readiness checks
  • Discovery: service registry & discovery cu Consul; health checks și tags
  • Lab 1: modelăm domeniul și îl împărțim în servicii (catalog, orders, payments). Schițăm API‑uri și evenimente
Ziua 1 — Containerizarea scheletului
  • Dockerfile pentru Python: multi‑stage builds, imagini slim, user non‑root
  • Structura proiectului în Docker Compose; separarea mediilor (dev/test)
  • Lab 2: containerizăm catalog & orders, expunem /health și /ready
Ziua 2 — Implementare în Python/Flask cu DI
  • Patternuri Flask: app factory, Blueprints, lifecycle, config (env & fișiere)
  • Dependency Injection (patternuri ușoare sau dependency‑injector); repositories, gateways, service layer
  • Validare & serializare cu Pydantic/Marshmallow; maparea erorilor la HTTP
  • Reziliență: timeouts, retries (tenacity), backoff & jitter; idempotency keys
  • Service discovery în practică: Consul agent, service registration, DNS vs HTTP API lookups
  • Lab 3: legăm serviciile prin Consul; implementăm orders→payments cu idempotency
Ziua 2 — Bazele observabilității
  • Logging structurat: JSON, correlation IDs (X‑Request‑ID), nivele de log
  • Trimiterea logurilor către ELK: Logstash pipeline; indexare și retenție în Elasticsearch; dashboarduri în Kibana
  • Metrics: prometheus_client, metrici RED/SUSE, metrici de proces
  • Lab 4: activăm JSON logs și /metrics; vizualizăm rată & latență
Ziua 3 — Stack complet: ELK, Prometheus & Grafana
  • Compose stack: Consul server + agents, servicii, Logstash, Elasticsearch, Kibana, Prometheus, Grafana
  • Dashboards & alerts: panouri Grafana pentru p50/p95, rata erorilor; reguli de alertare (concepte)
  • Securitate: secrets în env/Consul KV, JWT la edge (schematic), TLS termination (reverse proxy opțional)
  • Lab 5: rulare end‑to‑end — pornim stack‑ul, generăm load, investigăm în Kibana și Grafana
Ziua 3 — Hardening & livrare
  • Testare: unit/integration, contract testing (Pact — overview)
  • Pachete & CI: pyproject.toml, wheels, image scan; schelet GitHub Actions
  • Liste operaționale: readiness probes, bugete/SLO, rollback‑uri
  • Lab 6: introducem o dependență care eșuează, observăm, facem rollback în siguranță

Module opționale

Opțional — Patternuri avansate
  • Microservicii event‑driven cu Kafka/RabbitMQ (overview)
  • CQRS & SAGA — detalii; outbox/inbox patterns
  • Service mesh/Consul Connect și mTLS (intro)

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