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

Post on 02-Oct-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Agenda

Contexto Introdução Casos de uso Perguntas

De onde viemos

G1Globo

Esporte GShow Techtudo

Para onde vamos

G1Globo

Esporte GShow Techtudo

Monolito

Micro-serviços

Resiliência

Resiliência

Resiliência

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

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;

Resiliência

Resiliência Capacidade de superar adversidades

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

Negócio

Passo 1

Passo 2

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

Negócio

Passo 3

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

O Expurgo é proativo

Negócio

Cloud

Passo 1

Platform as a service

Cloud

Passo 2

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

Cloud

Passo 3

Elasticidade automatizada

CPU: 50%

CPU: 95%

CPU: 85%

CPU: 50%

CPU: 50%

Aplicação

Passo 1

Accounts

Passo 2

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

Aplicação

Passo 3

Aplicação

Quebra de circuito (Circuit breaker)

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

Clientes

Passo 1

APIs

Passo 2

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

Passo 3

Clientes devem fazer

Retry Backoff Cache

Clientes

Sistema Operacional

Passo 1

Varnish

Sistema Operacional

Passo 2

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

Sistema Operacional

Passo 1

Tunning de memória Tunning TCP/IP

User space

Kernel space

CacheOS

Passo 1

Serviço

Passo 2

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

Passo 3

Serviço

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

Monitoração

Passo 1

Monitoração

Passo 2

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

Monitoração

Passo 3

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

Sistemas de feedback

Arquitetura

Passo 1

APIs

Passo 2

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

Arquitetura

Passo 3

APIs

Tenants

G1 GE GS

Arquitetura

Algoritmo

Passo 1

APIs

Passo 2

Como contabilizar votos de maneira a minimizar o tempo de respostaAlgoritmo

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

...

Rede

Passo 1

Rede

Passo 2

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

Rede

Passo 1

Balanceamento de carga

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

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

https://talentos.globo.com

top related