Twitter baleiando – Entendendo os motivos

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.

Veja também

<>

Comentários

Topo