Programa do Curso
Módulo 1: Design de Microsserviços
• Um Bom Limite para Microsserviços
• Usando Design Orientado ao Domínio (DDD)
• Alternativas aos Limites do Domínio de Negócio (Volatilidade, Dados, Tecnologia, Organizacional)
• Dividindo o Monolito
• Decomposição Prematura
• Decomposição por Camada
• Usando Padrões de Decomposição (Strangler, Execução Paralela, Feature Toggle)
• Preocupações com a Decomposição de Dados (Desempenho, Integridade, Transações)
Módulo 2: Otimizando o Docker e o Runtime
• Escolhendo a imagem base adequada
• Minimizando o número de camadas
• Usando builds multiestágio
• Otimização de imagens (ordenando argumentos multilinha, etc.)
• Aproveitando o cache de build
• Fixando versões das imagens
• Ajuste fino da alocação de recursos
• Práticas seguras para containers
• Configuração do runtime para desempenho
Módulo 3: Kubernetes e Estratégias de Release
Visão Geral dos Deployments no Kubernetes
• Criando e executando um Deployment Inicial
• Opções de Deployment no Kubernetes
Realizando Deployments com Atualizações Graduais (Rolling Update)
• Compreendendo o Rolling Update
• Criando e executando um Rolling Update
• Revertendo um Deployment
Realizando Deployments Canários
• Compreendendo os Deployments Canários
• Criando e executando um Deployment Canário
Realizando Deployments Blue-Green
• Compreendendo os Deployments Blue-Green
• Criando e executando um Deployment Blue-Green
Executando Jobs e CronJobs
• Criando um Job e um CronJob
Realizando Tarefas de Monitoramento e Solução de Problemas
• Técnicas de solução de problemas com kubectl
Módulo 4: Automação e Eficiência Operacional
Usando Python para Automatizar Tarefas Comuns no Kubernetes
• Usando Python para realizar operações administrativas no Kubernetes
• Usando Python para definir objetos de Configuração
• Usando Python para criar objetos de Deployment
• Monitorando Eventos do Kubernetes usando Python
• Escalando um Deployment usando Python
Compreendendo os Desafios da Automação de Deployments
• Configuração Declarativa com Kubernetes
• Gerenciando a Integridade da Configuração
Usando a Abordagem GitOps para Automatizar Deployments
• Princípios do GitOps
• Introduzindo o Flux
• Instalando o Flux em um Cluster Kubernetes
Configurando o Flux para Deployments Automatizados
• Usando Notificações
• A Estrutura do Repositório de Origem (Source Repository)
Lidando com Atualizações de Aplicativos com Automação de Imagem
• Atualizando um Deployment de Aplicativo com o Flux
• Verificando Repositórios de Imagens de Container por Tags
• Definindo Políticas para Seleção da Última Imagem
• Configurando o Flux para Realizar Atualizações Automáticas de Imagem
Módulo 5: Observabilidade e Clareza sobre a Causa Raiz
Capacidades de Logging e Rastreamento no Kubernetes
• Por que Logging e Rastreamento são Importantes
• Acessando os Logs do Kubernetes
• Logs de Pods e Containers
• Logs do Plano de Controle (Control Plane)
• Uso de Recursos dos Nós e Pods
Coletando e Analisando os Logs
• Agregação de Logs
• Visualização de Logs
Rastreamento Distribuído no Kubernetes
• O que é o Rastreamento Distribuído
• Usando OpenTelemetry
• Ferramentas de Rastreamento Distribuído
• Instrumentando um Aplicativo
• Usando o Rastreamento para Encontrar Problemas de Desempenho
Monitoramento com Prometheus e Grafana
• Conceitos de Observabilidade
• Ferramentas de Monitoramento
• Usando Instrumentação do Prometheus
Casos de Uso Avançados para Logging
• Processamento de Logs
• Filtrando e Enriquecendo os Logs
• Event Sourcing
Módulo 6: Simulação de Crises no Cluster e Resposta a Incidentes
• Compreendendo os diferentes tipos de falhas em um ambiente de cluster
• Simulando Falhas de Nós (Nodes)
• Cenário de Evicção de Pods e Exaustão de Recursos
• Problemas de Rede
• Falhas de DNS para tratamento de tempo limite do aplicativo (application timeout)
• Simulando uma Interrupção do Servidor de API
• Simulando Tráfego Alto para Estabilidade do Sistema
• Falhas de Armazenamento (Storage)
• Erros de Configuração
• Compreendendo os procedimentos de relato de incidentes
Módulo 7: IA para Suporte à Solução de Problemas
• Benefícios da IA Generativa para Kubernetes
• Arquitetura da CLI do K8sGPT
• Instalando a CLI do K8sGPT
• Comandos e Uso do K8sGPT
• Usando Analisadores do K8sGPT (podAnalyzer, pvcAnalyzer, rsAnalyzer, etc.)
• Analisando o Cluster usando o K8sGPT
• Analisando Problemas em Tempo Real usando o K8sGPT
• Operador no Cluster para o K8sGPT
Requisitos
- Conhecimento básico da linha de comando do Linux
- Experiência com desenvolvimento de aplicativos ou administração de sistemas
- Familiaridade com containers (conceitos de Docker)
- Compreensão básica dos conceitos do Kubernetes (pods, deployments, serviços)
- Compreensão geral da arquitetura de software (ex.: APIs, serviços)
Público-alvo:
- Engenheiros DevOps
- Engenheiros de Confiabilidade do Site (SREs)
- Desenvolvedores Backend / Software que trabalham com microsserviços
- Engenheiros de Nuvem e Engenheiros de Plataforma
-
Administradores de Sistemas em transição para ambientes Kubernetes
Testemunhos de Clientes (2)
Craig esteve extremamente envolvido no treinamento, sempre garantindo que estivéssemos atentos, adaptando os exemplos às nossas atividades do dia a dia e sempre fornecendo uma resposta quando solicitado, mesmo que as informações não tivessem sido incluídas na apresentação.
Ecaterina Ioana Nicoale - BOOKING HOLDINGS ROMANIA SRL
Curso - DevOps Foundation®
Máquina Traduzida
Alto nível de comprometimento e conhecimento do instrutor
Jacek - Softsystem
Curso - DevOps Engineering Foundation (DOEF)®
Máquina Traduzida