Padrões e anti-padrões de CI / CD. Parte 1

Olá pessoal! Amigos, no último dia do inverno, lançaremos um novo fluxo no curso "Práticas e ferramentas do DevOps" . Antecipando o início do curso, estamos compartilhando com você a primeira parte do artigo: “Padrões e anti-padrões de CI / CD”.



A tarefa do pipeline de implantação consiste em três partes:

  • Visibilidade: todos os aspectos da cadeia de suprimentos - criação, implantação, teste e liberação - são visíveis para os membros da equipe e facilitam a colaboração.
  • Feedback: Os membros da equipe descobrem os problemas assim que ocorrem, para que possam ser corrigidos o mais rápido possível.
  • Implantação contínua: usando um processo totalmente automatizado, você pode implantar e liberar qualquer versão do software em qualquer ambiente.



No diagrama do Deployment Pipeline acima, todos os padrões têm contexto. Alguns padrões abrangem vários estágios deste pipeline, então eu escolhi o estágio em que eles são usados ​​com mais frequência.

1.1 Gerenciamento de configuração - padrões e antipadrões

1.1.1 Software de terceiros personalizado

  • Padrão: avalie e use software de terceiros que possa ser facilmente configurado, implantado e automatizado.
  • Anti-padrão: software que não pode ser configurado externamente. Software sem uma API ou interface de linha de comandos que requer um comando para usar uma GUI.

1.1.2 Diretório de configuração

  • Padrão: Suporte para um catálogo de todos os parâmetros de cada aplicativo, maneiras de alterar esses parâmetros e o local de armazenamento de cada aplicativo. Criação automática de catálogo como parte do processo de construção.
  • Anti-padrões: Os parâmetros de configuração não estão documentados. O catálogo de todos os aplicativos e outros ativos é um “folclore” local e indescritível.

1.1.3 Mainline

  • Padrão: Minimizando fusões, controlando o número de linhas de código ativas trabalhando na linha principal.
  • Antipadrões: vários ramos por projeto.

1.1.4 Mesclagens diárias

  • Padrão: as alterações confirmadas na linha principal são aplicadas a todas as ramificações pelo menos todos os dias.
  • Anti-padrões: mescla todas as iterações uma vez por semana ou menos de uma vez por dia.

1.1.5 Configuração segura

  • Padrão: armazenamento de informações de configuração em um local seguro e acessível remotamente, por exemplo, em um banco de dados, diretório ou registro.
  • Antipadrões: abra senhas de texto e / ou um computador ou recurso compartilhado.

1.1.6 Repositório

  • Padrão: Todos os arquivos de origem - código executável, configuração, ambiente do host, dados - são carregados no repositório com controle de versão.
  • Antipadrão: alguns arquivos são compactados, outros, por exemplo, configurações do ambiente ou alterações de dados, não. Arquivos binários que podem ser recriados durante o processo de compilação ou implantação são registrados.

1.1.7 Ramos de vida curta

  • Padrão: as ramificações devem ter vida curta, idealmente, vários dias e não mais que uma iteração.
  • Antipadrões: ramos que vivem mais que a iteração. Ramos para a funcionalidade do produto, vivendo após o lançamento.

1.1.8 Ambiente da equipe

  • Padrão: Confira o repositório do projeto com controle de versão e execute um único comando para criar e implantar o aplicativo em qualquer ambiente disponível, incluindo desenvolvimento local.
  • Antipadrão: Exija que o desenvolvedor defina e configure variáveis ​​de ambiente. Forçando o desenvolvedor a instalar muitas ferramentas de construção / implantação.

1.1.9 Uma maneira de operar

  • Padrão: Gerenciando a configuração de todo o sistema - fontes, configuração, ambiente, dados. Quaisquer alterações podem ser rastreadas para uma revisão específica no sistema de controle de versão.
  • Antipadrões: partes do sistema não possuem uma versão. Não foi possível reverter para a configuração anterior do software do sistema.

1.2 Integração Contínua do IC - Padrões e Antipadrões

1.2.1 Limite de compilação

  • Padrão: o assembly falha quando as regras do projeto são violadas. Por exemplo, violações da arquitetura, testes lentos, violação dos padrões de gravação de código.
  • Anti-padrões: Revisão manual do código. Detectando problemas de qualidade do código nos estágios posteriores do ciclo de desenvolvimento.

1.2.2 Confirmações frequentes

  • Padrão: Cada membro da equipe faz check-in regularmente - pelo menos uma vez por dia, mas idealmente após cada tarefa para ativar o sistema de IC.
  • Antipadrões: os arquivos de origem são confirmados com menos frequência do que uma vez por dia devido ao número de alterações feitas pelo desenvolvedor.

1.2.3 Feedback contínuo

  • Padrão: enviando feedback automático do sistema de IC para todos os membros da equipe multifuncional.
  • Antipadrões: as notificações não são enviadas; as notificações são ignoradas; o sistema de IC envia informações para todos que não podem ser usados.

1.2.4 Integração contínua

  • Padrão: a montagem e o teste do software ocorrem após a confirmação de alterações no repositório do projeto com controle de versão.
  • Antipadrões: montagens agendadas, noturnas, periódicas, exclusivamente na máquina do desenvolvedor, completa falta de montagem.

1.2.5 O princípio de "Stop Line"

  • Padrão: repare todos os erros de entrega de software assim que surgirem; "Pare a linha". Ninguém faz check-in em uma montagem quebrada, pois a correção tem a maior prioridade.
  • Antipadrão: os assemblies permanecem interrompidos por um longo tempo, impedindo assim que os desenvolvedores verifiquem o código de trabalho.

1.2.6 Assembléia Independente

  • Padrão: os scripts de compilação são gravados separados do IDE. Esses scripts são executados pelo sistema de IC para que a montagem seja executada a cada alteração.
  • Antipadrões: as compilações automáticas dependem da configuração do IDE. Não foi possível iniciar a montagem na linha de comando.

1.2.7 Painéis visíveis

  • Padrão: é possível ver todas as informações sobre o seu sistema de entrega. Fornecer feedback da equipe multifuncional em tempo real de alta qualidade.
  • Antipadrões: os alertas são enviados apenas por email. O feedback não é publicado para toda a equipe.

O fim da primeira parte.

Aqui está esse material. Você pode ler a continuação da tradução aqui e agora estamos aguardando seus comentários e convidamos você para um webinar aberto , que será realizado hoje à noite.

Source: https://habr.com/ru/post/pt440862/


All Articles