Considerações de DevOps
Este artigo fornece considerações e recomendações para DevOps em zonas de aterrissagem do Azure.
O que é DevOps
O DevOps é a união de pessoas, processos e tecnologias que fornece valor contínuo para o desenvolvimento e as operações. A abordagem de DevOps incentiva a colaboração em equipe que cria processos reproduzíveis para ajudar as organizações a operar com eficiência e em escala.
No contexto das zonas de aterrissagem do Azure, o DevOps se torna a estrutura que orienta sua equipe (ou equipes) responsável por todo o gerenciamento do ciclo de vida das zonas de aterrissagem do Azure em áreas como:
- Como organizar e definir limites com outras equipes para alcançar o equilíbrio apropriado entre autonomia e governança
- Como evoluir continuamente o design da arquitetura da zona de aterrissagem do Azure (Lei de Conway)
- Como planejar, priorizar e iterar a implementação da arquitetura projetada
- Como implementar o controle de versão, a integração contínua e a implantação contínua para o código da zona de aterrissagem do Azure
- Como operar e responder a incidentes para sistemas e plataformas de sua propriedade
- O nível de automação que você aplica ao provisionamento e à autorrecuperação da zona de aterrissagem do Azure
- Como colaborar com outras equipes na sua organização de maneira ágil e orientada a resultados
- Como criar uma cultura generativa de segurança, qualidade, centrada no usuário e de aprendizado contínuo
As decisões tomadas ao analisar os modelos operacionais de nuvem podem influenciar como você usa a estrutura de DevOps.
Considerações sobre design de DevOps
Defina sua estrutura de DevOps ou alinhe-a com o DevOps e a estratégia de adoção da nuvem da sua organização. Inclua a definição de DevOps, bem como os princípios e as práticas que a sua equipe precisa seguir. Conecte sua estratégia de DevOps à sua estratégia de negócios.
Estabeleça métricas que permitam que a sua equipe aprimore o desempenho do DevOps. As equipes de alto desempenho usam uma hipótese para testar as ideias, medi-las para ver como a hipótese funciona e, em seguida, fazer alterações conforme necessário. A intenção final do DevOps é aprimorar aspectos como frequência de implantação, tempo médio de aplicação de uma alteração ou tempo de restauração de um serviço degradado. Você precisa projetar todas essas métricas para, em última análise, afetar o desempenho geral dos negócios.
Determine as práticas de DevOps que a sua equipe deve implementar primeiro com base nas habilidades atuais e crie um roteiro para aplicar incrementalmente novas práticas que ajudem sua equipe a aprimorar as métricas de DevOps. Investir em recursos de engenharia é essencial.
Determine a cadeia de ferramentas de DevOps que a sua equipe deve usar para implementar as práticas de DevOps. Certifique-se de que as ferramentas sejam consistentes com sua estratégia geral de DevOps para evitar cenários de ecossistemas de DevOps heterogêneos aumentando a complexidade das implantações de zona de aterrissagem ou carga de trabalho do Azure.
Avalie o efeito que as suas práticas de DevOps e as ferramentas de DevOps implementadas têm no design das zonas de destino do Azure.
Crie um plano de preparação para aumentar continuamente as habilidades da sua equipe. A aplicação ampla de um modelo de DevOps não estabelece instantaneamente equipes de DevOps capacitadas.
Determine a topologia de equipe que melhor se alinha à estratégia de DevOps e ao modelo operacional de nuvem da sua organização e estabeleça limites, responsabilidades e dependências bem definidas entre as equipes.
Determine como a equipe responsável pelas zonas de destino do Azure deve colaborar com outras equipes na sua organização para capturar novos requisitos da zona de destino do Azure a fim de atualizar o design e a implementação, resolver incidentes, minimizar dependências e alinhar-se às prioridades de negócios.
Recomendações de DevOps
As seções a seguir contêm recomendações para ajudar você a implementar a estrutura de DevOps na sua organização.
Definir sua estrutura de DevOps
Para estabelecer sua estrutura de DevOps, considere o uso das estruturas que já estão disponíveis para começar com um conjunto de práticas comprovadas predefinidas:
O Centro de Recursos do Microsoft DevOps fornece um conjunto avançado de definições, práticas e funcionalidades que você pode adaptar ao gerenciamento do ciclo de vida da zona de destino do Azure, incluindo:
O Microsoft DevOps Dojo estabelece uma taxonomia de DevOps baseada em quatro pilares fundamentais e oito funcionalidades:
Definir práticas de DevOps para o gerenciamento de zonas de aterrissagem do Azure
Considere as seguintes práticas de DevOps para suas zonas de aterrissagem do Azure:
- Revise como gerenciar o ciclo de vida de desenvolvimento das zonas de aterrissagem do Azure como código.
- Revise as considerações sobre segurança para zonas de destino do Azure no espaço de DevOps.
Planejar seu percurso de implementação do DevOps
Defina e alinhe seu percurso de implementação do DevOps com o plano de adoção da nuvem da sua organização.
- Determine onde sua equipe está hoje nas seguintes áreas:
- Práticas de DevOps que a sua equipe adotou para o gerenciamento das zonas de destino do Azure.
- Use ferramentas como a Avaliação de Capacidade de DevOps para avaliar o estado atual do status de DevOps da sua equipe.
- Estrutura da equipe atual, incluindo funções e responsabilidades e funções de nuvem de propriedade.
- As habilidades técnicas que a equipe tem.
- O modelo de operações de nuvem que a equipe segue no momento.
- Práticas de DevOps que a sua equipe adotou para o gerenciamento das zonas de destino do Azure.
- Use o plano de adoção da nuvem da sua organização para definir um modelo desejado para sua equipe.
- Estabeleça um roteiro iterativo para implementar o modelo desejado em um modo iterativo e incremental que se alinhe à linha do tempo de transformação da sua organização.
Implementar as métricas de DevOps desejadas
Identifique as métricas que você usará para medir o desempenho de DevOps da sua equipe. Use métricas para promover os hábitos desejados na sua equipe que se relacionam aos resultados de negócios. Estabeleça métricas para permitir que a sua equipe meça o impacto sobre as atividades. Torne as principais métricas visíveis para todos, pois a transparência promove a confiança e impulsiona o alinhamento com os objetivos organizacionais.
Entre os exemplos de métricas que medem o desempenho de DevOps para aprimorar o impacto nos negócios estão:
Resultados dos negócios:
- Use os objetivos e os resultados principais como uma ferramenta para afastar suas equipes de uma mentalidade de "contribuição" e para uma mentalidade de "resultado". Por exemplo, você pode usar o número de cargas de trabalho que aprimoraram a classificação de conformidade em relação ao número de políticas implantadas no Azure.
- Satisfação do cliente ou do usuário final. Entre os exemplos estão o NPS (Net Promoter Score), as pesquisas e as entrevistas.
- Expansão dos negócios. Entre os exemplos estão o aumento da rentabilidade, o aumento da receita e as novas aquisições de fonte de receita.
- Métricas de colaboradores. Entre os exemplos estão o eNPS (Employee Net Promoter Score), a utilização, a retenção e a satisfação.
- Custos. Por exemplo, você pode usar a redução de custos.
Desempenho de entrega de software:
- Prazo de entrega de uma alteração: o tempo necessário para uma correção de bug, um novo recurso ou qualquer outra alteração para passar da ideia à implantação para a produção.
- Frequência de implantação: as implantações por dia de alterações de código em produção.
- Tempo médio de restauração: o tempo necessário para restaurar o serviço em produção após um incidente.
- Percentual de falha de alteração: o percentual de alterações em produção (como alterações de configuração) que levam a uma falha.
Qualidade:
- Taxa de escape de defeitos: o número de defeitos identificados pelos usuários finais.
- Trabalho não planejado ou retrabalho: o percentual de tempo gasto em trabalho não planejado ou retrabalho.
- Bugs ativos: o número de bugs que ainda não foram corrigidos.
- Integridade do código: o percentual de código que não passou pelo teste de unidade.
Definir seu ecossistema de tecnologias de DevOps
A cadeia de ferramentas de DevOps que você escolhe para gerenciar o ciclo de vida das zonas de destino do Azure afeta:
- Suas estratégias para implementar princípios e práticas de DevOps
- Considerações sobre segurança para o ciclo de vida de DevOps
- O design de arquitetura geral do gerenciamento do ciclo de vida das zonas de destino do Azure
Use a estrutura de DevOps que você definiu anteriormente para identificar as ferramentas que serão usadas para cada um dos processos de DevOps. Escolha as tecnologias de DevOps mais adequadas às necessidades das suas equipes, mas encontre um equilíbrio que permita alcançar a padronização em toda a sua organização, mas evite muita complexidade ou heterogeneidade nos ecossistemas de DevOps.
Entre os exemplos de tecnologias de DevOps em diferentes fases de DevOps estão:
- Planejamento: Atlassian Jira, Atlassian Trello, Azure Boards, GitHub
- Integração contínua (CI) e testes: Atlassian Bitbucket, Azure Repos, GitHub Repos, npm, NuGet, Selenium, SmartBear Cucumber, SonarSource SonarQube, Zed Attack Proxy
- Entrega contínua (CD): Atlassian Bamboo, Azure Pipelines, GitHub Actions, Jenkins, Octopus Deploy, Perforce Puppet, RedHat Ansible
- Infraestrutura como código: Bicep, Pulumi, Terraform
- Bootstrapping: ArgoCD GitOps, Flux GitOps, Progress Chef, PowerShell Desired State Configuration (DSC)
- Operações: Azure Automation, Azure Monitor, CISCO Splunk, Grafana, Microsoft Power BI
- Colaboração e feedback: Atlassian Confluence, Azure DevOps Wikis, GitHub Discussions, GitHub Wikis, Microsoft Teams, Slack, Stack Overflow
O seguinte diagrama mostra um exemplo de estrutura de DevOps com uma seleção de cadeia de ferramentas do Azure DevOps:
O seguinte diagrama mostra um exemplo de estrutura de DevOps com uma seleção de cadeia de ferramentas do Azure DevOps e do GitHub: