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.
0 replies on “[QCon 2007] Randy Shoup: The eBay Architecture”
16.000 servidores já dá para saber o quão estúpido é a infra deles.
Ele falou como era a divisão de cada segmento? Tipo, existe um ‘image farm’, um ‘transaction farm’, um ‘related products farm’ e etc? Que tipo de webapp?
Mais em:
http://highscalability.com/ebay-architecture
http://www.infoq.com/news/2007/08/ebay-architecture-dan-pritchett
😉
Fala Will.
Não é exatamente assim como você está falando mas é meio parecido. Eles tem várias farms por aplicação (são 21 aplicações). Algumas coisas mais genéricas (como imagens) não fazem parte de nenhuma aplicação específica e nesse caso tem uma farm de imagens.
Vou ver se consigo o material da palestra para disponibilizar aqui. Enquanto isso o Plentz colocou alguns links legais sobre o assunto.
🙂
[ ]s, Guilherme
#First comment
Realmente impressionante. 🙂
Que responsabilidade manter uma infraestrutura gigantesca dessas! Eu imaginava que a coisa era “grande”, mas com esses números postados aqui, eu realmente fico no mínimo muito impressionado.
O melhor de tudo é saber que o bom é velho Java faz esse gigante andar! Com certeza o desenvolvimento das aplicações deve ter tido como premissa a otimização de todos os aspectos possíveis…
Infelizmente nunca li nada semelhante sobre alguma aplicação comercial no Brasil que tivesse tal quantidade de transações.
“100.000 linhas de código novas a cada duas semanas.”
WTF! Pode passar mais detalhes sobre essa parte? O que diabos estão inventando por lá? 😛
valeuz…
Marcos, não faço idéia 🙂
Apesar deles terem aberto esse tipo de informação eles sempre evitam entrar em mais detalhes quando o pessoal faz perguntas desse tipo.
[ ]s, gc