Guia do mochileiro para escalabilidade

1.751 visualizações

Publicada em

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.

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

Sem downloads
Visualizações
Visualizações totais
1.751
No SlideShare
0
A partir de incorporações
0
Número de incorporações
15
Ações
Compartilhamentos
0
Downloads
18
Comentários
0
Gostaram
19
Incorporações 0
Nenhuma incorporação

Nenhuma nota no 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

×