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.

B1412c9ed55333c1df561f64dfad69d3?s=128

Gustavo Pantuza

April 25, 2017
Tweet

Transcript

  1. 2.
  2. 11.

    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
  3. 12.

    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;
  4. 15.

    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
  5. 17.

    Passo 2 Os conteúdos devem estar sempre atualizadas e nunca

    deixar de ser entregue aos usuários. Negócio
  6. 23.

    Passo 2 Se os micro-serviços que eu integro falharem como

    eu garanto minha autenticação Aplicação
  7. 24.

    Passo 3 Aplicação Quebra de circuito (Circuit breaker) x% de

    falha envia email para garantir autenticação
  8. 26.

    Passo 2 Se o meu serviço ficar indisponível o que

    meus clientes devem fazer Clientes
  9. 29.

    Sistema Operacional Passo 2 À medida que o acesso aumentava,

    tivemos paginação em disco e problemas com conexões
  10. 36.

    Monitoração Passo 3 • Zabbix • Sentry • Páginas de

    status - cachet • Measures (Kibana as a service) Sistemas de feedback
  11. 42.

    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 ...
  12. 46.

    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
  13. 47.

    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