Eletrifique a cerca

Cenário

Recentemente eu passei por dois incidentes críticos no meu ambiente de trabalho. Quando digo crítico, é crítico mesmo. Derrubou o ambiente virtual inteiro (90% da operação). Começa que o DNS está lá, e a falta do DNS inutiliza praticamente 100% do ambiente para o usuário final (cerca 600 usuários diretos, sem contar os indiretos).

No primeiro deles, o incidente durou cerca de 16 horas. Iniciou às 11:30 da manhã e finalizou por volta das 03:00am do dia seguinte quando a equipe que tratou o incidente conseguiu levantar as primeiras VMs críticas para o funcionamento do negócio. A sorte desse dia é que era Copa do Mundo e, como regra no Brasil, todos os usuários estavam deixando o trabalho exatamente no início do incidente para assistir o jogo da seleção e iriam voltar somente no dia seguinte. Pouca gente percebeu o problema. Com exceção da equipe que tratou o incidente que sabia muito bem da gravidade dele.

No segundo, o incidente durou menos tempo. Cerca de 3 a 4 horas. E apesar de não ser dia de expediente normal, existia uma grande quantidade de colegas trabalhando, com hora extra autorizada. O incidente foi de menor duração porém o impacto foi maior. Afetou bastante a organização que pagou hora extra para funcionários que não trabalharam porque “os sistemas estavam indisponíveis”.

O que esses dois incidentes têm em comum? Ambos foram causados por mim. Sim. Eu. Com mais de 20 anos de experiência em gestão de infraestrutura de TI. Com bastante conhecimento em redes e configurações de ativos. Enfim, um técnico bastante confiável (modéstia a parte). Porém, num momento de distração causado por cansaço e excesso de confiança, dei conta de errar na configuração de switch, na hora de atribuir VLAN a uma porta. O resultado foi a interrupção de comunicação entre os controladores do cluster, causando queda de do ambiente virtualizado, criando o caos na infraestrutura.

Iniciativa

O livro The Visible Ops Handbook (Spafford, Kim and Behr) me trouxe o conceito de eletrificar a cerca em volta dos seus ativos mais críticos. E isso faz todo sentido. Se eu já tivesse eletrificado a cerca em volta desses switches, esses incidentes dificilmente teriam ocorridos. A organização teria processos mais bem definidos para alterar uma configuração tão crítica como essa.

Para eletrificar a cerca na prática decidimos por usar um conjunto de ferramentas, principalmente Ansible e Git. Os ativos de rede possuem módulos Ansible para a sua configuração. A ideia é que toda a configuração fique em playbooks Ansible e versionados no Git. Os administradores não terão mais credencial de acesso direto a esses ativos de rede, somente ao repositório Git. Farão alterações em uma branch, seguido de um Merge Request. Esse Merge Request será revisado por um par. Somente após a revisão e o aceite do Merge Request é que uma pipe-line de integração contínua vai aplicar, de forma automática, a alteração proposta. Somente o integrador terá acesso de administração ao ativo.

Conclusão

Com a cerca eletrificada a gente evita que um descuido gere um incidente de grandes proporções, principalmente por conta da revisão e por um processo mais bem definido. Além disso, passamos a ter o histórico de alteração da configuração dos ativos, o que ajuda muito na investigação de um incidente, saber o que foi alterado nos últimos tempos. A iniciativa promete deixar o ambiente bem mais estável.

Isso não deixa o processo mais burocrático? Pois é, nem toda burocracia é ruim! Assim que tiver os resultados volto a escrever sobre isso.