Como você testa alterações nos plugins Jenkins antes de implantá-los?

14

Se você já foi mordido por uma atualização de plug-in que quebrou algumas funcionalidades, deve ter pensado um pouco sobre esse problema: Qual deve ser a política de atualização de plug-ins Jenkins? Como você testa as alterações antes de implantá-las?

Alguém chegou ao ponto de ter uma instância de teste executando trabalhos fictícios para testar as novas versões ou você apenas reza para que a atualização das versões não danifique nada?

Michael Pereira
fonte
Você quer dizer a política da equipe de Jeankins ou a sua política (da organização)?
precisa
Eu tirava um instantâneo do nó Jenkins antes da atualização e apenas o testava. Na minha experiência, Jenkins nunca foi um componente de missão crítica. Se estiver "inativo" por 15 minutos, porque alguma atualização do plugin o interrompeu, geralmente não está impedindo a produção de forma alguma, portanto a intervenção manual é aceitável. Obviamente, se esse não é o seu caso (e Jenkins deve ser 100% HA), não é a abordagem correta.
precisa
@DanCornilescu minha política organização como esta é para o nosso servidor interno Jenkins
Michael Pereira
@AssafLavie Isso depende muito da maneira como o Jenkins está executando: servidor autônomo, VM, contêiner de docker, pods do kubernetes (nosso caso). Pode não ser fácil tirar um instantâneo do estado atual para restaurá-lo como está. No nosso caso, podemos clonar o volume EBS que contém os dados do Jenkins, mas é um processo manual e demorado restaurar o volume do contêiner e dos dados para um estado específico.
Michael Pereira
Olá @MichaelPereira, se uma das duas respostas abaixo tiver resolvido sua pergunta, considere aceitá-la clicando na marca de seleção. Isso indica à comunidade em geral que você encontrou uma solução e dá reputação ao respondente e a si próprio. Não há obrigação de fazer isso. Se você não acha que sua pergunta foi respondida, sinta-se à vontade para se envolver com os autores nos comentários.
Richard Slater

Respostas:

4

De acordo com as políticas da empresa em que trabalho, temos ambientes dev, preprod e prod (em alguns serviços o desenvolvedor pode estar ausente). E o caminho da nova versão preprod-> tests-> validation-> prod.

No nosso caso, os trabalhos no pré-produto são pesados ​​e complexos o suficiente para garantir que não precisamos orar quando implementados no prod :)

Nota : Usamos o svn para manter e entregar a configuração. Não fazemos alterações no local.

Romeo Ninov
fonte
Como você mantém a configuração dos diferentes servidores Jenkins? Manualmente?
Michael Pereira
Usamos svn para manter e entregar a configuração. Não fazemos alterações no local #
Romeo Ninov
Sinto que isso não responde totalmente à pergunta. Esta resposta descreve como você implementa alterações, mas não como você as testa através do pipeline de implantação.
Jayhendren
2

Precisávamos de um ambiente Jenkins 100% HA. geralmente atualizamos os plugins / Jenkins.

Isso causa uma grande dor de cabeça se a compilação for interrompida após a atualização.

A maneira mais segura de resolver isso é realmente obter uma configuração do Demo Jenkins. Talvez na mesma máquina usando vários aplicativos Tomcat, você possa conseguir isso mais barato.

O que fizemos foi criar uma VM (demo) separada e replicar a configuração do produto na VM demo. Antes de alterar / atualizar qualquer coisa, tiraríamos um instantâneo das duas VMs. Em seguida, testaríamos as atualizações na Demo VM. Se funcionar bem, altere-o no Prod.

Eu acho que você pode procurar na comunidade (como SE / SO) se alguém tiver enfrentado algum problema com o plug-in que você está planejando.

Mihir Deshpande
fonte
0

Eu sempre acionava manualmente uma reexecução ou duas em pelo menos um rótulo verde (ou quase verde) recente em cada projeto / ramificação relevante que usa o respectivo plug-in e verifica se obtive os mesmos resultados. Só para ficar no lado seguro.

Qualquer discrepância de resultado precisaria ser investigada para determinar se é causada pela atualização do plug-in ou não. Talvez mais algumas reexecuções com os plugins antigos e novos?

Dan Cornilescu
fonte
Claro, sem problemas.
precisa
Por experiência anterior, minhas opiniões geralmente não são tão populares, então, em geral, evito o foco, se possível :) Também não estou familiarizado com as ferramentas de modificação. Mas não me importo em ajudar, especialmente se for necessário - tenho grandes esperanças para este site.
22617 Dan Cornilescu