No último dia 28 de fevereiro, enquanto boa parte dos brasileiros aproveitava o último dia de carnaval, os servidores da Amazon ficaram fora do ar por algumas horas. Mais especificamente, o serviço de computação em nuvem S3, oferecido pela Amazon Web Services, ou simplesmente AWS.
Essa queda afetou boa parte da internet, deixando indisponíveis sites como Trello, Slack, Imgur e até mesmo parte da loja de aplicativos da Apple. Outras grandes empresas, como Netflix e Wix, também contam com a infraestrutura da AWS, no entanto não foram afetadas (confira aqui o review da hospedagem Amazon Lightsail).
Para que se tenha uma noção da dimensão do problema, a Amazon é líder mundial no mercado de computação e hospedagem em nuvem desde 2006. Dez anos depois ela já era responsável por 31% deste mercado, estando à frente de empresas como Google e Microsoft, segundo este estudo divulgado pela Forbes.
Quanto à causa do problema, por mais incrível que pareça, foi um erro de digitação, segundo declaração da própria empresa. Eles informaram que um dos engenheiros responsáveis pela manutenção do serviço estava executando um procedimento padrão de remoção de contas inativas e enviou um comando incorreto para o sistema. Assim, diversas contas ativas também foram removidas. Os dados de todas as contas foram recuperados, mas os serviços dessas empresas ficaram indisponíveis por várias horas até que tudo fosse normalizado.
Apesar de terem sido apenas algumas horas de instabilidade, o problema teve repercussão mundial. A Amazon divulgou um comunicado informando que irá rever processos e sistemas, a fim de evitar problemas como esse no futuro.
E nós, simples mortais, que lições podemos tirar deste ocorrido? Se uma companhia do porte da Amazon está sujeita a esse tipo de problema, o que posso esperar da empresa que hospeda o meu site? Acompanhe-me a seguir e descubra alguns ensinamentos valiosos que podemos tirar deste episódio.
Erros humanos podem acontecer (em qualquer empresa)
Esta foi a maior pane registrada em toda a história da Amazon AWS. Segundo comunicado oficial, o problema foi causado por um membro autorizado da equipe de manutenção dos serviços. Em outras palavras, não se tratava de um curioso ou de um aventureiro, mas de um administrador de sistemas capaz, e provavelmente competente, caso contrário não estaria ocupando esta posição na empresa.
Com isso, podemos concluir que, apesar de toda a tecnologia e sistemas de segurança que nos rodeiam, nenhuma empresa está livre de erros causados por seres humanos.
Há alguns meses, história semelhante ocorreu em uma pequena empresa de hospedagem americana. O responsável pela manutenção do sistema rodou — sem ter consciência disso — um comando que removeu todos os arquivos e diretórios do servidor. Assim, ele mandou para o espaço, sem chance de recuperação, cerca de 1500 contas de clientes. Até mesmo os backups foram removidos. Ao tentar pedir ajuda técnica em um fórum, ele foi aconselhado a procurar um advogado, ao invés de suporte especializado. Triste, não é mesmo?
É claro que este tipo de situação não é regra, mas sim exceção. De qualquer modo, é importante ter a consciência de que erros humanos acontecem em qualquer empresa. Independente do tamanho.
Não existe 100% de uptime
A situação experimentada pelos sites hospedados na AWS foi uma exceção. Esse tipo de coisa não acontece todos os dias. No entanto, esse caso nos remete à questão do uptime, ou disponibilidade, que é o percentual de tempo no qual um servidor está disponível para uso.
A taxa de uptime está declarada no contrato de serviço das empresas de hospedagem. A Amazon informa que o S3 (o serviço que falhou) foi projetado para ter 99,999999999% de disponibilidade. No entanto, nos termos de uso da ferramenta, eles possuem uma tabela de reembolso, para calcular o quanto seria devolvido ao cliente em situações como essa. O percentual de créditos devolvidos varia de acordo com o percentual de indisponibilidade.
Esse tipo de promessa nos lembra que não existe 100% de uptime. Raras são as empresas que prometem essa disponibilidade, e as que prometem, não a garantem. Se você pesquisar, é possível verificar que o chamado SLA (Service Level Agreement ou, em português, acordo do nível de serviço) varia de empresa para empresa. E mesmo que ele seja de 100%, haverá alguma cláusula no contrato informando que a empresa fará uma devolução proporcional ao tempo fora do ar.
É importante destacar que não estamos falando apenas de quedas imprevistas. Os servidores de internet são computadores que, de tempos em tempos, precisam ser reiniciados. Em geral, servidores são reiniciados quando uma atualização de sistema precisa ser feita. Mas outras questões também podem exigir uma reinicialização, como a correção de um travamento, por exemplo. As empresas costumam avisar antecipadamente quando o serviço estará indisponível e por quanto tempo. Geralmente esse tipo de manutenção é feito de madrugada, em horários de menor movimento.
Nenhuma empresa está livre de problemas
Acontece nas melhores famílias, já diz o ditado. Levando esse dito popular para o universo corporativo, é sempre bom lembrar que problemas acontecem em qualquer empresa. Mesmo grandes corporações, que parecem blindadas a qualquer tipo de erro, eventualmente cometem algum deslize.
Quem não se lembra do celular que pegava fogo, da Samsung? Ou das tomadas defeituosas recolhidas pela Apple em 2016? Ou ainda, de dados sigilosos de clientes que vazaram na internet e comprometeram a segurança de milhares de contas? Estamos falando apenas de larga escala, mas pequenos problemas acontecem todos os dias em qualquer empresa. As consequências dependem do tamanho do problema, claro.
Por isso, é importante ter em mente que nenhuma empresa está livre de problemas. Ter essa noção pode evitar imprevistos de toda natureza. Focando apenas no aspecto da hospedagem de sites, é sempre bom ter um plano de contingência e certificar-se de que o backup do seu site está atualizado.
Leia o contrato antes de contratar uma hospedagem
Como mencionamos acima, a garantia de uptime, ou SLA, varia de empresa para empresa. Por isso, é importante verificar não apenas esse aspecto, mas outros itens fundamentais que estão envolvidos em um contrato de serviço de hospedagem de sites.
O quesito backup, por exemplo, é um ponto interessante. Nem todas as empresas oferecem backups dos sites de seus clientes. E aquelas que o fazem, muitas vezes não cobrem esse item no contrato, eximindo-se de qualquer responsabilidade sobre o assunto. Se o seu site contém informações que trariam prejuízo, caso fossem perdidas, então você precisa se preocupar com essa questão. Alguns serviços de hospedagem oferecem uma rotina de backups, seja como um serviço extra ou integrado ao plano. Antes de optar por algo assim, veja o que o contrato garante e o que não está coberto na garantia do serviço.
Outro item que pode afetar diretamente o seu site é a questão do que pode e o que não pode ser feito com o servidor de hospedagem. Estar ciente dos limites impostos pela empresa é mandatório antes de contratar o serviço. E muitas vezes essas regras só estão claras no contrato. Por isso, é fundamental ler os termos de serviço antes de contratar qualquer serviço de hospedagem de sites.
Tenha um plano para quando o seu site cair
Por último, mas não menos importante, fica a importância de ter um plano de contingência. O que fazer quando se descobre que o seu site está fora do ar? Mesmo dependendo de um serviço como a Amazon, é possível se prevenir para uma possível queda?
Do ponto de vista técnico, existem várias maneiras de se preparar para uma situação como a vivida pela queda da AWS. Você pode ter, por exemplo, múltiplas instâncias do seu projeto, em diferentes data centers. No caso de uma hospedagem cloud, isso poderia ser feito usando o mesmo provedor de serviço e se valendo da distribuição geográfica de seus servidores. Mas também seria possível distribuir o serviço entre dois ou mais fornecedores.
Outra possibilidade interessante é utilizar uma CDN para ter o seu conteúdo distribuído geograficamente em mais de uma localização. CDN é o acrônimo de Content Delivery Network, ou, em tradução livre, rede de distribuição de conteúdo. Serviços como o CloudFlare publicam uma cópia do conteúdo de seu site em servidores espalhados pelo mundo. As vantagens desse tipo de recurso são muitas. As páginas de seu site carregarão mais rápido, pois o conteúdo não precisará ser processado pelo servidor de hospedagem, uma vez que já existe uma cópia dele na CDN. Por esse mesmo motivo, seu servidor passará a ser menos requisitado, o que reduz a possibilidade de sobrecarga e travamento.
Além disso, caso o seu servidor fique fora do ar, existe a opção de configurar o modo “sempre online” em determinadas CDNs. Dessa forma, se houver algum problema e o seu servidor ficar inacessível, a CDN fornecerá ao usuário uma cópia em cache da versão mais recente de seu site.
Conclusão
Neste artigo, pudemos tirar algumas lições e aprender um pouco com a queda do serviço de hospedagem cloud da Amazon. Vimos ainda que nenhuma empresa está livre de passar por problemas, principalmente aqueles causados por erro humano. Assim, é importante ter um plano de contingência e preparar-se para imprevistos. Conhecer antecipadamente os problemas mais comuns é uma das melhores maneiras de se prevenir contra turbulências em seu próprio site.
Possui alguma dúvida? Algo a acrescentar? Deixe um comentário e terei prazer em falar com você! 🙂
Olá, primeiramente, parabéns pelo artigo. Segundo, qual seria o serviço da Amazon e do Google Cloud, que manteria um full cache integral do site todo?
Equipe Tudo Sobre Hospedagem de Sites
Olá,
Na AWS, o serviço responsável pelo cache é o ElastiCache. Já no GCP, seria o CloudStorage. Para saber mais sobre cada um dos serviços, basta seguir os links dos serviços.
Um abraço.