11
Enquanto não funcionou para as pessoas, nada aconteceu
ilustraçãoNa noite de trinta e um de janeiro de 2017 um engenheiro do GitLab, um dos maiores serviços de hospedagem de código do mundo, estava lidando com um problema num banco de dados. O banco tinha dois servidores, o principal e o reserva, e o reserva tinha se atrasado em relação ao principal e parado de copiar os dados dele. Para reiniciar a cópia, era preciso limpar o servidor reserva. Era tarde da noite no fuso do engenheiro, ele estava cansado, vinha brigando com o problema havia várias horas seguidas e, em algum momento, executou um comando de apagar dados numa janela que estava conectada ao servidor errado. Um ou dois segundos depois ele percebeu o erro e interrompeu o comando. Nesse segundo, cerca de trezentos gigabytes de dados de produção sumiram do servidor principal.
A empresa tinha várias formas de backup, e cada uma estava configurada. Quando a equipe começou a verificá-las, descobriu que nenhuma funcionava como todos achavam. As cópias diárias no armazenamento em nuvem não estavam sendo feitas, porque o programa de backup tinha sido feito para uma versão antiga do banco, e ele avisava dos erros por e-mails que ninguém recebia por causa de outra configuração. Os outros mecanismos ou não estavam ativados para esse servidor, ou geravam cópias a partir das quais não dava para restaurar rapidamente. O que salvou a situação foi o acaso: seis horas antes do acidente um dos engenheiros tinha tirado um snapshot do banco para os seus testes. Foi dele que tudo se restaurou, e as mudanças dessas seis horas, projetos, comentários, cerca de setecentas contas novas, se perderam. A restauração foi transmitida ao vivo no YouTube, e milhares de pessoas passaram várias horas vendo os dados serem copiados.
Antes do acidente tudo parecia exemplar. O backup estava configurado, as tarefas estavam agendadas, a documentação dizia que as cópias eram feitas. Em qualquer reunião, à pergunta “temos backup?” a resposta seria “sim”, e seria uma resposta sincera. Só que as cópias não existiam, porque ninguém nunca tinha tentado restaurar a partir delas. Um backup a partir do qual nunca se restaurou nada existe mais ou menos no mesmo sentido em que existe o objeto com forma de software do segundo capítulo.
Comigo aconteceu algo parecido numa escala muito mais modesta, e por isso mesmo, acho, mais revelador. No dia vinte e oito de março de 2026 eu estava implantando uma nova versão de um dos meus projetos, o initerent. O script de implantação devia fazer quatro coisas em sequência: passar o banco para o novo esquema, preenchê-lo com os dados iniciais, migrar os documentos antigos e só depois disso parar o aplicativo e subi-lo de novo. O script tropeçou logo na primeira linha por causa de um errinho de sintaxe do shell, e depois, por causa de configurações erradas e de uma variável vazia com o nome da conta no registro de imagens, começaram a falhar uma após a outra a migração, o preenchimento e a transferência de documentos. E então, embora nenhuma operação preparatória tivesse dado certo, o script chegou ao último passo e parou o aplicativo direitinho, para recriá-lo na nova versão.
Após entrar
O resto do livro é para quem entrou
Entre com INITE ou crie uma conta. Leva um minuto, e o livro abre aqui mesmo.