Escalabilidade e Disponibilidade em Arquiteturas Web
-
Upload
renato-lucindo -
Category
Technology
-
view
1.305 -
download
1
Transcript of Escalabilidade e Disponibilidade em Arquiteturas Web
Escalabilidade e Disponibilidade em Sistemas Distribuídos
Renato Lucindo DevDay 2013
Renato Lucindo
@rlucindo
/lucindo
Escalabilidade e Disponibilidade em Arquiteturas Web
Renato Lucindo DevDay 2013
Internet
Internet
Internet
Internet
Internet
Internet
Internet
Escalabilidade Disponibilidade
Escalabilidade
• Habilidade do sistema de assimilar carga crescente
• Escalabilidade VerFcal – Adicionar recursos em um único nó
• Escalabilidade Horizontal – Adicionar mais nós ao sistema
Escalabilidade
Escalabilidade
Escalabilidade
ParFcionamento
Escalabilidade
Como encontrar os dados?
Disponibilidade
• Habilidade do sistema em assimilar falhas de soOware e hardware
• Ausência de ponto único de falha
Disponibilidade
Disponibilidade
Disponibilidade
Réplicas
Disponibilidade
Como manter consistência?
Evolução de Arquitetura
Internet Aplicação Dados
Evolução de Arquitetura
Internet Aplicação Dados
Cache
Evolução de Arquitetura
Internet Aplicação Master
Cache
Slave
Evolução de Arquitetura
Internet Aplicação Master
Cache
Slave
Fila
Aplicação
Evolução de Arquitetura
Internet Aplicação Master 1
Cache
Slave 1
Fila
Aplicação
Master 2
Slave 2
Performance
Cache Fila
PubSub …
Ciclo de “desenvolvimento arquitetural”
while True: -‐ Ache o gargalo -‐ Remova o gargalo
Escalabilidade – Solução
• ParFcionamento • Sharding – Índice central – Hash – Índice voláFl
Escalabilidade – Solução
Internet Aplicação Shard 2
Shard 3
Shard 1
Escalabilidade – Solução
Internet Aplicação Shard 2
3 4
1 2
Shard 3
Shard 1
3 4
1 2
3 4
1 2
Disponibilidade – Solução
• Réplicas • Granularidade – RAID – Failover – Dados
Disponibilidade – Solução
Disponibilidade – Solução
Disponibilidade – Solução
Disponibilidade – Solução
Problemas
Teorema CAP
Fonte: hbp://blog.nosqlFps.com/2011/04/cap-‐diagram-‐for-‐distribuFon.html
Teorema CAP
Fonte: hbp://blog.beany.co.kr/archives/275
Teorema CAP • Consistência: todas as operações (leituras/escritas) resultam num estado global consistente
• Disponibilidade: todas as requisições (em nós sem falha) devem ter uma resposta válida
• Tolerância a Par5ção (de rede): os nós podem não conseguir se comunicar
Escolha DOIS
Teorema CAP
C + A: problemas na rede podem fazer o sistema ficar indisponível
Teorema CAP
C + P: clientes nem sempre conseguem realizar operações
Teorema CAP
A + P: clientes podem ler dados inconsistentes (valores anFgos ou não terminados)
Teorema CAP
• Na práFca, C + A e C + P são o mesmo: – C + A: não é tolerante a parFção de rede – C + P: não é disponível quando uma parFção de rede ocorre
• Problema: P – parFção de rede – Mais comum: Latência de rede.
• Escolha UM – Consistência – Disponibilidade
Falácias de Sistemas Distribuídos
• L. Peter Deutsch/Sun – 1991
Falácias de Sistemas Distribuídos
• L. Peter Deutsch/Sun – 1991 – The network is reliable
Falácias de Sistemas Distribuídos
• L. Peter Deutsch/Sun – 1991 – The network is reliable – Latency is zero
Falácias de Sistemas Distribuídos
• L. Peter Deutsch/Sun – 1991 – The network is reliable – Latency is zero – Bandwidth is infinite
Falácias de Sistemas Distribuídos
• L. Peter Deutsch/Sun – 1991 – The network is reliable – Latency is zero – Bandwidth is infinite – The network is secure
Falácias de Sistemas Distribuídos
• L. Peter Deutsch/Sun – 1991 – The network is reliable – Latency is zero – Bandwidth is infinite – The network is secure – Topology doesn’t change
Falácias de Sistemas Distribuídos
• L. Peter Deutsch/Sun – 1991 – The network is reliable – Latency is zero – Bandwidth is infinite – The network is secure – Topology doesn’t change – There is one administrator
Falácias de Sistemas Distribuídos
• L. Peter Deutsch/Sun – 1991 – The network is reliable – Latency is zero – Bandwidth is infinite – The network is secure – Topology doesn’t change – There is one administrator – Transport cost is zero
Falácias de Sistemas Distribuídos
• L. Peter Deutsch/Sun – 1991 – The network is reliable – Latency is zero – Bandwidth is infinite – The network is secure – Topology doesn’t change – There is one administrator – Transport cost is zero – The network is homogenous
Evolução Arquitetural
while True: -‐ Ache o gargalo -‐ Remova o gargalo
• Logs, contadores, gráficos • Testes: load & kill
Evolução Arquitetural
Load
Evolução Arquitetural
Load
$ kill -STOP …
NÃO EXISTEM SOLUÇÕES PRONTAS
Resumo
while True: -‐ Ache o gargalo -‐ Remova o gargalo
• Escalabilidade: ParFção de dados • Disponibilidade: Réplicas • Performance: Cache, Filas, PubSub, …
Leia!
Obrigado!
@rlucindo
/lucindo