Categories
Engenharia de software Eventos

[QCon 2007] Randy Shoup: The eBay Architecture

QCon 2007 - Randy ShoupO 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.
Categories
Internet Webservices

Web programável

Uma das coisas mais legais que surgiu nesses últimos tempos foi a web programável (a.k.a. programmable web).

A web programável não é uma tecnologia mas sim um conceito. Tecnologicamente falando não há nenhuma novidade. Todas as tecnologias que fazem parte da web programável já estão aí há um tempão: JavaScript, XML, webservices, HTTP, RSS, Atom… O grande barato disso é a idéia, que consiste em os sites disponibilizarem além de suas tradicionais interfaces web HTML, uma interface que possibilite que programas utilizem os serviços que o site oferece.

Isso possibilita por exemplo que você coloque um mapa do Google Maps no seu site, que você tenha um site de comércio eletrônico inteiro usando a infraestrutura de pagamento e shopping cart do PayPal, que você faça um sistema de backup armazenando os seus arquivos no sistema de arquivos S3 do Amazon, que você codifique vídeos em vários formatos utilizando a HeyWatch API e por aí vai… O limite é a imaginação.

Vários grandes players do mercado já disponibilizam suas APIs públicas como o eBay, Google, Yahoo, Skype, PayPal, Amazon, além de muitos outros.

O site ProgrammableWeb é um lugar legal para acompanhar as últimas APIs lançadas por aí. Na última semana com a adição das novas APIs do Google eles anunciaram que já tem mais de 500 APIs catalogadas!