Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Resiliência em Micro-serviços

Resiliência em Micro-serviços

Essa palestra visa apresentar as soluções utilizadas pela Globo.com ao distribuir suas aplicações em micro-serviços. Serão apresentados como nossa estrutura de cache distribuída garante resiliência mesmo quando algum serviço falha. Será apresentado como uma arquitetura baseada em feedback torna os micro-serviços mais resilientes no longo prazo. Será mostrado como a definição de contratos garante estabilidade nas comunicações entre micro-serviços. Além disso, será mostrado alguns tunnings de arquitetura de redes que ajudam a garantir a disponibilidade e segurança dos micro-serviços.

Gustavo Pantuza

April 25, 2017
Tweet

More Decks by Gustavo Pantuza

Other Decks in Programming

Transcript

  1. Resiliência • Não é uma flag que ativa a resiliência

    de sua aplicação • Não é um único ponto de controle • Nada é 100% resiliente • Não é determinístico
  2. Resiliência Substantivo feminino 1. Propriedade que alguns corpos apresentam de

    retornar à forma original após terem sido submetidos a uma deformação elástica; 2. Capacidade de se recobrar facilmente ou se adaptar à má sorte ou às mudanças;
  3. Promovendo resiliência Passo 1 Identifique o perfil da aplicação Passo

    2 Ordene os principais pontos de falha Passo 3 Proponha soluções que promovam a resiliência
  4. Passo 2 Os conteúdos devem estar sempre atualizadas e nunca

    deixar de ser entregue aos usuários. Negócio
  5. Passo 2 Se os micro-serviços que eu integro falharem como

    eu garanto minha autenticação Aplicação
  6. Passo 3 Aplicação Quebra de circuito (Circuit breaker) x% de

    falha envia email para garantir autenticação
  7. Passo 2 Se o meu serviço ficar indisponível o que

    meus clientes devem fazer Clientes
  8. Sistema Operacional Passo 2 À medida que o acesso aumentava,

    tivemos paginação em disco e problemas com conexões
  9. Monitoração Passo 3 • Zabbix • Sentry • Páginas de

    status - cachet • Measures (Kibana as a service) Sistemas de feedback
  10. Passo 3 Algoritmo • Baixo processamento • 16 mil votos

    simultâneos (BBB17) • 141 milhões de votos totais (BBB17) • Kernel time_wait de 60s para 15s Buffer em memória 1000 votos ou 10 segundos ...
  11. Resumindo Promover uma aplicação resiliente é uma tarefa evolutiva Cache

    Elasticidade Circuit breaker Retry Buffer Negócio Cloud Aplicação Clientes SO Serviço Monitoração Arquitetura Algoritmo Rede Tunning BFF Feedback Tenants Load balancer
  12. Passo 1 Identifique o perfil da aplicação Passo 2 Ordene

    os principais pontos de falha Passo 3 Proponha soluções que promovam a resiliência Resumindo Promover uma aplicação resiliente é uma tarefa evolutiva