As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Integração e entrega contínuas
Evolua e melhore aplicativos e serviços com mais rapidez do que organizações que usam processos tradicionais de desenvolvimento de software e gerenciamento de infraestrutura.
A adoção de DevOps
Início
Adote o gerenciamento de componentes de software
O gerenciamento de componentes de software é a prática de gerenciar todos os componentes individuais usados para criar software, incluindo bibliotecas, estruturas, repositórios de código-fonte, módulos, artefatos e dependências de terceiros. Recomendamos que você use um sistema de controle de versão, como o Git ou o Apache Subversion, para gerenciar o código-fonte, permitir a colaboração e manter um histórico das alterações no código. Você pode monitorar alterações e eventos no repositório para automatizar o processo, criar pipelines, gerenciar seu código e integrar seus fluxos de trabalho com serviços adicionais, conforme necessário.
Crie pipelines de CI/CD
CI/CD pipelines are sets of automated instructions that are initiated by changes committed to the version control system. They typically include instructions for building the application, running automated tests, and deploying code to a specific environment. You can set up an automated CI/CDfunda usando ferramentas como AWS CodePipelineJenkins ou GitLab CircleCI. Você também pode configurá-los diretamente em sistemas de controle de versão que suportam a geração de pipeline.
Comece com um pipeline mínimo viável para integração contínua e, em seguida, faça a transição para um pipeline de entrega contínua
Considere as janelas de implantação, em quais dias e horários você deseja implantar seu código. Considere as horas de baixa demanda do seu sistema; portanto, se você precisar reverter, isso terá o menor impacto sobre seus clientes. Outras práticas recomendadas incluem evitar implantações às sextas-feiras e implementar um congelamento de código durante datas de pico ou antes dos feriados. Considere definir regras sobre a implantação de código quando o autor do commit não estiver disponível (por exemplo, em férias). Lembre-se de que as implantações falham e talvez você precise contar com ajuda externa. Avalie diferentes métodos de implantação, como implantações no local, contínuas, imutáveis e azul/verde. Considere o uso de serviços totalmente gerenciados para fluxos de trabalho de entrega contínua, a fim de aumentar a disponibilidade e a segurança e, ao mesmo tempo, minimizar a complexidade e o gerenciamento.
Implemente testes automatizados
As práticas modernas recomendam mudar para a esquerda (aproximar os testes do desenvolvedor e do IDE
O teste automatizado detecta erros no início do processo de desenvolvimento e inclui testes unitários, testes de integração e testes funcionais. Recomendamos que você incentive os desenvolvedores a usar ferramentas
Crie documentação
Além de implementar um CI/CD pipeline to streamline development workflows, you should maintain clear and comprehensive documentation to ensure the pipeline's ongoing effectiveness, maintainability, and scalability. Documentation is a vital aspect of CI/CD pipeline, porque fornece às equipes de desenvolvimento uma compreensão clara do design, dos componentes e dos processos do pipeline. Ao criar a documentação, comece com uma visão geral do pipeline, explique as vantagens da arquitetura e do design, descreva as ferramentas e tecnologias que estão sendo usadas, especifique a configuração e as configurações iniciais, descreva as medidas de segurança e o controle de acesso e inclua informações de solução de problemas e manutenção.
Use a infraestrutura como código
Use ferramentas como Terraform, Ansible ou AWS CloudFormationpara gerenciar a infraestrutura e garantir ambientes consistentes e reproduzíveis. Trate sua infraestrutura como código, acompanhe as alterações na infraestrutura e evite fazer alterações diretamente no console. Defina toda a infraestrutura, incluindo o provisionamento de banco de dados, como código e implante essas alterações usando pipelines. Considere executar a integração do banco de dados como código em pipelines com um pequeno subconjunto de dados de produção higienizados. Quando possível, faça as alterações e acompanhe essas alterações no código.
Assim como no código de software, siga estas melhores práticas para seu código de infraestrutura:
-
Use o controle de versão.
-
Faça uso de sistemas de rastreamento de bugs e emissão de bilhetes.
-
Peça aos colegas que revisem as alterações antes de aplicá-las.
-
Estabeleça padrões e projetos de código de infraestrutura.
-
Teste as mudanças na infraestrutura.
Mantenha e acompanhe métricas padrão
Para manter um alto nível de desempenho, desenvolva e acompanhe as principais métricas para entender o impacto nos negócios e na saúde de seus pipelines, incluindo:
-
Frequência de construção. O número de construções oferece informações sobre a produtividade da sua equipe e a complexidade das mudanças.
-
Frequência de implantação. Implantações regulares indicam um processo de desenvolvimento ágil e saudável.
-
Prazo de entrega para mudanças. Medir o tempo médio para que as mudanças cheguem à produção pode ajudá-lo a identificar gargalos em seu processo de implantação.
-
Tempo médio de passagem pelo pipeline. O tempo médio do estágio inicial do pipeline até cada estágio subsequente pode ajudar a otimizar seu fluxo de trabalho.
-
Volume de mudança de produção. Acompanhar o número de mudanças que chegam à produção pode fornecer informações sobre a estabilidade do seu ambiente de produção.
-
Tempo de construção. O tempo médio de construção pode indicar possíveis problemas na base de código ou na infraestrutura.
Avançar
Use o gerenciamento de configuração
As ferramentas de gerenciamento de configuração desempenham um papel fundamental na automação da implantação, configuração e gerenciamento de software e infraestrutura. Eles fornecem uma abordagem sistemática para lidar com mudanças e manter o estado desejado de infraestrutura, software e configurações em vários ambientes. Essas ferramentas permitem que os desenvolvedores definam o estado desejado de um sistema usando linguagens declarativas ou imperativas. Em seguida, a ferramenta de gerenciamento de configuração automatiza o processo de aplicação dessas configurações aos sistemas de destino, garantindo consistência e repetibilidade.
Use ferramentas de gerenciamento de configuração para automatizar a implantação, a configuração e o gerenciamento de software e infraestrutura.AWS Systems Manager O State Manager é um serviço de gerenciamento de configuração seguro e escalável que automatiza o processo de manter seus nós gerenciados e outros AWS recursos em um estado definido por você.
Integre monitoramento e registro
A integração de soluções de monitoramento e registro em pipelines de CD oferece vários benefícios para as equipes de desenvolvimento e para o processo geral de desenvolvimento de software. Essas soluções podem fornecer informações em tempo real sobre o desempenho do aplicativo, permitir a identificação e a resolução mais rápidas de problemas e promover a melhoria contínua para ajudar a garantir que os aplicativos permaneçam confiáveis, com desempenho e escaláveis durante todo o ciclo de vida. Investir em soluções de monitoramento e registro é um aspecto fundamental para manter um pipeline de CD robusto e eficiente e, em última análise, contribui para a entrega bem-sucedida de software de alta qualidade.
Crie uma cadência para mesclagem
Confirme ou mescle alterações de código na ramificação da linha principal (tronco ou principal) pelo menos uma vez por dia ou, idealmente, várias vezes ao dia após cada tarefa. Essa cadência leva a várias invocações diárias do pipeline. Um modelo de fluxo de trabalho ramificado baseado em pull se alinha a essa abordagem. Use sinalizadores de recursos
Capture o comportamento pós-implantação
Depois de uma implantação, capture o comportamento da produção usando testes sintéticos automatizados e sincronize os resultados com o pipeline de entrega contínua para garantir que as ações corretivas ocorram imediatamente. A principal prioridade dos desenvolvedores deve ser corrigir os erros descobertos nos pipelines o mais rápido possível, confirmar as alterações de código no repositório do código-fonte e verificar a resolução de erros no pipeline.
As melhores práticas pós-implantação incluem observar os indicadores-chave de desempenho mais importantes (KPIs) e validar se não há erros no ambiente de produção. Automatize o tratamento de erros e a avaliação pós-implantação KPIs para quantificar o impacto do seu lançamento. Gere automaticamente métricas de velocidade, segurança e estabilidade que os desenvolvedores podem usar para fazer melhorias. Para obter mais informações, consulte o Painel de DevOps monitoramento
Excel
Adote práticas e tecnologias de ponta para um desempenho ideal. O refinamento contínuo de seus processos de CI/CD ajuda você a melhorar a qualidade do software, reduzir o tempo de lançamento no mercado e aumentar a agilidade. Novas técnicas e ferramentas surgem continuamente, o que torna essencial que sua organização se mantenha informada e se adapte para manter uma vantagem competitiva.
Para permanecer adaptável, considere o seguinte:
-
Defina tudo como código, incluindo seu aplicativo, configuração, infraestrutura, dados, AWS contas e organizações, pipelines de implantação, redes e controles de segurança e conformidade.
-
Crie pipelines de implantação
correspondentes para imagens computacionais, serviços compartilhados e aplicativos. -
Considere um GitOps modelo no qual solicitações baseadas em pull iniciam um fluxo de trabalho para implantar alterações comparando o estado da infraestrutura existente com o estado desejado, conforme descrito no código.
-
Considere usar pipelines de CD para implantar aprendizado de máquina (ML), dados, Internet das Coisas (IoT) e outras cargas de trabalho.
-
Assine digitalmente todos os artefatos de construção e armazene-os em um repositório seguro.
-
Rastreie a proveniência do software gerando automaticamente uma lista de materiais de software que cria um registro de todos os artefatos versionados e assinados digitalmente que são implantados nos clientes.
-
Depois de eliminar todas as atividades manuais em um processo de entrega de software, remova os quadros de revisão manual.
Para aplicativos e serviços que automatizaram todo o processo de entrega de software, considere a implantação contínua, na qual as equipes implementam mudanças que passam todas as verificações em um pipeline para os clientes em produção. Para uma visualização, consulte o primeiro diagrama em O que é entrega contínua
Integre tecnologias de IA/ML
A integração das tecnologias de inteligência artificial (IA) e aprendizado de máquina (ML) em pipelines de CI/CD oferece vários benefícios, incluindo os seguintes:
-
Geração automatizada de testes
-
Priorização inteligente de testes
-
Análise preditiva para detecção de problemas
-
Detecção de anomalias e análise da causa raiz
-
Revisão de código e garantia de qualidade
-
Otimização da implantação
Para obter mais informações, consulte Adicionar inteligência às suas operações de desenvolvedor
Adote práticas de engenharia do caos
A engenharia do caos envolve a injeção intencional de falhas nos sistemas para testar sua capacidade de resistir e se recuperar de eventos inesperados. Ao identificar pontos fracos e abordá-los de forma proativa, as organizações podem melhorar a confiabilidade geral do sistema e minimizar o impacto de possíveis problemas.
Adote práticas de engenharia do caos para testar a resiliência de seus sistemas usando ferramentas como Gremlin, Chaos Monkey ou Litmus. Execute experimentos controlados regularmente para identificar vulnerabilidades, validar a tolerância a falhas e garantir que seu aplicativo lide com falhas inesperadas sem problemas. Essa abordagem proativa ajuda a melhorar a confiabilidade do sistema e contribui para um pipeline de CI/CD mais robusto.
Otimizar a performance
Otimize o desempenho do seu aplicativo continuamente usando ferramentas de criação de perfil, monitoramento em tempo real e ciclos de feedback. Aplique técnicas como as seguintes para garantir que seus aplicativos possam lidar com o aumento do tráfego e da demanda:
-
Otimização de código
-
Criação de perfil
-
monitoramento em tempo real
-
Encaminhamentos de feedback
-
Armazenamento em cache
-
Balanceamento de carga
-
Teste de escalabilidade e desempenho
Implemente observabilidade avançada
Elevar a observabilidade da sua infraestrutura de nuvem vai além do básico de coletar, agregar e analisar métricas, registros e rastreamentos. Quando a observabilidade é aprimorada com ferramentas como a Amazon CloudWatch e AWS X-Ray, ela evolui para uma prática estratégica que estimula a entrega contínua e a inovação.
Em um pipeline robusto de CI/CD, a observabilidade avançada permite que você descubra insights, não apenas sobre seus aplicativos e infraestrutura, mas também sobre o desempenho e a integridade de todo o sistema, incluindo o próprio pipeline. Esses insights ajudam você a:
-
Identifique, compreenda e resolva rapidamente possíveis problemas para melhorar a estabilidade do aplicativo e reduzir o tempo de inatividade
-
Simplifique seus processos de CI/CD para criar entregas mais rápidas e confiáveis
-
Obtenha insights mais profundos sobre o impacto das mudanças e implantações de código para impulsionar a tomada de decisões informada
-
Otimize a utilização de recursos para melhorar a eficiência operacional e a relação custo-benefício
Para elevar a observabilidade:
-
Incorpore a observabilidade em todas as camadas de seus aplicativos e infraestrutura para criar uma visão abrangente do desempenho, comportamento e integridade de seus sistemas.
-
Centralize a coleta, o armazenamento e a análise de dados com ferramentas como CloudWatch a Amazon para unificar seus dados de observabilidade e facilitar o acesso e a interpretação.
-
Use AWS X-Ray para rastreamento distribuído para entender o desempenho de seus aplicativos e seus serviços subjacentes.
-
Estabeleça ciclos de feedback para melhoria contínua e use seus dados de observabilidade para impulsionar aprimoramentos iterativos em seus sistemas.
Adotar a observabilidade avançada não significa apenas manter seus sistemas, é um movimento estratégico para alcançar a excelência operacional e impulsionar a inovação contínua em sua organização.
Implemente GitOps práticas
Implemente GitOps práticas para gerenciar configurações de infraestrutura e aplicativos usando um repositório Git como uma única fonte confiável. Essa abordagem simplifica o gerenciamento de mudanças, aprimora a rastreabilidade e garante a consistência em todos os ambientes.