O documento discute técnicas para escalabilidade em sistemas. Ele aborda tópicos como desenvolvimento orientado a serviços, monitoramento, cache, replicação de dados, distribuição de tarefas e otimização de bancos de dados. O documento também apresenta casos reais de como empresas como Tumblr, Facebook e Flickr lidaram com a escalabilidade.
6. O que é?
O que não é?
07/07/2012 The Developer's Conference 6
7. O que é?
O que não é?
➔
Performance
07/07/2012 The Developer's Conference 7
8. O que é?
O que não é?
➔
Performance
➔
Usar Tecnologia X
07/07/2012 The Developer's Conference 8
9. O que é?
O que não é?
➔
Performance
➔
Usar Tecnologia X
➔
Separação de Responsabilidades
07/07/2012 The Developer's Conference 9
10. O que é?
O que não é?
➔
Performance
➔
Usar Tecnologia X
➔
Separação de Responsabilidades
07/07/2012 The Developer's Conference 10
11. Escalabilidade é uma característica
desejável em todo o sistema, em uma
rede ou em um processo, que indica sua
habilidade de manipular uma porção
crescente de trabalho de forma uniforme,
ou estar preparado para crescer.
07/07/2012 The Developer's Conference 11
12. O que é?
➔
Aguenta aumento no uso
07/07/2012 The Developer's Conference 12
13. O que é?
➔
Aguenta aumento no uso
➔
Aguenta aumento nos dados
07/07/2012 The Developer's Conference 13
14. O que é?
➔
Aguenta aumento no uso
➔
Aguenta aumento nos dados
➔
Fácil manutenção
07/07/2012 The Developer's Conference 14
52. Crescimento
➔
Índices em tabelas
07/07/2012 The Developer's Conference 52
53. Crescimento
➔
Índices em tabelas
07/07/2012 The Developer's Conference 53
54. Crescimento
➔
Índices em tabelas
07/07/2012 The Developer's Conference 54
55. Crescimento
➔
Índices em tabelas
➔
Preferência a campos com baixa cardinalidade
07/07/2012 The Developer's Conference 55
56. Crescimento
➔
Índices em tabelas
➔
Preferência a campos com baixa cardinalidade
➔
Ocupam mais espaço em disco
07/07/2012 The Developer's Conference 56
57. Crescimento
➔
Índices em tabelas
➔
Preferência a campos com baixa cardinalidade
➔
Ocupam mais espaço em disco
➔
Índices são agrupamentos
07/07/2012 The Developer's Conference 57
58. Crescimento
➔
Índices em tabelas
➔
Preferência a campos com baixa cardinalidade
➔
Ocupam mais espaço em disco
➔
Índices são agrupamentos
➔
Diminuem o tempo de escrita
07/07/2012 The Developer's Conference 58
59. Crescimento
➔
Distribuição de Tarefas
07/07/2012 The Developer's Conference 59
60. Crescimento
➔
Distribuição de Tarefas
➔
Gearman http://gearman.org/
http://php.net/gearman
07/07/2012 The Developer's Conference 60
61. Crescimento
➔
Distribuição de Tarefas
➔
Gearman http://gearman.org/
http://php.net/gearman
07/07/2012 The Developer's Conference 61
62. Crescimento
➔
Distribuição de Tarefas
➔
Gearman http://gearman.org/
http://php.net/gearman
07/07/2012 The Developer's Conference 62
64. Mais Umas Coisas
➔
Entenda o que está acontecendo
➔
Análise os custos antes de tomar uma decisão
➔
Use um proxy reverso (nginx, squid, Varnish)
➔
Lado cliente é importante
07/07/2012 The Developer's Conference 64
65. Case – Bolsa de Mulher
by: @zanaca
07/07/2012 The Developer's Conference 65
66. Case – Bolsa de Mulher
~ 7K Simultâneos
by: @zanaca
07/07/2012 The Developer's Conference 66
68. Obrigado!
@filaruina
Agradecimentos:
● @alganet e @duodraco pela oportunidade
● @searleoliveira pela ajuda com MySql
● @zanaca pela lembrança da arquitetura do Bolsa de Mulher
● @igorpsantos pela ajuda com a Infra
07/07/2012 The Developer's Conference 68