Curso Implementando Observabilidade com OpenTelemetry em Arquiteturas de Microsserviços

  • DevOps | CI | CD | Kubernetes | Web3

Curso Implementando Observabilidade com OpenTelemetry em Arquiteturas de Microsserviços

24 horas
Visão Geral

Curso Implementando Observabilidade com OpenTelemetry em Arquiteturas de Microsserviços: Este curso intensivo de 24 horas foi cuidadosamente elaborado para capacitar desenvolvedores, arquitetos e profissionais de DevOps a construir e gerenciar sistemas distribuídos mais robustos e compreensíveis através da implementação eficaz da observabilidade. Com um foco prático e direcionado a arquiteturas de microsserviços, o curso abordará o uso do OpenTelemetry como o padrão unificador para coletar os três pilares da observabilidade: traces distribuídos, métricas e logs. Os participantes aprenderão a instrumentar suas aplicações em diferentes linguagens, entender a importância da correlação de dados de telemetria, configurar o OpenTelemetry Collector para processar e exportar dados de forma eficiente e, finalmente, integrar e analisar esses dados em backends de observabilidade populares como Jaeger, Prometheus/Grafana e soluções de logs. O curso abordará os desafios intrínsecos dos microsserviços, como a depuração de fluxos de requisição complexos, a gestão de performance e a identificação rápida de causas-raiz em ambientes de produção.

Objetivo

Após realizar este curso Implementando Observabilidade com OpenTelemetry em Arquiteturas de Microsserviços, você será capaz de:

  • Compreender os desafios inerentes à depuração e monitoramento de arquiteturas de microsserviços.
  • Dominar os fundamentos da observabilidade e o papel central do OpenTelemetry.
  • Instrumentar de forma eficaz aplicações de microsserviços em diferentes linguagens para coletar traces distribuídos, métricas e logs.
  • Implementar a propagação de contexto de traces através de limites de serviço e de diferentes protocolos.
  • Configurar e otimizar o OpenTelemetry Collector para coletar, processar e exportar telemetria de microsserviços.
  • Utilizar ferramentas como Jaeger para analisar traces distribuídos e identificar gargalos e falhas.
  • Monitorar a performance e o comportamento de microsserviços com Prometheus e Grafana.
  • Coletar e analisar logs estruturados, correlacionando-os com traces e métricas.
  • Aplicar as melhores práticas de instrumentação e design de observabilidade para ambientes de microsserviços.
  • Resolver problemas complexos e depurar aplicações distribuídas de forma eficiente usando os dados de telemetria.
Publico Alvo
  • Desenvolvedores de Software (Back-end, Full-stack) trabalhando com microsserviços.
  • Arquitetos de Sistemas que projetam e evoluem arquiteturas distribuídas.
  • Engenheiros de DevOps e SREs responsáveis pela operação e monitoramento de sistemas em produção.
  • Tech Leads e Líderes Técnicos que buscam implementar ou aprimorar a observabilidade em suas equipes.
  • Profissionais que atuam com sistemas distribuídos e buscam ferramentas para depuração e otimização.
Pre-Requisitos
  • Conhecimento sólido em desenvolvimento de software e experiência com pelo menos uma linguagem de programação (Java, Python, Node.js, .NET, Go, etc.).
  • Familiaridade com conceitos de arquitetura de microsserviços (comunicação entre serviços, APIs REST/gRPC, service discovery).
  • Noções básicas de Docker e orquestração de containers (Kubernetes é um plus, mas não obrigatório).
  • Entendimento básico de monitoramento e logging.
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico

Módulo I: Fundamentos da Observabilidade em Microsserviços (4 horas)

  • 1.1 Desafios da Arquitetura de Microsserviços (1.5h)
    • Complexidade intrínseca e superfície de ataque aumentada.
    • Debugging distribuído: o "onde o problema realmente está?".
    • Monitoramento de serviços autônomos e suas interações.
    • Gerenciamento de logs de múltiplos serviços.
    • A importância da observabilidade em microsserviços para resiliência e agilidade.
  • 1.2 Introdução aos Pilares da Observabilidade (1h)
    • Traces Distribuídos: Desvendando o fluxo de requisição.
    • Métricas: Quantificando o comportamento do sistema.
    • Logs Estruturados: Entendendo eventos e contextos.
    • Como os três pilares se complementam para uma visão completa.
  • 1.3 OpenTelemetry: O Padrão para Telemetria em Microsserviços (1.5h)
    • Visão geral do OpenTelemetry (OTel) e seu papel na padronização da telemetria.
    • Arquitetura do OTel: APIs, SDKs, Collector.
    • Modelo de dados unificado: Traces (Spans, SpanContext), Métricas (Instruments, Aggregators), Logs (LogRecords).
    • O Protocolo OpenTelemetry (OTLP) e sua importância na interoperabilidade.

Módulo II: Instrumentação de Traces Distribuídos em Microsserviços com OpenTelemetry (6 horas)

  • 2.1 Conceitos Avançados de Traces e Propagação de Contexto (1.5h)
    • Anatomia de um Trace: Spans, relações Parent-Child, Links.
    • SpanKind: Client, Server, Producer, Consumer, Internal.
    • Propagação de Contexto (Context Propagation): W3C Trace Context (traceparent, tracestate).
    • Propagação de contexto entre diferentes limites de serviço (HTTP headers, gRPC metadata, Kafka headers, etc.).
    • Baggage: Propagação de dados de negócio em todo o trace.
  • 2.2 Instrumentação de Microsserviços para Traces (2.5h)
    • 2.2.1 Instrumentação Manual: Uso das APIs dos SDKs OpenTelemetry para criar spans personalizados em serviços. Exemplos práticos em 2-3 linguagens (e.g., Java/Spring Boot, Python/Flask, Node.js/Express).
    • 2.2.2 Instrumentação Automática: Configuração e uso de auto-instrumentação para frameworks de comunicação (HTTP clients/servers, gRPC), bancos de dados e filas de mensagens.
    • Enriquecendo traces: Adição de atributos semânticos (OpenTelemetry Semantic Conventions) e atributos de negócio customizados.
    • Tratamento de erros e exceções em traces.
  • 2.3 Configuração do OpenTelemetry Collector para Traces (1h)
    • Receiving traces via OTLP.
    • Processamento básico de traces: batch processor, resource processor.
    • Exportando traces para o Jaeger.
    • Descoberta de serviços e configuração de endpoints do Collector em ambientes de microsserviços (via variáveis de ambiente, service discovery).
  • 2.4 Análise e Depuração com Jaeger (1h)
    • Navegação e filtros na interface do Jaeger.
    • Análise de fluxos de requisição completos entre múltiplos serviços.
    • Identificação de gargalos de latência e dependências inesperadas.
    • Uso de Service Graphs e Flame Graphs para visualização do comportamento.
    • Debugging de problemas complexos em cadeias de chamadas distribuídas.

Módulo III: Métricas de Microsserviços com OpenTelemetry e Prometheus/Grafana (5 horas)

  • 3.1 Tipos de Métricas e Instrumentação (1.5h)
    • Counter: Para eventos cumulativos (e.g., número de requisições, erros).
    • Gauge (ObservableGauge): Para valores que podem subir e descer (e.g., tamanho de fila, uso de CPU).
    • Histogram: Para medições de distribuição (e.g., latência de requisições, tamanhos de payloads).
    • Dimensionalidade de Métricas: Como usar atributos para detalhar métricas (e.g., http.method, status_code, service.name).
  • 3.2 Instrumentação de Métricas em Microsserviços (2h)
    • 2.2.1 Instrumentação Manual: Criando métricas customizadas de negócio e performance (e.g., latência de operações específicas de um serviço, contagem de itens processados).
    • 2.2.2 Instrumentação Automática: Coleta de métricas de runtime (JVM, CLR, Go Runtime, Node.js Event Loop) e métricas de sistema (CPU, memória) dos microsserviços.
    • Instrumentação de bibliotecas de banco de dados e mensageria para métricas.
    • Exportando métricas via OTLP para o OpenTelemetry Collector.
  • 3.3 Coleta de Métricas com OpenTelemetry Collector e Prometheus (1h)
    • Configuração do Collector para receber métricas via OTLP.
    • Exportação de métricas do Collector para o Prometheus (formato Prometheus).
    • Configuração do Prometheus para fazer scrape dos endpoints de métricas do Collector e dos microsserviços.
    • Service discovery do Prometheus em ambientes de microsserviços.
  • 3.4 Visualização e Alerta de Métricas no Grafana (0.5h)
    • Integração do Grafana com Prometheus.
    • Criação de dashboards relevantes para microsserviços (Golden Signals: Latency, Traffic, Errors, Saturation).
    • Utilização de PromQL para consultas complexas.
    • Configuração de alertas baseados em métricas críticas de microsserviços.

Módulo IV: Logs Estruturados e Correlacionados com OpenTelemetry e Soluções de Logging (5 horas)

  • 4.1 O Papel dos Logs em Microsserviços e a Necessidade de Correlação (1.5h)
    • Logs como eventos: Por que a estrutura é fundamental.
    • Desafios de agregação e busca de logs em ambientes distribuídos.
    • A importância da correlação de logs com traces e métricas (Trace ID, Span ID) para contexto completo.
  • 4.2 Integração de Logs com OpenTelemetry (2h)
    • Adaptação de bibliotecas de logging populares (Logback/Log4j2 em Java, Serilog/NLog em .NET, logging em Python, Pino/Winston em Node.js).
    • Enriquecimento automático de logs com Trace ID e Span ID.
    • Formatando logs para JSON para ingestão estruturada.
    • Configuração dos SDKs OpenTelemetry para emitir LogRecords via OTLP.
  • 4.3 Coleta de Logs com OpenTelemetry Collector e Encaminhamento (1h)
    • Receiving logs via OTLP no Collector.
    • Processamento básico de logs: resource processor, batch processor.
    • Exportação de logs do Collector para Loki (com Grafana) ou Elasticsearch/Logstash (com Kibana).
    • Discussão de padrões de coleta de logs (DaemonSet, Sidecar) em ambientes conteinerizados.
  • 4.4 Análise e Visualização de Logs Correlacionados (0.5h)
    • Navegação e busca de logs em Loki/Grafana ou Kibana.
    • Filtragem e análise de logs estruturados.
    • Correlação de logs com traces e métricas diretamente nas ferramentas de visualização (e.g., links do Grafana para Jaeger).

Módulo V: Otimização e Gerenciamento da Observabilidade em Microsserviços (4 horas)

  • 5.1 OpenTelemetry Collector: Otimização para Microsserviços (1.5h)
    • Processadores avançados para microsserviços: k8sattributes (para Kubernetes), servicegraph (para gerar dependências de serviço).
    • Filtragem e transformação de dados de telemetria baseadas em regras de negócio ou performance.
    • Gerenciamento de múltiplos pipelines para diferentes tipos de telemetria ou destinos.
    • Escalabilidade e resiliência do Collector em ambientes de alta carga.
  • 5.2 Estratégias de Amostragem (Sampling) em Microsserviços (1.5h)
    • A importância da amostragem para gerenciar o volume de traces em produção.
    • Amostragem client-side vs. server-side (no Collector).
    • Implementação de tail_sampling_processor no Collector para decisões de amostragem inteligentes (e.g., amostrar 100% dos traces com erro, traces de usuários VIP).
    • Considerações sobre o impacto da amostragem na visibilidade e no custo.
  • 5.3 Correlação Cruzada e Dashboards Unificados (1h)
    • Construção de dashboards no Grafana que combinem traces (via plugin Tempo/Jaeger), métricas e logs para uma visão completa do estado de um microsserviço ou fluxo de negócio.
    • Uso de links e variáveis no Grafana para navegar entre os pilares da observabilidade.
    • Estratégias para depuração proativa e reativa em ambientes de microsserviços.
    • Melhores práticas para a implementação de observabilidade como parte do ciclo de vida de desenvolvimento de microsserviços.
TENHO INTERESSE

Cursos Relacionados

Curso Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h