Automatize e faça a gestão das alterações

Last reviewed 2024-10-31 UTC

Este princípio no pilar de excelência operacional da Google Cloud estrutura bem arquitetada fornece recomendações para ajudar a automatizar e gerir as alterações para as suas cargas de trabalho na nuvem. Envolve a implementação de infraestrutura como código (IaC), o estabelecimento de procedimentos operacionais padrão, a implementação de um processo de gestão de alterações estruturado e a utilização da automatização e da orquestração.

Vista geral do princípio

A gestão de alterações e a automatização desempenham um papel crucial na garantia de transições suaves e controladas em ambientes de nuvem. Para uma gestão de alterações eficaz, tem de usar estratégias e práticas recomendadas que minimizem as interrupções e garantam que as alterações são integradas de forma integrada com os sistemas existentes.

A gestão e a automatização de alterações eficazes incluem os seguintes elementos fundamentais:

  • Alterar governação: estabeleça políticas e procedimentos claros para a gestão de alterações, incluindo processos de aprovação e planos de comunicação.
  • Avaliação de risco: identifique potenciais riscos associados a alterações e mitigue-os através de técnicas de gestão de risco.
  • Testes e validação: teste exaustivamente as alterações para garantir que cumprem os requisitos funcionais e de desempenho e mitigam potenciais regressões.
  • Implementação controlada: implemente alterações de forma controlada, garantindo que os utilizadores fazem a transição de forma simples para o novo ambiente, com mecanismos para reverter de forma simples, se necessário.

Estes elementos fundamentais ajudam a minimizar o impacto das alterações e a garantir que as alterações têm um efeito positivo nas operações da empresa. Estes elementos são representados pelos processos, pelas ferramentas e pela governação, que são as áreas de foco da prontidão operacional.

Recomendações

Para automatizar e gerir as alterações, considere as recomendações nas secções seguintes. Cada recomendação neste documento é relevante para uma ou mais das áreas de foco da prontidão operacional.

Adote a IaC

A infraestrutura como código (IaC) é uma abordagem transformadora para gerir a infraestrutura na nuvem. Pode definir e gerir a infraestrutura na nuvem de forma declarativa através de ferramentas como o Terraform. A IaC ajuda a alcançar consistência, repetibilidade e gestão de alterações simplificada. Também permite implementações mais rápidas e fiáveis. Esta recomendação é relevante para as seguintes áreas de foco da prontidão operacional: processos e ferramentas.

Seguem-se as principais vantagens de adotar a abordagem de IaC para as suas implementações na nuvem:

  • Configurações de recursos legíveis: com a abordagem de IaC, pode declarar os recursos da sua infraestrutura na nuvem num formato legível, como JSON ou YAML. Os administradores e os operadores de infraestrutura podem compreender e modificar facilmente a infraestrutura, bem como colaborar com outras pessoas.
  • Consistência e repetibilidade: a IaC permite a consistência e a repetibilidade nas implementações da sua infraestrutura. Pode garantir que a sua infraestrutura é aprovisionada e configurada da mesma forma sempre, independentemente de quem está a fazer a implementação. Esta abordagem ajuda a reduzir os erros e garante que a sua infraestrutura está sempre num estado conhecido.
  • Responsabilidade e resolução de problemas simplificada: a abordagem de IaC ajuda a melhorar a responsabilidade e facilita a resolução de problemas. Ao armazenar o seu código de IaC num sistema de controlo de versões, pode acompanhar as alterações e identificar quando foram feitas e por quem. Se necessário, pode reverter facilmente para versões anteriores.

Implemente o controlo de versões

Um sistema de controlo de versões como o Git é um componente fundamental do processo de IaC. Oferece capacidades robustas de gestão de alterações e mitigação de riscos, motivo pelo qual é amplamente adotado, quer através do desenvolvimento interno ou de soluções de SaaS. Esta recomendação é relevante para as seguintes áreas de foco da prontidão operacional: governança e ferramentas.

Ao acompanhar as alterações ao código e às configurações da IaC, o controlo de versões oferece visibilidade da evolução do código, o que facilita a compreensão do impacto das alterações e a identificação de potenciais problemas. Esta visibilidade melhorada promove a colaboração entre os membros da equipa que trabalham no mesmo projeto de IaC.

A maioria dos sistemas de controlo de versões permite reverter facilmente as alterações, se necessário. Esta capacidade ajuda a mitigar o risco de consequências ou erros não intencionais. Ao usar ferramentas como o Git no seu fluxo de trabalho de IaC, pode melhorar significativamente os processos de gestão de alterações, fomentar a colaboração e mitigar os riscos, o que leva a uma implementação de IaC mais eficiente e fiável.

Crie pipelines de CI/CD

Os pipelines de integração contínua e entrega contínua (CI/CD) simplificam o processo de desenvolvimento e implementação de aplicações na nuvem. As pipelines de CI/CD automatizam as fases de criação, teste e implementação, o que permite lançamentos mais rápidos e frequentes com um controlo de qualidade melhorado. Esta recomendação é relevante para a área de foco da prontidão operacional das ferramentas.

Os pipelines de CI/CD garantem que as alterações ao código são integradas continuamente num repositório central, normalmente um sistema de controlo de versões como o Git. A integração contínua facilita a deteção e a resolução antecipadas de problemas, e reduz a probabilidade de erros ou problemas de compatibilidade.

Para criar e gerir pipelines de CI/CD para aplicações na nuvem, pode usar ferramentas como o Cloud Build e o Cloud Deploy.

  • O Cloud Build é um serviço de compilação totalmente gerido que permite aos programadores definir e executar passos de compilação de forma declarativa. Integra-se perfeitamente com plataformas de gestão de código-fonte populares e pode ser acionado por eventos como envios de código e pedidos de obtenção.
  • O Cloud Deploy é um serviço de implementação sem servidor que automatiza o processo de implementação de aplicações em vários ambientes, como testes, preparação e produção. Oferece funcionalidades como implementações azul/verde, divisão do tráfego e capacidades de reversão, o que facilita a gestão e a monitorização das implementações de aplicações.

A integração de pipelines de CI/CD com sistemas de controlo de versões e frameworks de testes ajuda a garantir a qualidade e a fiabilidade das suas aplicações na nuvem. Ao executar testes automatizados como parte do processo de CI/CD, as equipas de desenvolvimento podem identificar e corrigir rapidamente quaisquer problemas antes de o código ser implementado no ambiente de produção. Esta integração ajuda a melhorar a estabilidade e o desempenho gerais das suas aplicações na nuvem.

Use ferramentas de gestão de configuração

As ferramentas como o Puppet, o Chef, o Ansible e o VM Manager ajudam a automatizar a configuração e a gestão de recursos na nuvem. Com estas ferramentas, pode garantir a consistência e a conformidade dos recursos nos seus ambientes de nuvem. Esta recomendação é relevante para a área de foco das ferramentas de preparação operacional.

A automatização da configuração e da gestão de recursos na nuvem oferece as seguintes vantagens:

  • Redução significativa do risco de erros manuais: quando estão envolvidos processos manuais, existe uma maior probabilidade de erros devido a erro humano. As ferramentas de gestão de configuração reduzem este risco através da automatização de processos, para que as configurações sejam aplicadas de forma consistente e precisa em todos os recursos da nuvem. Esta automatização pode levar a uma melhor fiabilidade e estabilidade do ambiente na nuvem.
  • Melhoria na eficiência operacional: ao automatizar tarefas repetitivas, a sua organização pode libertar o pessoal de TI para se concentrar em iniciativas mais estratégicas. Esta automatização pode levar a um aumento da produtividade e a poupanças de custos, bem como a uma melhor capacidade de resposta às necessidades empresariais em constante mudança.
  • Gestão simplificada de infraestrutura na nuvem complexa: à medida que os ambientes na nuvem aumentam em tamanho e complexidade, a gestão dos recursos pode tornar-se cada vez mais difícil. As ferramentas de gestão de configuração oferecem uma plataforma centralizada para gerir recursos na nuvem. As ferramentas facilitam o acompanhamento das configurações, a identificação de problemas e a implementação de alterações. A utilização destas ferramentas pode levar a uma melhor visibilidade, controlo e segurança do seu ambiente na nuvem.

Automatize os testes

A integração de testes automatizados nos seus pipelines de CI/CD ajuda a garantir a qualidade e a fiabilidade das suas aplicações na nuvem. Ao validar as alterações antes da implementação, pode reduzir significativamente o risco de erros e regressões, o que leva a um sistema de software mais estável e robusto. Esta recomendação é relevante para estas áreas de foco da prontidão operacional: processos e ferramentas.

Seguem-se as principais vantagens da incorporação de testes automatizados nos seus pipelines de CI/CD:

  • Deteção precoce de erros e defeitos: os testes automatizados ajudam a detetar erros e defeitos numa fase inicial do processo de desenvolvimento, antes que possam causar problemas graves na produção. Esta capacidade poupa tempo e recursos, evitando a necessidade de correções de erros e reformulações dispendiosas em fases posteriores do processo de desenvolvimento.
  • Código de alta qualidade e baseado em normas: os testes automatizados podem ajudar a melhorar a qualidade geral do seu código, garantindo que o código cumpre determinadas normas e práticas recomendadas. Esta capacidade resulta em aplicações mais sustentáveis e fiáveis, menos propensas a erros.

Pode usar vários tipos de técnicas de testes em pipelines de CI/CD. Cada tipo de teste tem um objetivo específico.

  • Os testes unitários focam-se em testar unidades individuais de código, como funções ou métodos, para garantir que funcionam como esperado.
  • Os testes de integração testam as interações entre diferentes componentes ou módulos da sua aplicação para verificar se funcionam corretamente em conjunto.
  • Os testes ponto a ponto são frequentemente usados juntamente com os testes de unidades e de integração. Os testes completos simulam cenários reais para testar a aplicação como um todo e ajudam a garantir que a aplicação cumpre os requisitos dos utilizadores finais.

Para integrar eficazmente os testes automáticos nos seus pipelines de CI/CD, tem de escolher ferramentas e frameworks de testes adequados. Existem muitas opções diferentes, cada uma com as suas próprias vantagens e desvantagens. Também tem de estabelecer uma estratégia de testes clara que descreva os tipos de testes a realizar, a frequência dos testes e os critérios para aprovação ou reprovação num teste. Seguindo estas recomendações, pode garantir que o processo de testes automáticos é eficiente e eficaz. Este processo fornece estatísticas valiosas sobre a qualidade e a fiabilidade das suas aplicações na nuvem.