Close

O caminho para um gerenciamento de incidentes melhor começa aqui

Gerenciamento de incidentes na era do DevOps

Aplicando princípios de comunicação aberta e sem repreensão às equipes de gerenciamento de incidentes

Não se pode repensar como criar, implementar e operar softwares sem repensar como responder aos incidentes.

Na palestra inspiradora de 2009, “10+ Implantações por dia: Dev e Ops Cooperation no Flickr," John Allspaw e Paul Hammond esboçaram a visão de um mundo onde desenvolvedores e equipes de operações de TI trabalham juntos e entregam com frequência. Na década seguinte, essa visão tomou forma como o movimento DevOps.

A natureza de DevOps depende de novas formas de responder a incidentes. Não é de se surpreender que o gerenciamento de incidentes tenha sido tão enfatizado na palestra de Allspaw e Hammond.

“O importante a perceber é que falhas vão acontecer”, disse Hammond na palestra. “Não é a questão de se, é a questão de quando”.

Ao contrário de estruturas como a ITIL, não há um documento 'oficial' de práticas recomendadas para a equipe de DevOps. Mas, em geral, podemos concordar que DevOps trata da entrega de valor comercial a uma empresa, dividindo silos organizacionais, aumentando a transparência e fomentando a comunicação aberta entre desenvolvedores e equipes de operações de TI.

Essa mesma cultura de transparência, visibilidade e aprendizado rápido estende-se ao gerenciamento de incidentes.

Por quê? Porque as primeiras e mais críticas etapas no gerenciamento de incidentes envolvem entender o que deu errado, fazer com que as pessoas certas trabalhem no problema e promover uma cultura sem repreensão.

O gerenciamento de incidentes de DevOps exige uma cultura de comunicação aberta e sem repreensão entre desenvolvedores e equipes de operações de TI. E o estabelecimento de processos leves que melhorem a confiabilidade dos serviços de TI, aumentem a satisfação do cliente e agreguem valor para a empresa. Um engenheiro de DevOps pode ajudar a implementar a cultura e as práticas de DevOps.

A ITIL, em comparação, é o conjunto prescrito de 26 processos, procedimentos, tarefas e listas de verificação desenvolvidos para melhorar práticas específicas no gerenciamento de serviços de TI. A ITIL concentra-se na qualidade e na consistência do serviço e na melhoria da resiliência dos sistemas.

Um dos benefícios da ITIL é que as empresas que querem melhorar o ITSM podem começar com um modelo de práticas recomendadas em vez de começar do zero. E embora alguns acreditem que a ITIL é mais adequada para grandes empresas, a estrutura é flexível o suficiente para que empresas menores possam escolher os processos mais interessantes para seus negócios e também encontrar valor.

Uma desvantagem da ITIL, se você está com pressa para mudar o processo de resposta a incidentes, é que ela pode envolver o gerenciamento formal de mudanças e um consultor especializado, atrasando as melhorias.

Para as equipes que querem começar de imediato, a abordagem de gerenciamento de incidentes de DevOps pode ajudar a fazer a mudança e a obter benefícios imediatos.

O processo de gerenciamento de incidentes de DevOps

A abordagem de DevOps para gerenciar incidentes não é muito diferente das etapas tradicionais de um gerenciamento de incidentes eficaz. O gerenciamento de incidentes de DevOps inclui a ênfase explícita no envolvimento das equipes de desenvolvedores desde o início, inclusive no plantão, e na atribuição de tarefas com base em conhecimento especializado, não em cargos.

1. Detecção
Em vez de esperar que os incidentes nunca aconteçam (porque, sem dúvida, eles vão acontecer), as equipes de resposta a incidentes de DevOps investem bastante na preparação. Elas trabalham em colaboração para planejar as respostas a possíveis incidentes identificando as fraquezas dos sistemas. Elas configuram ferramentas de monitoramento, sistemas de alerta e runbooks que ajudam cada membro a saber com quem entrar em contato quando um incidente é detectado e o que fazer em seguida.

2. Resposta
Em vez de contar com um só engenheiro de plantão responsável por responder a todos os incidentes do turno de plantão, as equipes de gerenciamento de incidentes de DevOps designam vários membros da equipe para estarem disponíveis para escalonamento. Quando o engenheiro de plantão designado não consegue resolver um incidente sozinho, há um runbook pronto para ser usado como um guia. O engenheiro de plantão pode fazer com que as pessoas certas avaliem o nível de impacto e a gravidade do problema, encaminhando-o para os respondentes certos.

3. Resolução
Quando chega a hora de responder a um incidente, as equipes de gerenciamento de incidentes de DevOps na maioria das vezes conseguem uma resolução rápida. O motivo é que elas estão mais familiarizadas com o aplicativo ou o código do sistema porque foram elas que o escreveram! E com o benefício da preparação avançada e de bons sistemas de comunicação, em conjunto elas podem fazer o trabalho que resolve o incidente, alcançando uma resolução mais rápida do que uma equipe de resposta de terceiros analisando o código pela primeira vez.

4. Análise
As equipes de gerenciamento de incidentes de DevOps fecham um incidente com um processo de post mortem sem repreensão. Elas se reúnem para compartilhar informações, métricas e lições aprendidas com o objetivo de sempre melhorar a resiliência dos sistemas e de resolver incidentes futuros com rapidez e eficiência.

5. Preparação
Depois que um incidente é resolvido, todas as etapas de correção são concluídas e o sistema é restaurado, as equipes de gerenciamento de incidentes de DevOps se concentram para avaliar a preparação para o próximo incidente. Elas pegam o que aprenderam no processo post mortem, atualizam os runbooks e fazem os ajustes necessários nas ferramentas de monitoramento e nos sistemas de alerta. E o foco de DevOps na melhoria contínua se aplica às pessoas e à equipe, não apenas à tecnologia. Após um incidente, cada membro da equipe está mais bem preparado para o próximo.

Práticas recomendadas para garantir a eficácia das equipes de GI de DevOps

A adoção da abordagem de DevOps para a resposta a incidentes pode melhorar a comunicação entre as equipes de desenvolvimento e de operações de TI, acelerar a resposta e a correção de incidentes e aumentar a resiliência do sistema.

Automatizar processos e fluxos de trabalho
Integre as ferramentas de central de atendimento, monitoramento, emissão de tickets, gerenciamento de CMDB/ativos e chat para simplificar os alertas de incidentes de TI e os fluxos de trabalho, garantindo que as pessoas certas sejam notificadas com as informações necessárias para começar a resolução. Configure runbooks com fluxos de trabalho predefinidos para que as pessoas possam começar a trabalhar de imediato quando um incidente ocorre.

Comunicação entre as equipes
Garanta que os membros das equipes possam se comunicar em toda a empresa com ferramentas de chat em tempo real. Use ferramentas que criem um registro do incidente para que qualquer pessoa possa entrar a qualquer momento e se atualizar sobre o que aconteceu e o que está sendo feito.

Usar a abordagem sem repreensão
Depois de ter resolvido o incidente, faça uma reunião da equipe para rever o que aconteceu em uma sessão de post-mortem sem repreensão. Evite culpar alguém e concentre-se no compartilhamento de informações que ajudem a melhorar o trabalho das pessoas e contribuam para um sistema mais confiável.

Identificar os resultados dos negócios e focá-los
A resposta a incidentes de DevOps é mais do que um meio de melhorar a comunicação, é também a forma de garantir que desenvolvedores e operações trabalhem juntos para gerar um valor real para os negócios. Acompanhe métricas como o tempo médio de detecção (MTTD), o tempo médio para reparo (MTTR) e o tempo médio entre falhas (MTBF) para entender a taxa de melhoria da equipe.

Utilizar o agendamento de plantão para posicionar desenvolvedores e administradores de sistemas como SREs
Nas equipes de DevOps, as diferenças entre desenvolvedor e administrador de sistemas começam a desaparecer e aqueles que respondem ao incidente em geral se tornam engenheiros de confiabilidade do site (SRE). Ainda assim, cada indivíduo vai poder ter um conhecimento especializado no código do aplicativo ou no código da infraestrutura. Defina o planejamento de plantão para garantir a combinação certa de conhecimentos disponíveis para responder aos incidentes.

a seguir
SRE