O que é a Avaliação de Maturidade DevOps?
A Avaliação de Maturidade DevOps abrange o percurso do commit até à produção em cinco grupos: Pipeline de CI/CD, Release e Implementação, Fiabilidade e Operações, Automação de Segurança e Conformidade, e Plataforma e Infraestrutura. A sua equipa avalia 15 capacidades, como a frequência de integração, a redução do risco de implementação, a sustentabilidade do on-call e a conformidade como código, numa escala de cinco níveis que vai de Ad Hoc a Otimizado. As equipas que raramente fazem entregas costumam conhecer bem os sintomas: passos manuais em cada release e uma escala de on-call que desgasta as pessoas. As avaliações mostram qual é a capacidade que constitui o verdadeiro estrangulamento. Como cada nível tem uma descrição escrita, programadores, SREs e pessoas de produto avaliam a mesma capacidade com a mesma referência, e as diferenças entre as suas perspetivas mostram por onde começar.
Dimensões
Pipeline de CI/CD
Até que ponto a equipa compila, integra e obtém feedback de forma eficaz através de pipelines automatizados.
Automação de builds
Com que fiabilidade e automatismo os builds de software são gerados e validados.
- Ad HocOs builds são manuais, lentos e propensos a erros.
- EmergenteExiste automação básica, mas é frágil ou incompleta.
- DefinidoOs builds correm de forma fiável com um nível moderado de automação.
- GeridoOs builds estão altamente automatizados, com feedback rápido e fiável.
- OtimizadoA automação de builds é fluida, estável e otimizada continuamente, com falhas quase nulas.
Frequência de integração
Com que frequência os programadores integram alterações na base de código partilhada.
- Ad HocA integração é pouco frequente, o que leva a merges grandes e arriscados.
- EmergenteA equipa tenta integrar com mais frequência, mas persistem inconsistências.
- DefinidoA integração diária é comum e reduz os conflitos de merge.
- GeridoA integração é contínua e estável em toda a equipa.
- OtimizadoIntegração quase em tempo real, com conjuntos de alterações pequenos e seguros que permitem um fluxo rápido.
Feedback do pipeline
Rapidez e clareza da informação que o pipeline devolve aos programadores.
- Ad HocO feedback é lento, pouco claro ou pouco fiável.
- EmergenteExiste feedback, mas chega muitas vezes com atraso ou com ruído.
- DefinidoO feedback do pipeline é razoavelmente atempado e acionável.
- GeridoO feedback é rápido, claro e permite aos programadores iterar com rapidez.
- OtimizadoO feedback é imediato e preciso, permitindo uma velocidade de engenharia de excelência.
Release e Implementação
Com que segurança, previsibilidade e frequência a equipa entrega alterações aos utilizadores.
Automação de implementações
Nível de automação e repetibilidade das implementações.
- Ad HocAs implementações são manuais, arriscadas e propensas a erros.
- EmergenteFoi introduzida alguma automação, mas é aplicada de forma inconsistente.
- DefinidoAs implementações são maioritariamente automatizadas e previsíveis.
- GeridoImplementações totalmente automatizadas, com baixas taxas de falha.
- OtimizadoImplementação contínua, com releases seguras, rápidas e reversíveis.
Redução do risco de implementação
Até que ponto a equipa minimiza o risco durante as releases.
- Ad HocAs releases são eventos "big bang" de alto risco.
- EmergenteExiste alguma mitigação de risco, mas é limitada.
- DefinidoFeature flags e rollouts faseados são usados regularmente.
- GeridoAs releases são de baixo risco, com salvaguardas e monitorização sólidas.
- OtimizadoEstratégias de release avançadas evitam interrupções e permitem rollback imediato.
Frequência de entrega
Com que frequência se entrega valor aos utilizadores.
- Ad HocAs releases são raras, imprevisíveis e muito variáveis.
- EmergenteA cadência de releases melhora, mas continua inconsistente.
- DefinidoA equipa faz releases segundo um calendário previsível.
- GeridoCiclos de release frequentes e fiáveis.
- OtimizadoA entrega contínua garante um fluxo de valor rápido e seguro.
Fiabilidade e Operações
Até que ponto a equipa observa, responde e mantém a saúde dos sistemas em funcionamento.
Monitorização e observabilidade
Até que ponto a equipa compreende a saúde e o comportamento do sistema.
- Ad HocMonitorização limitada ou reativa; os problemas são detetados tarde demais.
- EmergenteExistem dashboards básicos, mas a visibilidade tem lacunas importantes.
- DefinidoA monitorização oferece visibilidade adequada sobre a maioria dos componentes.
- GeridoObservabilidade sólida com logs, métricas e traces que permitem um diagnóstico rápido.
- OtimizadoObservabilidade abrangente, com insights preditivos e deteção automatizada.
Resposta a incidentes
Com que eficiência a equipa responde a incidentes e os resolve.
- Ad HocOs incidentes são caóticos e a responsabilidade não é clara.
- EmergenteA estrutura vai crescendo, mas a resolução continua inconsistente.
- DefinidoOs incidentes são tratados de forma metódica, com eficiência moderada.
- GeridoResposta rápida e coordenada, com MTTR baixo.
- OtimizadoGestão de incidentes muito madura, com postmortems focados na aprendizagem.
Sustentabilidade do on-call
Equidade e eficácia dos processos de on-call.
- Ad HocO on-call é pesado, imprevisível ou injusto.
- EmergenteA carga de trabalho torna-se mais gerível, mas os problemas continuam.
- DefinidoA rotação é justa e o volume de alertas é razoável.
- GeridoBoas práticas de on-call, com alertas bem afinados e boas ferramentas.
- OtimizadoAlertas fora de horas mínimos; a automação resolve a maioria dos problemas.
Automação de Segurança e Conformidade
Até que ponto a segurança e a conformidade estão automatizadas e integradas em todo o pipeline de entrega.
Integração da segurança
Até que ponto as práticas de segurança estão integradas nos fluxos de desenvolvimento.
- Ad HocAs verificações de segurança são manuais ou acontecem tarde no processo.
- EmergenteExistem análises automáticas básicas, mas com pouca abrangência.
- DefinidoSegurança integrada no CI/CD, com análises consistentes.
- GeridoVerificações de segurança automatizadas e abrangentes em todo o pipeline.
- OtimizadoSegurança contínua e inteligente que previne vulnerabilidades desde cedo.
Gestão de vulnerabilidades
Com que rapidez e eficácia as vulnerabilidades são detetadas e tratadas.
- Ad HocAs vulnerabilidades são detetadas tarde e a correção é lenta.
- EmergenteOs processos estão a melhorar, mas continuam inconsistentes.
- DefinidoA resposta a vulnerabilidades é previsível e ponderada.
- GeridoCorreção rápida e eficiente, com prevenção proativa.
- OtimizadoIdentificação, priorização e correção automatizadas em escala.
Conformidade como código
Uso da automação para garantir requisitos regulamentares, de segurança e de políticas.
- Ad HocAs tarefas de conformidade são manuais e reativas.
- EmergenteForam introduzidas algumas verificações automáticas.
- DefinidoAs políticas críticas estão integradas nos fluxos de automação.
- GeridoA conformidade é verificada regularmente através de verificações automáticas.
- OtimizadoConformidade contínua, com aplicação em tempo real.
Plataforma e Infraestrutura
Até que ponto a plataforma e a infraestrutura subjacentes são automatizadas, consistentes e resilientes.
Automação da infraestrutura
Como a infraestrutura é aprovisionada, gerida e escalada.
- Ad HocA infraestrutura é aprovisionada manualmente, com elevado risco de desvio de configuração.
- EmergenteAutomação parcial com scripts ou ferramentas.
- DefinidoInfraestrutura como código implementada nas áreas principais.
- GeridoInfraestrutura totalmente automatizada, com ambientes consistentes e reproduzíveis.
- OtimizadoInfraestrutura com autorrecuperação, totalmente orquestrada e com escalonamento inteligente.
Consistência dos ambientes
Até que ponto os ambientes de desenvolvimento, staging e produção são consistentes.
- Ad HocOs ambientes diferem bastante; os problemas são muitas vezes específicos de um ambiente.
- EmergenteAlguma padronização, mas persistem inconsistências.
- DefinidoAmbientes maioritariamente alinhados, com comportamento previsível.
- GeridoAmbientes muito consistentes, geridos através de automação.
- OtimizadoAmbientes totalmente reproduzíveis, em contentores e estáveis em todo o lado.
Fiabilidade da plataforma
Disponibilidade, resiliência e tolerância a falhas do sistema.
- Ad HocInterrupções frequentes e práticas de fiabilidade limitadas.
- EmergenteA fiabilidade melhora ligeiramente, mas os problemas persistem.
- DefinidoFiabilidade aceitável, com melhorias em curso.
- GeridoElevada fiabilidade, com medidas preventivas sólidas.
- OtimizadoResiliência excecional, com recuperação automatizada e arquiteturas tolerantes a falhas.
Quando utilizar essa avaliação de saúde
- Para estabelecer uma base de referência das capacidades de DevOps e entrega contínua da sua equipa.
- No planeamento de engenharia, para decidir se a próxima prioridade é a automação, a fiabilidade ou a segurança.
- Para acompanhar a evolução da maturidade DevOps ao longo do tempo, entre squads ou em toda a organização.
- Quando está a criar ou a escalar práticas de engenharia de plataforma e SRE.
- Durante uma transformação DevOps, para dar às equipas um roteiro de melhoria comum.
Dicas e truques
- Peça a engenheiros, SREs e stakeholders de produto que avaliem individualmente, para que surjam diferentes visões da maturidade.
- Comece pelas dimensões com maior dispersão de pontuações. Muitas vezes apontam para estrangulamentos que ninguém identificou.
- Para cada dimensão com pontuação baixa, combinem um passo rumo ao nível seguinte. Não tentem chegar a Otimizado em tudo de uma vez.
- Repita a avaliação todos os trimestres para que os pequenos progressos fiquem visíveis.
- Leiam juntos as descrições dos níveis antes de discutir as pontuações, para que todos concordem sobre o que é um bom resultado.