Escalabilidade de Aplicações Web
Upcoming SlideShare
Loading in...5
×
 

Escalabilidade de Aplicações Web

on

  • 4,520 views

Apresentação feita no

Apresentação feita no

Statistics

Views

Total Views
4,520
Views on SlideShare
4,398
Embed Views
122

Actions

Likes
7
Downloads
57
Comments
0

4 Embeds 122

http://blog.lucindo.com.br 108
http://irr.posterous.com 9
http://www.linkedin.com 4
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Escalabilidade de Aplicações Web Escalabilidade de Aplicações Web Presentation Transcript

  • Escalabilidade de Aplicações Web Renato Lucindo
  • Agenda
      • Aplicações Web
      • Escalabilidade
        • Vertical
        • Horizontal
      • Alta Disponibilidade
      • Problemas
      • BORG
  • Aplicações Web
    • Aplicação: Front-end + Negócio
    • C R UD
    • Problemas de Escala: Dados
  • 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 
  • 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 
  • Escalabilidade Vertical
      • Patterns de programação concorrente e tratamento de eventos.
      • POSA 2
  • 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
  • Escalabilidade Horizontal - Cache
  • 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 
  • Escalabilidade Horizontal - Fila
  • Escalabilidade Horizontal - Fila
      • Benefícios
        • Escalabilidade na escrita
      • Conseqüências
        • Alteração na lógica de negócio para tratar a fila
        • Dados inconsistentes
  • Escalabilidade Horizontal - Master/Slave
  • 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
  • Escalabilidade Horizontal - Particionamento
  • 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
  • Escalabilidade Horizontal
  • 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
  • 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
  • BORG
  • BORG
  • 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
  • Fim Obrigado! Perguntas? http://uol.com/trabalhe Renato Lucindo - @rlucindo