Tecnologia não é algo fácil de se gerenciar. Por mais que possa parecer, não é só ligar o botão do power, esperar o windows carregar e curtir a vida adoidado. Redes e sistemas gigantes existem espalhados pelo mundo, muito além do que a capacidade de compreensão e visualização da maioria das pessoas consegue enxergar. São milhões de computadores, roteadores, switches, equipamentos diversos, milhões de quilômetros de fios de cobre, passando até por dentro do oceano para que você possa, da sua casa, usufruir do vasto universo da Internet.
O Twitter, como qualquer outro serviço de larga escala, vem sofrendo com problemas de estabilidade motivados pelo seu crescimento absurdo. Na verdade, apenas enquanto você lê este texto milhares de usuários estão se cadastrando no Twitter simultaneamente. Mas por que o sistema cai?
Na Governança de TI existem dois termos que são fundamentais para entender os motivos que levam o Twitter a ‘baleiar’. O primeiro chama-se Disponibilidade. A gerência da disponibilidade é responsável por tudo o que envolve manter o serviço ‘no ar’, funcionando e saudável. Quando o twitter está baleiado, ele está indisponível (parece óbvio, mas explicando assim facilita a compreensão). Serviços de alta disponibilidade possuem acordos chamados SLAs (Service Level Agreements) que dizem respeito ao nível de disponibilidade daquele serviço. No caso de sistemas e serviços de larga escala, esses acordos normalmente são chamados de Five Nines (Cinco noves), pois o SLA acordado é de 99,999%. O que isso quer dizer? Que durante 99,999% do tempo possível o serviço estará funcionando. Considerando que um dia tem 86400 segundos, é como se o Twitter pudesse ficar fora do ar apenas 1 segundo por dia. Em alguns casos sabemos que ele fica minutos, até horas fora, por isso é que percebe-se como é complicado atender a um acordo Five Nines.
O outro termo é a Capacidade. A gerência de capacidade diz respeito a tudo o que envolve a capacidade suportada pelo sistema (ou serviço). Cada sistema (aí inclusos servidores, links, etc.) possuem uma ‘carga máxima’ suportada. Seja de usuários simultâneos, seja de requisições. No caso do Twitter, é o número de pessoas logadas ao mesmo tempo, o número de requisições na API, o número de tweets postados, etc. São vários os indicadores da capacidade do sistema. O Twitter é disponibilizado por um número enorme de servidores, que somados são uma montanha de processadores, memória, espaço em disco, tudo escalonado e preparado para suportar a demanda. O problema é: como saber qual é a demanda de um serviço que cresce exponencialmente? É complicadíssimo e é isso o que está tirando o sono do pessoal por lá. Gerenciar bem a capacidade do ambiente é o que torna um sistema RESILIENTE (um sistema que resiste a todo tipo de pressão e carga, sem deixar de funcionar).
O investimento é pesadíssimo em infraestrutura para tornar essa capacidade controlável e deixá-la com uma ‘folga’. Por isso o Twitter não pode simplesmente comprar servidores, alocar espaço, banda, rotas, eletricidade, pessoal (claro, mais infra, mais gente para gerenciar) e dar uma enorme folga ao serviço, pois isso custa MUITO DINHEIRO. Quando digo muito, falo de dezenas de milhões de dólares. E o que acontece é que o serviço está trabalhando meio que no limite da capacidade. E quando a capacidade é estourada, vai-se junto a disponibilidade e com isso quem dá o ar da graça é a Fail Whale.
Tendo tudo isso esclarecido, fica mais fácil aceitar os momentos de downtime do Twitter, pois o difícil, meus amigos, não é fácil. E deixar o Twitter funcionando não é fácil.











































Faça seu comentário
5 comentários
Bom post. E baleiou quando fui dar RT.
O problema do Twitter não é de hardware, provavelmente é software. Refazer uma aplicação para ganhar escalabilidade é um grande problema. Já vi muitas aplicações "baleiarem" com muitas requisições mas o servidor em si ter processamento e memória disponíveis. A solução foi otimizar a aplicação, trabalhar em cluster, separar front-end da estrutura (fora o banco de dados, claro) e proxy reversos. E em alguns casos o mesmo servidor que não aguentava a aplicação com tudo no mesmo S.O. com virtualização e separação dos layers em VMs resolveu.
Não acredito que a estrutura do twitter, com todo investimento que teve, seja inferior a um Carrier 5. Como exemplo de uma estrutura Carrier 5 que resolveu problemas de escalabilidade cito o Google, que utiliza um protocolo proprietário em substituição ao TCP/IP, que tem desempenho 40% mais eficiente e o protocolo de HTTP redesenhado por eles que é 55% mais eficaz. Nem sempre mais maquinas, mais links, mais firewalls e a solução de tudo.
E tudo isso de graça.
Ainda.
Gostei do post; ficou ótimo para recomendá-lo a alguns usuários para entenderem que TI não é magia! :-D
Se não me engano outro serviço que tem SLA de Five Nines é o de telefonia móvel. Mas esse geralmente "beleia" somente alguns minutos durante a virada de ano.
Posts Novos
CURTA NO FACEBOOK
SOBRE O BLOG
O Byte Que Eu Gosto é um blog nerd/geek com tendências humorísticas. Os comentários não necessariamente refletem a opinião do autor.
ESTATÍSTICAS