Pesquisa de site

Modelo de maturidade DevOps: 5 níveis de maturidade explicados


Embora os benefícios da adoção do DevOps sejam óbvios (tempo de lançamento no mercado mais rápido, menos bugs na produção, melhor qualidade do código etc.), a transição do desenvolvimento de software tradicional raramente é tranquila e livre de contratempos.

Se você está lutando para adotar ou aproveitar ao máximo o DevOps, seu primeiro passo deve ser avaliar os processos atuais de entrega de software em relação a um modelo de maturidade do DevOps.

Este artigo é uma introdução aos modelos de maturidade DevOps e à forma como essas estruturas permitem que as empresas tomem decisões informadas ao adotar ou atualizar processos DevOps.

Qual é o modelo de maturidade DevOps?

O modelo de maturidade DevOps é uma estrutura que descreve os estágios gerais pelos quais uma organização passa ao adotar os princípios e práticas de DevOps. Esses modelos ajudam a determinar até que ponto as organizações estão em sua jornada de DevOps e quais etapas devem seguir para alcançar níveis mais elevados de maturidade de DevOps.

Os modelos de maturidade avaliam vários aspectos do seu DevOps (graus de silos, velocidade e qualidade dos lançamentos, aderência aos princípios, níveis de colaboração, uso de automação, pilhas de ferramentas, etc.). Esta análise ajuda as empresas a:

  • Avalie e compare os recursos e práticas atuais de DevOps.
  • Identifique o nível de maturidade desejado.
  • Priorize áreas de melhoria.
  • Faça um roteiro para alcançar níveis mais elevados de maturidade.
  • Aprenda sobre as melhores práticas de DevOps, medidas de segurança e métricas relevantes.

Depois de conhecer sua posição em um modelo de maturidade, a ideia é fazer alterações em sua TI até atingir um estágio superior. O modelo de maturidade DevOps oferece orientação em cada etapa, explicando como “subir” e chegar à próxima fase.

Lembre-se de que as empresas amadurecem em velocidades diferentes, mesmo que utilizem a mesma estrutura. O ritmo da mudança não é vital - é muito mais importante que você:

  • Reconheça as áreas em que sua equipe está falhando e comece a reforçar essas fraquezas.
  • Reforce os pontos fortes da sua equipe e desenvolva-os para melhorar os procedimentos de DevOps.

Nosso CEO escreveu recentemente sobre modelos de maturidade em nuvem que orientam as empresas através dos cinco estágios de adoção da computação em nuvem.

O que constitui um modelo de maturidade DevOps?

Aqui está o que você deve esperar encontrar em qualquer modelo de maturidade DevOps de nível superior:

  • Critérios de avaliação. Um conjunto de padrões com base nos quais você avalia a maturidade das práticas de DevOps.
  • Níveis de maturidade. Os diferentes estágios de adoção do DevOps organizados em ordem sequencial. A maioria dos modelos tem cinco níveis de maturidade diferentes, embora ocasionalmente você encontre estruturas com um ou dois estágios extras.
  • Processos e práticas de DevOps. Uma análise das técnicas que suportam DevOps, acompanhada de sua colocação no modelo. Espere guias para gerenciamento de versões, automação de tarefas, práticas de segurança, CI/CD, infraestrutura como código (IaC), etc.
  • Métricas relevantes. Uma lista de indicadores-chave de desempenho (KPIs) e métricas para medir o estado de seu DevOps (por exemplo, frequência de implantação, tempo médio de recuperação, taxa de falha de alteração, etc.).
  • Guias culturais. Diretrizes para avaliação da cultura da empresa e alinhamento aos princípios do DevOps. As inclusões usuais são dicas para melhorar a comunicação, feedback e colaboração.
  • Ferramentas e tecnologia essenciais. A maioria dos modelos de ponta tem uma lista de ferramentas e tecnologias apropriadas que suportam iniciativas de DevOps. Conte com sistemas de controle de versão, ferramentas de CI/CD, plataformas de automação e ferramentas de conteinerização atualizados.
  • Funções e responsabilidades. Um esboço de quem é responsável pelo quê em uma equipe de DevOps (propriedade de processos, membros da equipe para recuperação de desastres, tarefas de controle de qualidade, projeto de pipelines de CI/CD, resposta a ameaças, garantia alta disponibilidade, etc.).

Nosso artigo sobre funções e responsabilidades do DevOps oferece uma visão aprofundada de todas as funções essenciais de uma equipe DevOps de alto desempenho.

5 estágios de transformação do modelo de maturidade DevOps

Diferentes modelos de maturidade têm estágios e critérios ligeiramente diferentes para cada fase, dependendo do tamanho da empresa, do setor e dos objetivos. No entanto, a maioria das estruturas conduz os usuários por uma progressão semelhante - vejamos os estágios mais comuns de maturidade do DevOps.

Estágio 1: Inicial (ou Ad Hoc)

Esta etapa é o ponto de partida da jornada DevOps. Práticas do tipo DevOps estão totalmente ausentes ou são tão desarticuladas que as partes interessadas não têm ideia sobre seu uso.

As organizações neste estágio sofrem com uma série de problemas de desenvolvimento de software (colaboração limitada entre equipes, muitas tarefas manuais, lançamentos com erros, processos de aprovação demorados, etc.).

Aqui estão as principais características das organizações no Estágio 1 de maturidade DevOps:

  • Desenvolvimento, operações, segurança e proprietários de produtos operam em silos, e cada equipe tem incentivos e prioridades diferentes.
  • Os especialistas em operações esperam que os desenvolvedores entreguem os aplicativos junto com os manuais de implantação.
  • O desenvolvimento de software depende de uma abordagem em cascata da velha escola.
  • A maioria (se não todas) das etapas de construção são manuais.
  • Os ciclos de lançamento concentram-se em marcos e não no feedback do usuário ou nas mudanças do mercado.
  • As equipes gastam mais tempo e esforço apagando incêndios do que agregando valor ao produto.
  • A equipe cria e atualiza a infraestrutura manualmente, o que consome tempo e está sujeito a erros.
  • Cada servidor (físico ou virtual) requer atenção individual.
  • Os testadores trabalham manual e individualmente, o que transforma os testes em um gargalo considerável.
  • As verificações de segurança são mínimas e ocorrem apenas alguns dias antes do lançamento de uma nova versão.
  • A empresa normalmente fica sabendo de uma interrupção por meio dos usuários, em vez de receber alertas internos.

A chave para sair desse estágio é educar as equipes sobre as práticas de DevOps e eliminar sua resistência à mudança. Considere formar um grupo de trabalho temporário para orientar as práticas de entrega de software para fora dos silos e começar a fazer mudanças positivas nos fluxos de trabalho (envolver as operações mais cedo no SDLC, incentivar o uso de ferramentas de gerenciamento de configuração, adicionar testes automatizados, etc.).

Etapa 2: DevOps em “bolsos”

As empresas nesta fase estabeleceram algumas práticas de DevOps e começaram a enfatizar a colaboração e a automação entre equipes. Os fluxos de trabalho estão se tornando mais simplificados, mas a maioria dos processos carece de definições e diretrizes claras.

Aqui estão as principais características das organizações no Estágio 2:

  • Embora os desenvolvedores e as operações não trabalhem juntos em tempo integral, as duas equipes colaboram em projetos de pequena escala.
  • As equipes tendem a fornecer grandes recursos que são difíceis de gerenciar e testar.
  • As práticas ágeis durante a entrega de software permitem que as equipes se concentrem mais no valor do negócio e do usuário durante o planejamento do projeto.
  • As equipes usam o controle de versão para gerenciar ambientes e suas configurações.
  • Os desenvolvedores lutam para dividir serviços maiores em microsserviços.
  • As mudanças no produto estão se tornando menos surpreendentes para todas as equipes envolvidas.
  • As equipes contam com a automação para reduzir o risco e o estresse dos lançamentos, mas muitos membros da equipe seguem o mantra “automação pela automação”.
  • A equipe de segurança ainda trabalha de forma independente, mas os testes não são mais mínimos ou secundários, portanto, os testes unitários, de integração e de ponta a ponta ocorrem mais cedo no processo de desenvolvimento.
  • As empresas contam com o monitoramento do site para receber alertas sobre interrupções assim que impactam o usuário.
  • Os membros da equipe de operações devem intervir manualmente quando algo dá errado na produção.

A chave para sair dessa fase é focar mais na automação e na consistência. As bases certas estão aí, mas a falta de repetibilidade está atrasando seu DevOps.

Estágio 3: definido, automatizado e mais consistente

Este estágio do modelo de maturidade DevOps requer processos bem definidos e padronizados entre as equipes de Dev e Ops. Além disso, as equipes se concentram em:

  • Usando a automação para eliminar tarefas manuais repetitivas, propensas a erros e demoradas.
  • Otimizando entrega, implantação e integração contínuas.
  • Nutrir uma cultura de colaboração e feedback.

Aqui estão as principais características das organizações no Estágio 3 de maturidade DevOps:

  • A equipe de operações e a engenharia conversam regularmente sobre os próximos lançamentos de código e correções de bugs.
  • Os membros da equipe de segurança participam de reuniões bem antes das implantações e participam de conversas sobre design e arquitetura.
  • As equipes se concentram em implantações frequentes com mudanças pequenas e incrementais.
  • Os lançamentos ainda são um evento importante, então a equipe normalmente agrupa grupos de recursos não relacionados em grandes projetos.
  • Os conceitos de produtos mínimos viáveis e de dívida técnica ainda são estranhos.
  • As implantações nunca pegam a equipe de operações de surpresa, pois eles trabalham nas alterações de configuração enquanto os engenheiros desenvolvem o recurso.
  • Uma série de processos ocorre automaticamente para garantir a repetibilidade e a padronização (por exemplo, alterações no banco de dados, testes de integração, monitoramento, implantações que não sejam de produção, etc.).
  • Os desenvolvedores aproveitam ao máximo os recursos de computação em nuvem de autoatendimento.
  • As equipes integram verificações de segurança em todo o pipeline de DevOps, fazendo um esforço consciente para mudar os testes que saem da implantação.
  • A equipe conta com documentação clara e notas de lançamento.

A chave para passar para a próxima fase é melhorar os processos atuais e abandonar a medição de benchmarks internos em favor da experiência do utilizador final.

Estágio 4: DevOps altamente otimizado

As empresas nesta fase concentram-se em medir o sucesso de acordo com a experiência do utilizador e os objectivos de negócio.

Aqui estão as principais características de estar no Estágio 4 do modelo de maturidade DevOps:

  • As equipes de operações e desenvolvimento trabalham em estreita colaboração com as equipes de gerenciamento de projetos e segurança ao planejar melhorias no produto.
  • A equipe de desenvolvedores e operações adota o desbaste orientado ao produto.
  • O processo de implantação é quase totalmente automatizado, com apenas uma ou duas intervenções manuais.
  • Os lançamentos de código não são eventos distintos, mas uma série de atualizações de software contínuas e incrementais.
  • O desenvolvimento e as operações funcionam no mesmo ambiente técnico, portanto, os desenvolvedores sempre consideram os aspectos dos lançamentos relacionados às operações (e vice-versa).
  • O sistema de integração contínua funciona bem em mais de 90% do tempo.
  • O DevOps se alinha e oferece suporte ao plano estratégico de TI mais amplo da empresa.
  • Os processos ágeis amadurecem em práticas enxutas (post-mortems irrepreensíveis, exercícios de jogo, mapeamento de fluxo de valor, etc.).
  • Interrupções mínimas na experiência do usuário final.
  • A equipe usa MVPs e dívidas tecnológicas como estratégias para acelerar os lançamentos.
  • A empresa se sente confortável com a engenharia do caos e os testes de penetração.
  • A equipe depende de testes de absorção para antecipar o desempenho do produto antes da implantação.
  • As equipes analisam diversas métricas para quantificar o impacto dos lançamentos no desempenho geral.
  • Os sistemas escalam automaticamente para se ajustar às demandas atuais e evitar problemas como latência da rede ou falha de infraestrutura.
  • As verificações de segurança são um recurso integrado ao fluxo de trabalho de desenvolvimento e há um amplo conjunto de testes automatizados de alta qualidade.
  • A equipe depende do monitoramento contínuo para rastrear ativamente os problemas e identificar as causas raízes.
>

Se você está neste ponto, sua empresa está fazendo uso total do DevOps. A única coisa que mantém você fora do estágio final é incutir uma cultura de uso contínuo de insights baseados em dados para otimizar processos.

Estágio 5: DevOps totalmente maduro

As organizações neste estágio desfrutam do mais alto nível de maturidade de DevOps, e a equipe otimiza continuamente o pipeline por meio de insights baseados em dados.

Além das práticas do Estágio 4, as empresas no Estágio 5 de maturidade DevOps também possuem as seguintes características:

  • As alterações de código passam pelo pipeline e terminam na produção sem nenhuma intervenção humana.
  • A equipe implanta várias vezes ao dia com certeza e risco mínimo.
  • Código inseguro ou não compatível nunca chega à produção.
  • Cada unidade de negócios é uma equipe completa e autossuficiente de especialistas em todos os domínios de tecnologia e processos necessários.
  • Tempo de atividade máximo e sem interrupções na experiência do cliente.
  • As ideias vão para produção em horas ou dias.
  • O uso de dados em tempo real permite que as equipes tomem decisões rápidas e informadas.
  • Altos níveis de colaboração entre desenvolvedores, operações e segurança levam ao DevSecOps.
  • A empresa incentiva a inovação e a experimentação.

Não há como passar do estágio 5, mas as empresas que não conseguem focar em otimizações contínuas correm o risco de retroceder um ou dois passos no modelo de maturidade DevOps.

Você pode contratar um consultor terceirizado para avaliar sua posição no modelo de maturidade DevOps ou confiar na autoavaliação. Se você preferir a abordagem interna, os modelos de maturidade da Atlassian, Atos e Apexon são um ótimo começo.

Benefícios da maturidade DevOps

Avaliar sua posição em um modelo de maturidade DevOps leva a uma série de benefícios comerciais. Essas estruturas permitem que você:

  • Determine o quão bem sua equipe está usando os princípios do DevOps.
  • Identifique áreas de melhoria e tome decisões informadas sobre como levar seu DevOps para o próximo nível.
  • Crie estratégias de progressão mais focadas e eficazes, livres de objetivos de baixo valor.
  • Acompanhe o progresso do DevOps e aloque recursos de maneira mais eficaz.
  • Obtenha insights sobre as melhores práticas relacionadas à segurança do DevOps, ciclos de lançamento, testes, cultura da equipe, gerenciamento de equipe, etc.
  • Conheça as melhores ferramentas DevOps do mercado.
  • Acompanhe as últimas tendências e casos de uso de DevOps.
  • Tenha uma noção melhor dos padrões do setor e veja como suas operações se comparam às de seus pares e concorrentes.

Investir tempo e dinheiro na evolução do modelo de maturidade DevOps também é altamente benéfico. Cada estágio subsequente leva a um tempo de lançamento no mercado mais rápido, maior confiabilidade, custos de TI reduzidos e equipes com melhor desempenho.

Aprenda a diferença entre SRE e DevOps, duas práticas de TI intimamente relacionadas que aceleram o desenvolvimento e ajudam as empresas a criar software de alta qualidade.

Como medir a maturidade do DevOps?

Aqui estão as métricas essenciais para medir a maturidade do DevOps:

  • Time-to-market (o tempo que uma equipe leva para ir desde a idealização até o lançamento).
  • Lead time (o tempo entre a confirmação do código e a implantação).
  • Frequência de implantação (com que frequência a equipe faz implantações em um determinado período).
  • Qualidade do código (várias métricas que avaliam o estado do código, como complexidade, cobertura e feedback de revisão).
  • Taxa de sucesso de implantação de código (porcentagem de implantações bem-sucedidas).
  • Taxa de falhas de alterações (porcentagem de implantações que levam a falhas).
  • Taxa de reversão (porcentagem de implantações que a equipe reverte).
  • Orçamento de erros (a taxa aceitável de erros e falhas na produção).
  • Disponibilidade (porcentagem de tempo em que o sistema está totalmente operacional e disponível para os usuários finais).
  • Escalabilidade (capacidade de um sistema de lidar com uma carga maior sem problemas de desempenho).
  • Tempo em estágio (o tempo médio que uma equipe leva para concluir cada estágio do ciclo de vida de desenvolvimento de software).
  • Tempo de ciclo de feedback da revisão de código (quanto tempo leva para obter feedback e implementar alterações em resposta às revisões de código).
  • MTTR (Tempo Médio de Recuperação, o tempo médio que uma equipe leva para se recuperar de uma falha).
  • MTTD (Mean Time to Detect, o tempo médio necessário para detectar um problema).
  • MTTA (Tempo Médio para Reconhecer, o tempo médio que uma equipe leva para reconhecer e começar a trabalhar em um problema).

Existem também algumas métricas menos quantificáveis, incluindo:

  • Feedback e satisfação do usuário.
  • Níveis de colaboração entre diferentes equipas (nomeadamente desenvolvedores e ITOps, mas também segurança, compliance, gestão de projetos, etc.).
  • Comunicação entre equipes e executivos de TI.
  • O estado da documentação relacionada ao DevOps.

Saiba mais sobre métricas de DevOps e veja como extrair informações valiosas desses KPIs.

Aproveite ao máximo sua iniciativa DevOps

Embora um modelo de maturidade DevOps esteja longe de ser um sucesso garantido, essas estruturas ajudam a mapear sua jornada de adoção, evitar obstáculos comuns e orientar a tomada de decisões na direção certa. Você obtém uma visão geral clara de onde seu DevOps está e onde ele está falhando, o que permite corrigir erros e maximizar seu ROI.

Artigos relacionados