BT

Novidades O InfoQ vem desenvolvendo uma série de novas funcionalidades para melhorar sua experiência com o site. Confira!

A autópsia das 18 horas fora do ar do GitLab

| por David Iffland Seguir 3 Seguidores , traduzido por Talles Lasmar Seguir 3 Seguidores em 10 mar 2017. Tempo estimado de leitura: 2 minutos |

Depois que o dano foi causado e a situação clareou, o GitLab divulgou um resumo do que deixou o site 18 horas fora do ar, como eles planejam seguir em frente, e porquê todo o incidente aconteceu.

A carga massiva no banco de dados foi primeiro diagnosticado como causada por spam. Mas ao analisar mais a fundo, ficou claro que o incidente foi exagerado por um troll que reportou um funcionário do GitLab por abuso. A conta foi marcada e então acidentalmente deletada, outro funcionário revisou as denúncias de abuso e não percebeu que era de um dos engenheiros do time:

Nós descobrimos posteriormente que parte da carga foi causada por uma tarefa em segundo plano tentando remover um funcionário do GitLab e os dados associados a ele. Esse foi o resultado de sua conta ter sido marcada por abuso e acidentalmente agendada para remoção.

O engenheiro reportado informou que sua conta foi deletada porque "nós recebemos uma denúncia de spam de um usuário que foi criado 10 minutos antes da denúncia ter sido feita. Um erro humano foi feito e todos os meus projetos foram deletados".

Devido ao acréscimo de carga, a replicação do banco de dados primário para o secundário parou pois os segmentos Write-Ahead Log (WAL) foram expurgados pelo primário antes que o secundário os processassem. Infelizmente, o arquivamento WAL — que não permitiria os segmentos serem removidos antes de serem arquivados — não estava ligado.

Já que a replicação parou, o secundário precisou ser refeito. Começar a replicar requer um diretório vazio, então um engenheiro manualmente limpou um diretório. Só que ele não limpou o diretório do secundário (que estava incorreto), ele acidentalmente limpou o diretório do primário.

A infeliz perda do banco de dados primário deveria ter retirado o site do ar durante um breve período, mas as coisas ficariam muito pior para o time do GitLab. Ao tentar restaurar os dados, eles descobriram que os backups não estavam funcionando. Seu principal método de backup, pg_dump, não estava fazendo backup de nada. Estava falhando devido à uma incompatibilidade de versão. Ninguém sabia da falha pois a notificação por e-mail estava sendo bloqueada pois o servidor que recebia as mensagens não suportava DMARC.

Outras opções de backup não estavam disponíveis por diferentes razões. Por exemplo, o time não estava utilizando snapshots de disco do Azure no banco de dados. E mesmo se eles estivessem utilizando, talvez demorasse mais ainda para voltar os dados:

Cada conta de armazenamento tem um limite de aproximadamente 30 TB. Ao restaurar uma imagem utilizando uma máquina na mesma conta, o procedimento geralmente termina de maneira rápida. No entanto, quando se utiliza uma máquina de uma conta diferente o procedimento pode demorar horas senão dias para completar.

A única opção foi restaurar a imagem LVM tirada seis horas antes do incidente.

O time levantou 14 pontos para melhorar seus procedimentos de backup. Em duas semanas desde o incidente, eles começaram a utilizar o WAL-E para arquivar os segmentos WAL em tempo real no AWS S3. O teste da restauração deste tipo de backup demorou menos de duas horas. Além disso, eles estão trabalhando em um sistema para automaticamente testar a restauração de backups do PostgreSQL.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Links by Thiago de Oliveira Pires

Pessoal, parece que os links dessa matéria estão com aquele caracteres de double quote, e isso tá fazendo dar erro 404 :(

Exemplo que copiei do HTML:
<a href="”en.wikipedia.org/wiki/DMARC”" target="”_blank”">DMARC</a>

Re: Links by Júlia Gonçalves

Olá Thiago, muito obrigada por nos reportar esse erro. São comentários como o seu que nos faz buscar sempre melhorar. O erro foi reparado, peço desculpas pelo incômodo.

Abraços

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

2 Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT