resiliência em microservices€¦ · substantivo feminino 1. propriedade que alguns corpos...

49
Resiliência em microservices cache distribuído, feedback e tuning na Globo.com

Upload: others

Post on 02-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Resiliência em microservicescache distribuído, feedback e tuning na Globo.com

Page 2: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação
Page 3: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Agenda

Contexto Introdução Casos de uso Perguntas

Page 4: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

De onde viemos

G1Globo

Esporte GShow Techtudo

Page 5: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Para onde vamos

G1Globo

Esporte GShow Techtudo

Page 6: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Monolito

Page 7: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Micro-serviços

Page 8: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Resiliência

Page 9: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Resiliência

Page 10: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Resiliência

Page 11: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

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

Page 12: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

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;

Page 13: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Resiliência

Page 14: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Resiliência Capacidade de superar adversidades

Page 15: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Promovendo resiliência

Passo 1Identifique o perfil da aplicação

Passo 2Ordene os principais pontos de falha

Passo 3Proponha soluções que promovam a resiliência

Page 16: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Negócio

Passo 1

Page 17: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 2

Os conteúdos devem estar sempre atualizadas e nunca deixar de ser entregue aos usuários.

Negócio

Page 18: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 3

Vários níveis de cache do conteúdo

O Expurgo é proativo

Negócio

Page 19: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Cloud

Passo 1

Platform as a service

Page 20: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Cloud

Passo 2

Se minha aplicação saturar algum recurso computacional eu preciso distribuir a carga

Page 21: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Cloud

Passo 3

Elasticidade automatizada

CPU: 50%

CPU: 95%

CPU: 85%

CPU: 50%

CPU: 50%

Page 22: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Aplicação

Passo 1

Accounts

Page 23: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 2

Se os micro-serviços que eu integro falharem como eu garanto minha autenticação

Aplicação

Page 24: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 3

Aplicação

Quebra de circuito (Circuit breaker)

x% de falha envia email para garantir autenticação

Page 25: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Clientes

Passo 1

APIs

Page 26: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 2

Se o meu serviço ficar indisponível o que meus clientes devem fazerClientes

Page 27: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 3

Clientes devem fazer

Retry Backoff Cache

Clientes

Page 28: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Sistema Operacional

Passo 1

Varnish

Page 29: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Sistema Operacional

Passo 2

À medida que o acesso aumentava, tivemos paginação em disco e problemas com conexões

Page 30: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Sistema Operacional

Passo 1

Tunning de memória Tunning TCP/IP

User space

Kernel space

CacheOS

Page 31: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 1

Serviço

Page 32: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 2

Serviço Como adicionar novas aplicações sem alterar meus serviços atuais?

Page 33: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 3

Serviço

● Agregação de APIs● Reforço na disponibilidade de seu BFF

Page 34: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Monitoração

Passo 1

Page 35: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Monitoração

Passo 2

Como maximizar o tempo de detecção e recuperação de falhas?

Page 36: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Monitoração

Passo 3

● Zabbix● Sentry● Páginas de status - cachet● Measures (Kibana as a service)

Sistemas de feedback

Page 37: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Arquitetura

Passo 1

APIs

Page 38: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 2

Como garantir que mudanças possam acontecer sem impactar meus clientes?

Arquitetura

Page 39: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 3

APIs

Tenants

G1 GE GS

Arquitetura

Page 40: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Algoritmo

Passo 1

APIs

Page 41: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 2

Como contabilizar votos de maneira a minimizar o tempo de respostaAlgoritmo

Page 42: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

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

...

Page 43: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Rede

Passo 1

Page 44: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Rede

Passo 2

Como distribuir um micro-serviço de modo a maximizar a disponibilidade?

Page 45: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Rede

Passo 1

Balanceamento de carga

Page 46: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

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

Page 47: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

Passo 1Identifique o perfil da aplicação

Passo 2Ordene os principais pontos de falha

Passo 3Proponha soluções que promovam a resiliência

Resumindo

Promover uma aplicação resiliente é uma tarefa evolutiva

Page 48: Resiliência em microservices€¦ · Substantivo feminino 1. Propriedade que alguns corpos apresentam de retornar à forma original após terem sido submetidos a uma deformação

https://talentos.globo.com