O Randy Shoup apresentou várias coisas impressionantes sobre o eBay. E quando eu digo impressionantes eu estou falando sério! Eu não fazia idéia do quão grande era o eBay e provavelmente ninguém que está lendo este texto faz. Então, eis alguns números para ajudar a entender melhor do que estamos falando:
- 248 milhões de usuários registrados.
- 1 bilhão de fotos.
- $1812 dólares por segundo em transasções realizadas.
- 100.000 linhas de código novas a cada duas semanas.
- 44 bilhões de transações de banco de dados por dia.
- 2 PetaBytes de dados.
- 1.5 TeraBytes de logs por dia.
Enfim, é MUITA, muita coisa.
Para dar conta de toda essa infraestrutura monstruosamente grande a estratégia é até bem simples:
- Particionar. Como você faz para comer um elefante? Simples: em pequenas mordidas de cada vez. As aplicações do eBay são divididas em 16.000 servidores de aplicação que utilizam mais de 1.000 instâncias de banco de dados em mais de 400 hosts.
- Processamento assíncrono. Faça o máximo de processamento assíncrono possível, isso irá liberar a sua infraestrutura para atender as operações que necessariamente precisam ser resolvidas na hora.
- Automação. Não perca tempo fazendo coisas que podem ser automáticas. Faça com que as rotinas de gerenciamento da infra sejam executadas automaticamente desde o momento que forem criadas. Automatize tudo que puder!
- Lembre-se que tudo falha. Faça com que as falhas sejam detectadas automaticamente e quando uma falha for detectada faça alguma coisa sobre isso (automaticamente, claro). Tenha sempre um plano de recuperação de desastre e backup.