Visão Geral
O curso Microservice Architecture and System Design with Python & Kubernetes é uma imersão prática no desenvolvimento de aplicações distribuídas utilizando uma arquitetura de microsserviços. O curso ensina a projetar, construir, e implantar microsserviços escaláveis e resilientes com Python e Kubernetes, cobrindo desde a modelagem de sistemas até a orquestração e monitoramento em ambientes de produção. Os alunos aprenderão como projetar APIs, utilizar padrões de comunicação entre serviços, garantir tolerância a falhas e gerenciar a infraestrutura de microsserviços em clusters Kubernetes.
Conteúdo Programatico
Módulo 1: Introdução à Arquitetura de Microsserviços
- Definição e características da arquitetura de microsserviços
- Comparação entre arquitetura monolítica e microsserviços
- Vantagens e desafios da adoção de microsserviços
- Principais componentes de uma arquitetura de microsserviços: API Gateway, Service Discovery, Load Balancing
Módulo 2: Modelagem de Sistemas com Microsserviços
- Decomposição de sistemas: Identificando e definindo limites de serviço
- Design orientado a domínio (DDD) aplicado à arquitetura de microsserviços
- Definição de contratos de serviço e APIs RESTful
- Gerenciamento de dados em microsserviços: bancos de dados distribuídos e event sourcing
Módulo 3: Desenvolvimento de Microsserviços com Python
- Frameworks Python para microsserviços: Flask, FastAPI, Django
- Criação de APIs RESTful com Python e Flask
- Implementação de comunicação assíncrona com Redis, RabbitMQ ou Kafka
- Testes unitários e testes de integração para microsserviços
Módulo 4: Docker e Microsserviços
- Introdução ao Docker para containerização de microsserviços
- Criando e configurando Dockerfiles para aplicações Python
- Gerenciamento de múltiplos serviços com Docker Compose
- Otimização de imagens Docker e práticas recomendadas
Módulo 5: Kubernetes Fundamentals
- Conceitos fundamentais do Kubernetes: Pods, Nodes, Clusters
- Arquitetura do Kubernetes e gerenciamento de containers
- Criando e configurando deployments, services e ingress controllers
- Gerenciamento de ambientes de produção e alta disponibilidade
Módulo 6: Deploy de Microsserviços em Kubernetes
- Configuração de um cluster Kubernetes para microsserviços
- Criando e gerenciando deployments de microsserviços
- Implementação de Service Discovery e Load Balancing em Kubernetes
- Configurando Health Checks, Probes, e Escalonamento automático (Auto-scaling)
Módulo 7: Comunicação e Integração entre Microsserviços
- Padrões de comunicação: REST, gRPC, e mensagens assíncronas
- Implementação de comunicação síncrona e assíncrona em microsserviços
- Design e implementação de um API Gateway
- Tratamento de erros e timeouts: Circuit Breaker e Retry Patterns
Módulo 8: Monitoramento e Log Aggregation
- Monitoramento de microsserviços com Prometheus e Grafana
- Implementação de logging distribuído com ELK Stack (Elasticsearch, Logstash, Kibana)
- Uso de Tracing para identificar problemas em sistemas distribuídos (Jaeger, OpenTelemetry)
- Alertas e análise de performance em tempo real
Módulo 9: Segurança em Arquitetura de Microsserviços
- Gerenciamento de autenticação e autorização: OAuth2 e JWT
- Implementação de políticas de segurança em APIs
- Configuração de TLS e criptografia para comunicação segura entre microsserviços
- Segurança em Kubernetes: RBAC (Role-Based Access Control), Network Policies e Secrets
Módulo 10: Estratégias de Deploy e Tolerância a Falhas
- Implementando Blue-Green Deployments e Canary Releases em Kubernetes
- Garantindo a resiliência com Retry Policies, Circuit Breakers, e Fallbacks
- Estratégias de rollback e recuperação de falhas
- Configuração de alta disponibilidade e replicação de microsserviços
Módulo 11: Escalabilidade e Otimização de Microsserviços
- Escalonamento automático com Kubernetes Horizontal Pod Autoscaler (HPA)
- Otimização de recursos: CPU, memória e armazenamento
- Balanceamento de carga e distribuição de tráfego em microsserviços
- Práticas de otimização de performance e resolução de problemas