Topologias das equipes de DevOps
A distribuição de funções, responsabilidades e confiança entre as equipes de TI e as equipes de aplicativos é fundamental para a transformação operacional envolvida na adoção da nuvem em escala.
As equipes de TI se esforçam para manter o controle. Os proprietários de aplicativos procuram maximizar a agilidade. O equilíbrio que você estabelece entre esses dois objetivos influencia muito o sucesso do seu modelo operacional de nuvem.
De acordo com a lei de Conway, as equipes produzem arquiteturas com base em sua estrutura de comunicação. Entender esse princípio é fundamental enquanto você trabalha para alcançar o equilíbrio necessário entre autonomia e controle. Qualquer organização que projete um sistema (definido amplamente) produzirá uma estrutura de design que é uma cópia da estrutura de comunicação dessa organização.
Do ponto de vista do DevOps, as organizações devem otimizar para uma resposta rápida às necessidades dos clientes. As equipas que possuem, projetam e implementam as suas aplicações e sistemas encontram o seu mais alto nível de autonomia em arquiteturas com as seguintes características:
- Arquitetura evolutiva que suporta mudanças constantes
- Capacidade de implantação
- Capacidade de teste
A solução de Conway é ultrapassar a Lei de Conway. Se a sua organização segue uma determinada estrutura para produzir serviços e produtos e está procurando otimizar, você precisa repensar sua estrutura organizacional. Evolua sua equipe e estrutura organizacional para alcançar a arquitetura desejada.
Esse princípio leva a topologias de equipe intencionalmente projetadas nas quais as equipes são responsáveis pelo end-to-end de quaisquer aplicativos, sistemas ou plataformas que possuem, a fim de alcançar a disciplina completa do DevOps.
A tabela a seguir fornece uma categorização simplificada dessas equipes.
Tipo de equipa | Definição |
---|---|
Equipes de carga de trabalho de aplicativos | Essas equipes criam aplicativos que geram resultados comerciais diretos para um segmento do domínio de negócios. No contexto das Zonas de Aterrissagem do Azure, essas equipes são responsáveis pelo ciclo de vida de ponta a ponta das cargas de trabalho de aplicativos. |
Equipas da plataforma | Essas equipes criam plataformas internas atraentes para acelerar a entrega e reduzir a carga cognitiva das equipes de carga de trabalho de aplicativos. No contexto das Zonas de Aterrissagem do Azure, essas equipes são responsáveis pelo ciclo de vida de ponta a ponta da Zona de Pouso do Azure. |
Habilitando equipas | Essas equipes ajudam a superar lacunas de habilidades, ajudando outras equipes com recursos especializados, como DevOps. |
Considerações de design
Estabeleça uma equipe de plataforma multifuncional para projetar, criar, provisionar, gerenciar e manter seu ciclo de vida da Zona de Pouso do Azure. Essa equipe pode incluir membros de sua equipe central de TI, segurança, conformidade e unidades de negócios para garantir que um amplo espectro de sua empresa seja representado. Certifique-se de evitar antipadrões.
Considere estabelecer uma equipe habilitadora que possa fornecer funções de DevOps para dar suporte a aplicativos e plataformas que não tenham recursos de DevOps existentes, ou um business case para estabelecer um (por exemplo, aplicativos herdados com recursos mínimos de desenvolvimento).
Não restrinja suas equipes de carga de trabalho de aplicativos a artefatos centrais, pois isso pode prejudicar sua agilidade. Você pode usar a governança orientada por políticas e o controle de acesso baseado em função do Azure (Azure RBAC) para impor configurações de linha de base consistentes e garantir que as equipes de aplicativos (unidade de negócios) sejam flexíveis o suficiente para inovar, mas ainda capazes de extrair de um conjunto predefinido de modelos.
Não force suas equipes de aplicativos a usar um processo central ou um pipeline de provisionamento para a instanciação ou o gerenciamento de recursos do aplicativo. As equipes existentes que já dependem de um pipeline de DevOps para entrega de aplicativos ainda podem usar suas ferramentas atuais. Lembre-se, você pode usar Política do Azure ajuda a impor padrões organizacionais e a avaliar a conformidade em escala e abordar considerações de segurança para seus processos de DevOps.
A aplicação geral de um modelo de DevOps não estabelece instantaneamente equipes de DevOps capazes.
O investimento em capacidades e recursos de engenharia é fundamental.
As equipes de aplicativos para alguns aplicativos herdados podem não ter os recursos de engenharia necessários para se alinhar com uma estratégia de DevOps.
Recomendações de design
As seções a seguir contêm recomendações de design para guiá-lo enquanto você projeta suas topologias de equipe.
Alinhe topologias de equipe com seu modelo operacional de nuvem
Certifique-se de alinhar as topologias da sua equipe com o modelo operacional de nuvem desejado.
Estabeleça um processo central para avaliações de aptidão operacional para que você entenda completamente os problemas que podem resultar das estruturas da sua equipe.
Defina funções para sua equipe de plataforma
A lista a seguir fornece um conjunto recomendado de funções para a equipe de plataforma responsável por suas Zonas de Aterrissagem do Azure:
- Governança da arquitetura
- Provisionamento de assinatura e delegação das políticas de gerenciamento de rede, identidade e acesso necessárias
- Gestão e monitorização da plataforma (holística)
- Gestão de custos (holística)
- Plataforma como código (gerenciamento de modelos, scripts e outros ativos)
- Operações gerais no Microsoft Azure dentro do locatário do Microsoft Entra (gerenciamento de entidades de serviço, registro da API do Microsoft Graph e definições de função)
- Azure RBAC (holístico)
- Gestão de chaves para serviços centrais (protocolo simples de transferência de correio e controladores de domínio)
- Gestão e aplicação de políticas (holística)
- Monitorização e auditorias de segurança (holísticas)
- Gestão de redes (holística)
Definir funções para suas equipes de carga de trabalho de aplicativos
A lista a seguir fornece um conjunto recomendado de funções para suas equipes de aplicativos responsáveis por cargas de trabalho de aplicativos:
- Criação e gestão de recursos de aplicações através de um modelo DevOps
- Gestão de bases de dados
- Migração ou transformação de aplicativos
- Gerenciamento e monitoramento de aplicativos (recursos de aplicativos)
- Azure RBAC (recursos de aplicativo)
- Monitoramento e auditorias de segurança (recursos de aplicativos)
- Gestão de Segredos e Chaves (chaves de aplicação)
- Gerenciamento de custos (recursos de aplicativos)
- Gerenciamento de rede (recursos de aplicativos)
Definir funções para habilitar equipes
A lista a seguir fornece um conjunto recomendado de funções para uma equipe de habilitação responsável por ajudar suas outras equipes:
- Definição de orientação horizontal (função transversal) e capacidades para ajudar a adquirir a experiência certa em toda a sua organização, garantindo o alinhamento com o modelo operacional de nuvem global pretendido (como DevOps).
- Apoio, formação e coaching para que outras equipas atinjam o nível de especialização necessário
- Estabelecimento de um conjunto comum de modelos e bibliotecas reutilizáveis para equipas de aplicações ou plataformas, promovendo o InnerSourcing, como módulos verificados do Azure .
Definir modos de interação entre equipas
Os objetivos das interações entre as suas equipas são:
- Alcance a autonomia
- Desbloqueie dependências
- Minimize o desperdício de tempo
- Evitar estrangulamentos
Topologias de Equipas descreve três modos de interação da equipa:
Modo de interação | Descrição |
---|---|
Colaboração | As equipas trabalham em estreita colaboração. |
X-as-a-Service | As equipes consomem ou fornecem algo a outras equipes com o mínimo de colaboração, semelhante às interações de fornecedores de terceiros. |
Facilitar a | As equipas ajudam ou são ajudadas por outra equipa a remover impedimentos. |