Guia do mochileiro para escalabilidade

1,733 views

Published on

Escalabilidade em um sistema é planejada desde a sua concepção ou as consequências deverão ser aceitas. Como entender a arquitetura de uma aplicação web, como usar essa arquitetura a seu favor e quais são as práticas mais comuns será o conteúdo dessa palestra. Nada de teoria, você leva pra casa um conjunto de VMs pra exprimentar e aprender o que foi apresentado.

Published in: Technology
0 Comments
19 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,733
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
18
Comments
0
Likes
19
Embeds 0
No embeds

No notes for slide

Guia do mochileiro para escalabilidade

  1. 1. Escalabilidade Augusto Pascutti Guia do mochileiro para na Web
  2. 2. Agenda • O que é escalabilidade • A arquitetura da web • Escalando sua aplicação
  3. 3. O que é escalabilidade?
  4. 4. servercliente
  5. 5. servercliente 😄 😴
  6. 6. servercliente 😄 😴
  7. 7. servercliente 😄 😇 cliente cliente cliente
  8. 8. servercliente 😴 😱 cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente
  9. 9. “É a habilidade de um processo suportar uma demanda crescente de trabalho. De forma sustentável.”
  10. 10. Fácil de confundir com performance.
  11. 11. Trabalho ________ Tempo Performance =
  12. 12. Trabalho ________ Recurso Escalabilidade ~=
  13. 13. O problema da escalabilidade.
  14. 14. Todo recurso tem um limite.
  15. 15. Todo recurso tem um limite. Processador
  16. 16. Todo recurso tem um limite. Processador RAM
  17. 17. Todo recurso tem um limite. Processador RAM Rede
  18. 18. Todo recurso tem um limite. Processador RAM Rede Disco
  19. 19. Todo recurso tem um limite. Processador RAM Rede Disco Dinheiro
  20. 20. Um sistema só escala se arquitetado com este objetivo.
  21. 21. A arquitetura da web
  22. 22. Cliente + Servidor
  23. 23. Frontend + Backend
  24. 24. Front + Back
  25. 25. Front + Back
  26. 26. Front + Back HTML CSS JavaScript Imagem Som Vídeo
  27. 27. Front + Back TCP/IP HTTP HTTPS
  28. 28. Front + Back Respostas Persistência Negócios Is we 😎
  29. 29. Caronas para escalar
  30. 30. Caronas 1. Não otimize antes 2. Meça tudo que for possível 3. Leitura? Cache 4. Escrita? Não use o sistema de arquivos 5. Distribua a carga
  31. 31. Leitura • Cache no navegador do usuário • Cache de páginas inteiras (borda) • Cache de imagens/scripts/css (CDN) • Cache como storage (Redis, Memcache, Mongo) • Cache de código (OPCache)
  32. 32. Escrita • Meça memória, cpu, io (NewRelic) • Grave sessões em um banco de dados (Redis) • Mantenha uploads em “cloud” • Use filas para processos longos (RabbitMQ)
  33. 33. Distribua • Vários servidores web • Separe leitura e escrita no banco de dados • Baixo timeout (limite de tempo)
  34. 34. Nossa APP
  35. 35. Rotas HTTP • GET / • GET /quote/random • GET /quote/index/:id • GET /people/me • POST /people/me
  36. 36. servercache cliente LB server session
  37. 37. servercache cliente LB server session
  38. 38. servercache cliente LB server session
  39. 39. servercache cliente LB server session
  40. 40. Repo: http://github.com/augustohp/ palestra-escalabilidade
  41. 41. ?
  42. 42. Avalie: https://joind.in/15203

×