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ões1.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ões1.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.