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)

Sesiuni programate

Nu există sesiuni disponibile în acest moment.
Practical Microservices cu Python, Flask & Consul

Microservicii aplicate: Proiectezi, construiești și rulezi un sistem complet de microservicii folosind Python, Flask și Consul.

Implementezi concepte esențiale: service discovery, managementul configurărilor, load balancing și observability.

Înveți să securizezi comunicarea, să gestionezi starea aplicațiilor și să scalezi servicii în scenarii realiste.

Dobândești experiență practică printr-un format bazat 70% pe coding labs, utilizând Docker și setup-uri cloud-ready.

Cum te ajută acest curs: Vei înțelege trade-off-urile decizionale și provocările arhitecturilor reale bazate pe microservicii.

Cui i se adresează: Celor cu cunoștințe de bază în Python care doresc să obțină abilități practice și aprofundate în dezvoltarea de microservicii.

Cursul include laboratoare ghidate pas cu pas și se finalizează cu un proiect end-to-end pentru consolidarea cunoștințelor.

Abilități dobândite

Python & Flask Containere Docker Consul & Service Discovery ELK Stack & Grafana Arhitecturi Microservicii Observability & Metrici Load Balancing Managementul Stării

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

Ai participat la acest curs?

Opinia ta este foarte importantă pentru noi. Spune-ne cum a fost experiența ta și ajută-ne să îmbunătățim acest curs pentru viitorii participanți.

Ofera feedback

Vrei să afli mai multe? Suntem aici să te ajutăm!

Sau scrie-ne direct la training@edocti.com.