À medida que as empresas adotam o nativo da nuvem e tudo como código, a jornada do código à produção tornou-se um aspecto crítico da entrega de valor aos clientes. Esse processo, muitas vezes chamado de “caminho para implantação”, abrange uma série de etapas e decisões complexas que podem impactar significativamente a capacidade de uma organização de fornecer software de maneira eficiente, confiável e em escala.
A primeira postagem desta série navega pelas complexidades e revela as estratégias e o modo de estado-alvo para alcançar um caminho de implantação contínuo e eficaz.
Esta postagem expande o tópico e fornece um modelo de maturidade e blocos de construção que ajudam as empresas a acelerar o ciclo de vida da cadeia de fornecimento de software no cenário em constante evolução do desenvolvimento de software empresarial nativo da nuvem.
Caminho para implantar o roteiro
Para concretizar um caminho acelerado de implantação, há diversas partes móveis e partes interessadas que devem se unir. Recomendamos um roteiro de implementação de 4 etapas, conforme mostrado na figura abaixo.
Etapa 1: Automação de desenvolvimento
A automação de infraestrutura (IaC) e a automação de pipeline são independentes da equipe de desenvolvimento, o que torna a automação um ótimo ponto de partida. Nesta fase, o foco é construir um catálogo empresarial de integração contínua, implantação e testes (CI/CD/CT) e padrões de operações com integrações de ferramentas necessárias para automatizar as principais atividades de desenvolvimento e teste. Dada a complexidade empresarial, a parte mais difícil deste estágio é a automação dos recursos de teste (em que a preparação de dados de teste e a execução de casos de teste em vários sistemas são, em sua maioria, semiautomáticas). O Global Cloud Capability Center (CCC), ou a equipe principal equivalente, desempenha um papel significativo na promoção de mudanças com equipes de aplicativos e plataformas.
Etapa 2: Institucionalizar modelo baseado em padrões
O CCC (ou seu equivalente) trabalha com o conselho de arquitetura para estabelecer um conjunto de padrões repetíveis (incluindo padrões atômicos que representam serviços de nuvem individuais, bem como padrões de aplicativos compostos compostos por vários serviços de nuvem). O processo de revisão da arquitetura (juntamente com outros processos de revisão relacionados) é modificado para institucionalizar representações de arquitetura centradas em padrões com um backlog estabelecido para diferentes grupos (como engenharia de plataforma e CCC) para construir esses padrões como código. Isso ajuda na adoção e aceleração. Com o tempo, os aplicativos representados aparecem como um conjunto de padrões que padroniza os modelos de desenvolvimento em todos os níveis. Além disso, equipes como continuidade de negócios, resiliência e segurança aproveitarão esses padrões (por exemplo, arquiteturas multirregionais altamente disponíveis) para reconhecer e acelerar as portas de aprovação com uma abordagem padronizada. A chave para este alinhamento é a cocriação destes padrões entre as organizações participantes.
Etapa 3: Autoatendimento e integração multifuncional
As empresas têm muitas organizações que desejam que os aplicativos em nuvem sigam suas orientações e práticas recomendadas. Esta fase concentra-se na integração de equipes multifuncionais (como segurança, conformidade e FinOps) por meio de automação, ferramentas, padrões codificados ou opções de autoatendimento. Isso se baseia nos estágios anteriores para enfatizar a participação significativa entre as equipes. Os principais aspectos desta etapa são:
Crie e alinhe padrões de alta disponibilidade com equipes de resiliência onde as revisões são aceleradas, demonstrando adesão a esses padrões. Codifique os requisitos de segurança e conformidade nos padrões e proteja-os na plataforma como um conjunto de políticas. Aborde a validação integrando ferramentas, como verificações de vulnerabilidades, ferramentas de verificação de políticas (como guarda de formação de nuvem para AWS) e segurança de contêiner com os pipelines seguindo os princípios de mudança para a esquerda. Recrute equipes de registros corporativos para estudar um conjunto de padrões de classificação e retenção de dados e recrute equipes de FinOps para avaliar a marcação apropriada e o cumprimento de cotas. Crie padrões de integração AuthN/AuthZ que abstraem nuances e padronizem a autenticação e autorização de aplicativos, dados e serviços. Automatize o firewall por meio da geração de arquivos de recursos da execução IaC e importe-os para sistemas de firewall conforme descrito aqui. Catálogo empresarial da Platform Engineering que oferece vários recursos de autoatendimento.
Estágio 4: Caminho automatizado para implantação
Esta fase centra-se na descentralização e dissociação de vários grupos empresariais, integrando-os simultaneamente através da automação e DevSecOps. Um exemplo é a automatização dos processos de gestão de alterações, incluindo a geração automatizada de notas de lançamento, onde o sistema constrói autonomamente listas de verificação abrangentes de revisão de alterações, agregando dados de vários sistemas interligados. Isso resulta em confiança, eficiência e precisão nas avaliações. Esta abordagem holística representa um salto significativo na eficiência operacional e na mitigação de riscos para a empresa.
Caminho para implantação: blocos de construção do modelo nativo da nuvem
Vamos explorar alguns casos de uso que mostram o caminho para implantar a aceleração.
Caso de uso 1: codificação IaC centrada na pessoa
A codificação IaC baseada em personalidades e padrões pode acelerar as fases de desenvolvimento e revisão. A figura abaixo representa diversas partes interessadas em uma empresa que têm diferentes preocupações e requisitos para cargas de trabalho nativas da nuvem.
Leva muito tempo de desenvolvimento para as equipes de produto codificarem manualmente cada uma dessas preocupações, sem mencionar o tempo que as partes interessadas levam para revisar manualmente cada área. Codificá-los em padrões discretos ou compostos reforçados fornece às equipes de produto o código e a aceleração Bootstrap corretos, criando a confiança das partes interessadas e a eficiência da revisão.
Caso de uso 2: validação de políticas e segurança Shift-left
Automatize a segurança, a conformidade e outras políticas para infraestrutura como parte do pipeline de CI/CD. Isso garante que a infraestrutura implantada estará alinhada às políticas empresariais mesmo antes de ser implantada. Existem várias abordagens fornecidas por provedores de nuvem e ferramentas de código aberto que podem fazer isso (incluindo Checkov, Cloud Formation Guard e cfn-nag). Normalmente, as equipes de segurança codificam regras de validação de políticas e as equipes de produtos integram a validação de políticas em pipelines de CI/CD/CT antes que a infraestrutura seja provisionada para o ambiente de nuvem.
Caso de uso 3: Coleta automatizada de evidências de conformidade para revisões
A plataforma multifuncional de nuvem e as equipes de segurança e conformidade criam automação que permite a coleta de evidências, acelerando as revisões de segurança e conformidade. Isso normalmente exigiria o aproveitamento de APIs de nuvem para consultar informações de recursos de nuvem implantados, bem como criar evidências e postura de conformidade. Esses recursos poderiam permitir que as equipes de produto executassem essa automação em um modelo de autoatendimento ou por meio de pipelines DevOps e identificassem a postura de conformidade, além de capturarem evidências de revisão automaticamente. O nível de maturidade aumenta quando a captura de evidências é executada automaticamente e a revisão ocorre em modo totalmente mãos-livres.
Caso de uso 4: Padrões integrados e kit de ferramentas de pipeline
Padrões compostos nativos da nuvem, como APIs AWS Active-Active Serverless, exigem que vários padrões distintos sejam reunidos. Esses padrões incluem:
Serviços em nuvem, como Route53, API Gateway, Lambda, Dynamo DB, IAM, CodeDeploy, CodeBuild, CodePipeline e CodeCommit. Requisitos não funcionais, como AuthN/AuthZ, implantação ativa-ativa multirregional, segurança em repouso e em trânsito, rastreamento, registro em log, monitoramento, painéis, alertas, automação de failover e verificações de integridade. Ferramentas empresariais integradas, incluindo qualidade de código, SAST, DAST, alertas, gerenciamento de testes, rastreamento e planejamento.
Uma solução de um clique permitiria que as equipes de produto selecionassem o padrão correto, o que criaria o código Bootstrap necessário que integra vários padrões codificados conforme descrito em casos de uso anteriores.
Caminhos para implantação: abordagem de entrega
Para que um modelo de entrega realize o caminho para implantação, o CCC (ou equivalente) deve funcionar com vários grupos organizacionais, conforme mostrado na figura abaixo.
O caminho para implantar o modelo de entrega compreenderia as seguintes etapas:
Defina todo o caminho para o processo de implantação através de um conjunto de fases do ciclo de vida do aplicativo, atividades, resultados e grupos dependentes envolvidos. Defina e organize vários esquadrões com foco em diferentes aspectos do caminho de implantação. Planeje um modelo flexível dentro das equipes para trazer grupos de apoio conforme necessário. Crie um backlog para cada uma das equipes do Cloud Capability Center e inicie o desenvolvimento de capacidades. Alinhe-se ao modelo de maturidade de 4 estágios para que as empresas possam acompanhar a maturidade. Estabeleça equipes de produto e partes interessadas relevantes como parte do refinamento e priorização do backlog. Garanta que a adoção da automação seja continuamente focada. O sucesso do caminho para implantação depende da construção da automação e de sua adoção. Crie gerenciamento central de conhecimento e gerenciamento de planejamento em torno do caminho para implantação. Torne mais fácil para as equipes de produto incorporar essas atividades em seus planos de entrega (com ferramentas de rastreamento de projetos e colaboração ágil, como Jira). Construa um sistema de medição para o caminho para implantar SLAs de fase e monitore continuamente a melhoria do SLA (como caminho para implantar recursos maduros ao longo de um período).
Ao considerar por que a transformação da nuvem pode não gerar valor total e ao identificar a aceleração do ciclo de vida do lançamento como um desafio importante, isso restringe o foco ao caminho para a implantação. O caminho para a implantação pode ser um veículo comum que facilita que vários grupos acelerem todo o ciclo de vida da cadeia de fornecimento de software, além da aceleração do ciclo de vida de desenvolvimento e teste que existe hoje. Um roteiro de 4 estágios foi definido, onde os estágios iniciais se concentram no DevSecOps e na adoção de padrões, e os estágios avançados amadurecem em direção à cultura de engenharia de produto. Recomenda-se que as equipes de produto colaborem com os grupos empresariais participantes de maneira descentralizada para aproveitar a automação e o autoatendimento. O modelo de maturidade incentiva as organizações a escalarem gradualmente, começando aos poucos, e nossa abordagem de entrega traz resultados previsíveis para essa jornada complexa.
Aprenda como acelerar a agilidade e o crescimento dos negócios