Escalabilidade e Disponibilidade em Arquiteturas Web

2.099 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
7 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.099
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
33
Comentários
0
Gostaram
7
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Escalabilidade e Disponibilidade em Arquiteturas Web

  1. 1. Escalabilidade  e  Disponibilidade  em  Sistemas  Distribuídos  Renato  Lucindo  DevDay  2013  
  2. 2. Renato  Lucindo            @rlucindo            /lucindo  
  3. 3. Escalabilidade  e  Disponibilidade  em  Arquiteturas  Web  Renato  Lucindo  DevDay  2013  
  4. 4. Internet  
  5. 5. Internet  
  6. 6. Internet  
  7. 7. Internet  
  8. 8. Internet  
  9. 9. Internet  
  10. 10. Internet  Escalabilidade   Disponibilidade  
  11. 11. Escalabilidade  •  Habilidade  do  sistema  de  assimilar  carga  crescente  •  Escalabilidade  VerFcal  – Adicionar  recursos  em  um  único  nó  •  Escalabilidade  Horizontal  – Adicionar  mais  nós  ao  sistema  
  12. 12. Escalabilidade  
  13. 13. Escalabilidade  
  14. 14. Escalabilidade  ParFcionamento  
  15. 15. Escalabilidade  Como  encontrar  os  dados?  
  16. 16. Disponibilidade  •  Habilidade  do  sistema  em  assimilar  falhas  de  soOware  e  hardware  •  Ausência  de  ponto  único  de  falha  
  17. 17. Disponibilidade  
  18. 18. Disponibilidade  
  19. 19. Disponibilidade  Réplicas  
  20. 20. Disponibilidade  Como  manter  consistência?  
  21. 21. Evolução  de  Arquitetura  Internet   Aplicação   Dados  
  22. 22. Evolução  de  Arquitetura  Internet   Aplicação   Dados  Cache  
  23. 23. Evolução  de  Arquitetura  Internet   Aplicação   Master  Cache  Slave  
  24. 24. Evolução  de  Arquitetura  Internet   Aplicação   Master  Cache  Slave  Fila  Aplicação  
  25. 25. Evolução  de  Arquitetura  Internet   Aplicação   Master  1  Cache  Slave  1  Fila  Aplicação  Master  2  Slave  2  
  26. 26. Performance  Cache    Fila    PubSub    …  
  27. 27. Ciclo  de    “desenvolvimento  arquitetural”      while  True:        -­‐  Ache  o  gargalo        -­‐  Remova  o  gargalo  
  28. 28. Escalabilidade  –  Solução  •  ParFcionamento  •  Sharding  – Índice  central  – Hash  – Índice  voláFl  
  29. 29. Escalabilidade  –  Solução  Internet   Aplicação   Shard  2  Shard  3  Shard  1  
  30. 30. Escalabilidade  –  Solução  Internet   Aplicação   Shard  2  3   4  1   2  Shard  3  Shard  1  3   4  1   2  3   4  1   2  
  31. 31. Disponibilidade  –  Solução  •  Réplicas  •  Granularidade  – RAID  – Failover  – Dados  
  32. 32. Disponibilidade  –  Solução  
  33. 33. Disponibilidade  –  Solução  
  34. 34. Disponibilidade  –  Solução  
  35. 35. Disponibilidade  –  Solução  
  36. 36. Problemas  
  37. 37. Teorema  CAP  Fonte:  hbp://blog.nosqlFps.com/2011/04/cap-­‐diagram-­‐for-­‐distribuFon.html  
  38. 38. Teorema  CAP  Fonte:  hbp://blog.beany.co.kr/archives/275  
  39. 39. 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  
  40. 40. Teorema  CAP    C  +  A:  problemas  na  rede  podem  fazer  o  sistema  ficar  indisponível  
  41. 41. Teorema  CAP    C  +  P:  clientes  nem  sempre  conseguem  realizar  operações  
  42. 42. Teorema  CAP    A  +  P:  clientes  podem  ler  dados  inconsistentes  (valores  anFgos  ou  não  terminados)  
  43. 43. 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  
  44. 44. Falácias  de  Sistemas  Distribuídos  •  L.  Peter  Deutsch/Sun  –  1991  
  45. 45. Falácias  de  Sistemas  Distribuídos  •  L.  Peter  Deutsch/Sun  –  1991  – The  network  is  reliable  
  46. 46. Falácias  de  Sistemas  Distribuídos  •  L.  Peter  Deutsch/Sun  –  1991  – The  network  is  reliable  – Latency  is  zero  
  47. 47. Falácias  de  Sistemas  Distribuídos  •  L.  Peter  Deutsch/Sun  –  1991  – The  network  is  reliable  – Latency  is  zero  – Bandwidth  is  infinite  
  48. 48. 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  
  49. 49. 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  
  50. 50. 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  
  51. 51. 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  
  52. 52. 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  
  53. 53. Evolução  Arquitetural    while  True:        -­‐  Ache  o  gargalo        -­‐  Remova  o  gargalo    •  Logs,  contadores,  gráficos  •  Testes:  load  &  kill  
  54. 54. Evolução  Arquitetural  Load  
  55. 55. Evolução  Arquitetural  Load  $ kill -STOP …
  56. 56. NÃO  EXISTEM  SOLUÇÕES  PRONTAS  
  57. 57. Resumo    while  True:        -­‐  Ache  o  gargalo        -­‐  Remova  o  gargalo    •  Escalabilidade:  ParFção  de  dados  •  Disponibilidade:  Réplicas  •  Performance:  Cache,  Filas,  PubSub,  …  
  58. 58. Leia!  
  59. 59. Obrigado!            @rlucindo            /lucindo  

×