Programa do Curso

  • O que é um sistema distribuído?
  • Desafios comuns: latência, consistência, disponibilidade
  • Visão geral dos componentes do sistema e modelos de comunicação
  • Escala vertical vs. escala horizontal
  • Balançamento de carga e elasticidade
  • Escalando armazenamento, computação e I/O
  • Arquiteturas cliente-servidor e multitier
  • Arquiteturas orientadas a serviços e microserviços
  • Arquitetura orientada a eventos e filas de mensagens
  • Explicação do teorema CAP
  • Consistência forte vs. consistência eventual
  • Escolhendo entre consistência e disponibilidade
  • Particionamento e sharding
  • Estratégias de replicação e leituras/escritas por quórum
  • Bancos de dados distribuídos e lojas de valores-chave
  • REST, gRPC, corretoras de mensagens (por exemplo, Kafka, RabbitMQ)
  • Eleição de líderes e consenso distribuído
  • Usando Zookeeper ou etcd para coordenação
  • Projetar para falhas e degradação gracejos
  • Mecanismos de repetição, timeouts e disjuntores de circuito
  • Monitoramento, observabilidade e engenharia de caos
  • Contêineres, orquestração e Kubernetes
  • Statelessness e imutabilidade
  • Melhores práticas para segurança de sistemas distribuídos

Requisitos

  • Compreensão dos conceitos básicos de rede e design de sistemas
  • Experiência com práticas gerais de desenvolvimento de software
  • Familiaridade com computação em nuvem e design de API é útil

Público-Alvo

  • Arquitetos de software e líderes técnicos
  • Engenheiros backend e profissionais DevOps
  • Projetistas de sistemas construindo aplicações escaláveis em nuvem
 21 Horas

Declaração de Clientes (5)

Próximas Formações Provisórias

Categorias Relacionadas