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?


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.


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.


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?


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.