Escalabilidade de Aplicações Web

  • 4,021 views
Uploaded on

Apresentação feita no

Apresentação feita no

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,021
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
58
Comments
0
Likes
7

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Escalabilidade de Aplicações Web Renato Lucindo
  • 2. Agenda
      • Aplicações Web
      • Escalabilidade
        • Vertical
        • Horizontal
      • Alta Disponibilidade
      • Problemas
      • BORG
  • 3. Aplicações Web
    • Aplicação: Front-end + Negócio
    • C R UD
    • Problemas de Escala: Dados
  • 4. Escalabilidade
      • Capacidade do sistema de assimilar uma carga crescente
        • Conexões
        • Processamento
      •   Escala vertical
        • Adicionar recursos físicos a um nó
        • Otimizar o código para assimilar mais carga
      • Escala horizontal
        • Adicionar mais nós ao sistema 
  • 5. Escalabilidade Vertical
      • Adicionar: CPU, Memória, Disco, etc...
      • Escalabilidade em um único nó
        • Número de conexões
        • Usuários simultâneos
        • Operações por segundo
      • Front-end + Negócio
      • Otimizar utilização de recursos
        • I/O
        • Memória
        • CPU 
  • 6. Escalabilidade Vertical
      • Patterns de programação concorrente e tratamento de eventos.
      • POSA 2
  • 7. Escalabilidade Horizontal
      • Adicionar mais nós para assimilar mais trabalho
        • Escalabilidade linear ou melhor
      • Front-end + Negócio: Stateless
      • Dados
        • Cache
        • Fila
        • Master/Slave
        • Particionamento
  • 8. Escalabilidade Horizontal - Cache
  • 9. Escalabilidade Horizontal - Cache
      • Benefícios
        • Escala nas operações de leitura
      • Consequencias 
        • Alteração na lógica de negócio para tratar cache
        • Dados inconsistentes
        • "There are only two hard things in Computer Science: cache invalidation and naming things" - Phil Karlton 
  • 10. Escalabilidade Horizontal - Fila
  • 11. Escalabilidade Horizontal - Fila
      • Benefícios
        • Escalabilidade na escrita
      • Conseqüências
        • Alteração na lógica de negócio para tratar a fila
        • Dados inconsistentes
  • 12. Escalabilidade Horizontal - Master/Slave
  • 13. Escalabilidade Horizontal - Master/Slave
      • Benefícios
        • Escalabilidade na leitura
      • Consequencias
        • Alteração na lógica de negócio para decidir de onde ler e onde escrever
        • Dados inconsistentes
  • 14. Escalabilidade Horizontal - Particionamento
  • 15. Escalabilidade Horizontal - Particionamento
      • Benefícios
        • Escalabilidade de leitura e escrita
      • Conseqüências
        • Alteração da lógica de negócio para tratar partições
        • De-normalização dos dados
        • Ausência de joins entre partições
          • joins na camada da aplicação
        • Dados inconsistentes
  • 16. Escalabilidade Horizontal
  • 17. Alta Disponibilidade
      • Tolerância a falhas de hardware e software
        • Eliminação de pontos únicos de falha
      • Redundância
        • Failover
      • Réplicas
        • Quantidade de cópias
        • Granularidade das cópias
  • 18. Problemas
      • Complexidade
      • Consistência dos dados
        • (R + W) < N (consistência tardia)
      • Dificuldade de manipulação dos dados
      • Dados NoSQL
        • Contadores
        • Listas/Conjuntos
        • Árvores/Grafos
  • 19. BORG
  • 20. BORG
  • 21. BORG
      • Banco de dados Chave-Valor
      • 3 anos de desenvolvimento
      • Erlang
      • Interface REST
        • Memcached
        • Subconjunto REDIS
      • Múltiplos backends
        • Memória (com LRU)
        • Mnesia
        • MySQL
      • Réplicas
      • Particionamento
      • NoSQL
        • Fila, Contadores, Conjuntos, etc
  • 22. Fim Obrigado! Perguntas? http://uol.com/trabalhe Renato Lucindo - @rlucindo