Uma pequena falha nos sistemas da Amazon Web Services fez com que algumas das aplicações e serviços mais populares do mundo ficassem indisponíveis
Uma enorme interrupção de serviço da AWS (Amazon Web Services) na semana passada, que fez cair algumas das aplicações e serviços mais populares do mundo, começou com uma pequena falha.
A falha - que ocorreu quando dois sistemas automatizados tentaram atualizar os mesmos dados em simultâneo - transformou-se em algo significativamente mais grave, que os engenheiros da Amazon se esforçaram por resolver, informou a empresa na quinta-feira, numa avaliação post-mortem.
A enorme falha do serviço de nuvem impediu que as pessoas encomendassem comida, comunicassem com redes hospitalares, acedessem a serviços bancários móveis ou se ligassem aos seus sistemas de segurança e dispositivos domésticos inteligentes. Grandes empresas mundiais, incluindo Netflix, Starbucks e United Airlines, ficaram temporariamente impossibilitadas de dar aos clientes acesso aos seus serviços online.
“Pedimos desculpa pelo impacto que este evento teve nos nossos clientes”, afirmou a Amazon numa declaração no site da AWS. "Sabemos que afetou muitos clientes de forma significativa. Faremos tudo o que pudermos para aprender com ele e usá-lo para melhorar ainda mais a nossa disponibilidade."
Em termos gerais, o problema teve origem em dois programas que competiam para gravar a mesma entrada DNS - essencialmente um registo na lista telefónica da Internet - ao mesmo tempo, o que resultou numa entrada vazia. A falha desorganizou vários serviços da AWS.
“A analogia de uma lista telefónica é bastante adequada, na medida em que as pessoas do outro lado da linha estão lá, mas se não soubermos como as contactar, temos um problema”, disse Angelique Medina, diretora do serviço de monitorização de redes ThousandEyes Internet Intelligence da Cisco, à CNN. “E a lista telefónica desapareceu de facto.”
Indranil Gupta, professor de informática na Universidade de Illinois Urbana-Champaign, usou uma analogia com a sala de aula para explicar a análise técnica da Amazon num e-mail enviado à CNN. Digamos que dois alunos, um que trabalha depressa e outro que trabalha mais devagar, são convidados a colaborar num bloco de notas partilhado.
O aluno mais lento “presta atenção em breves momentos, mas o seu trabalho pode entrar em conflito ou contradizer o trabalho do aluno mais rápido”, escreveu. Ao mesmo tempo, o aluno mais rápido pode estar “constantemente a tentar ‘corrigir’ as coisas rapidamente” e apagar o trabalho do aluno mais lento por estar desatualizado.
“O resultado é uma página vazia (ou riscada) no caderno, quando o professor vem inspecioná-lo”, escreveu.
Essa “página vazia” derrubou o banco de dados DynamoDB da AWS, criando um efeito cascata que afetou outros serviços da AWS, como o EC2, que oferece servidores virtuais para desenvolvimento e implantação de aplicativos, e o Network Load Balancer, que gere as procuras na rede. Quando o DynamoDB voltou a ficar online, o EC2 tentou colocar todos os seus servidores online ao mesmo tempo e não conseguiu acompanhar o ritmo.
A Amazon está a fazer uma série de alterações aos seus sistemas após a interrupção, incluindo a correção do “cenário de condição de corrida”, que fez com que os dois sistemas substituíssem o trabalho um do outro, e a adição de um conjunto de testes adicionais para o seu serviço EC2.
Interrupções como a de segunda-feira da semana passada, embora raras, são apenas uma realidade, disse Gupta. Mas o que importa é como esses problemas são resolvidos.
"As interrupções em grande escala como esta, simplesmente acontecem. Não há nada que se possa fazer para as evitar, tal como acontece com as pessoas que adoecem", comparou Gupta. “Mas penso que a forma como a empresa reage às interrupções e mantém os clientes informados é muito, muito importante.”