O teste decisivo de CI/CD: seu pipeline é totalmente CI/CD? - AWS Orientação prescritiva

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á.

O teste decisivo de CI/CD: seu pipeline é totalmente CI/CD?

Steven Guggenheimer e Ananya Koduri, Amazon Web Services (AWS)

Agosto de 2023 (histórico do documento)

Seu pipeline é automatizado? É uma pergunta simples, mas muitas organizações abordam a resposta de forma muito simples. A resposta é muito mais complicada do que um sim ou não.

As inovações em tecnologia estão acontecendo constantemente e, às vezes, pode ser difícil para as organizações acompanharem o ritmo. Essa coisa nova é uma moda passageira ou é a próxima grande novidade? Devo revisar minhas práticas atuais ou devo esperar? Frequentemente, quando fica claro que algo é de fato a próxima grande novidade, você pode se ver em desvantagem. A integração e a entrega contínuas (CI/CD) chegaram para ficar, mas nem sempre foi assim. Muitas pessoas levaram um longo tempo para se convencer, e algumas continuam céticas.

O CI/CD é o processo de automatização das etapas de origem, criação, teste, preparação e produção do processo de lançamento do software, e é comumente descrito como um pipeline. Atualmente, a economia de custos e a velocidade das automações de CI/CD comprovaram o seu valor para a maioria das organizações. Mas fazer a transição para essa nova abordagem não é uma tarefa fácil. Você precisa garantir que sua equipe tenha o treinamento correto, precisa atualizar alguns recursos e, em seguida, testar, testar e testar. Há muito o que fazer. Na maioria dos casos, você faz essas mudanças gradualmente para ajudar sua organização a se adaptar.

O objetivo deste documento é definir o que significa ter um processo de CI/CD totalmente automatizado. Ele fornece uma ferramenta para avaliar seus próprios processos e apresenta um caminho a seguir para processos que ainda não existem. Esse caminho a seguir raramente é uma transformação da noite para o dia. Esses processos são complexos e dependem de muitos fatores, incluindo as atuais competências dos funcionários e as demandas atuais de infraestrutura. Recomendamos que você priorize e faça pequenas mudanças incrementais.

Objetivos

Confira abaixo as possíveis vantagens da implementação das recomendações deste guia:

  • Eficiência: um processo de implantação CI/CD totalmente automatizado pode reduzir a complexidade, as workloads e as incontáveis horas gastas na depuração, execução de processos manuais e manutenção. Para obter mais informações, consulte Benefícios da entrega contínua. De acordo com uma publicação no blog da TechaHead, a implementação do processo de CI/CD pode levar a uma economia estimada de 20% em tempo, esforço e recursos.

  • Redução de custos: de acordo com um relatório da Forbes Insight, “Três em cada quatro executivos concordam que a quantidade de tempo, dinheiro e recursos gastos em manutenção e gerenciamento contínuos, em comparação com desenvolvimento de novos projetos ou novas iniciativas, está afetando a competitividade geral de sua organização”. Quanto menor o ciclo de desenvolvimento, maiores são as chances de sua organização atingir metas ambiciosas de lançamento no mercado e aproveitar as oportunidades certas no momento certo.

  • Velocidade: normalmente, um pipeline de CI/CD totalmente automatizado é capaz de liberar alterações de software para os clientes em poucas horas. Especialmente em casos com isolamentos de falhas rápidos e aplicação de patches pequenos, o pipeline de CI/CD ajuda a melhorar o tempo médio de recuperação (MTTR). Para obter mais informações, consulte Redução do MTTR.

  • Segurança: os pipelines de CI/CD totalmente automatizados também protegem o processo de liberação, reduzindo os possíveis pontos de entrada para ataques e reduzindo o risco de erro humano. Os ganhos de segurança decorrentes dos pipelines de CI/CD totalmente automatizados ajudam a evitar as consequências dispendiosas de violações de dados, interrupções de serviços e muito mais.

  • Redução do desgaste: os desenvolvedores ficam mais satisfeitos quando podem passar mais tempo criando ótimos recursos e menos tempo presos a um ciclo interminável de manutenção e depuração. Para as organizações, isso significa adquirir e reter os melhores talentos por longos períodos de tempo.

  • Código de qualidade superior: os desenvolvedores liberam o código em um repositório fragmentado em pequenos lotes, o que lhes permite realizar testes paralelos (publicação no blog da BrowserStack). Em vez de trabalhar isoladamente, eles compartilham suas criações com a equipe com frequência e colaboram para identificar bugs críticos. Isso fornece um suporte para os desenvolvedores, o que ajuda a evitar que códigos incorretos cheguem à produção. O suporte de colegas desenvolvedores contribui para lançamentos de alta qualidade e impulsiona o crescimento organizacional.

  • Manutenção: a manutenção e as atualizações são uma parte crucial da criação de um ótimo produto. No entanto, não desligue o sistema durante os horários de pico do tráfego. Você pode usar um pipeline de CI/CD para realizar manutenções durante horas de baixo uso, minimizando o tempo de inatividade e os impactos na performance.