Sto lavorando a un progetto che utilizza Jenkins per creare e distribuire microservizi su Elastic Beanstalk. Distribuiamo un ramo di integrazione in un ambiente di test, rilasciamo i rami in un ambiente di gestione temporanea e quindi un master finale per la produzione. Ho un paio di preoccupazioni nel farlo in questo modo: in primo luogo, significa che finiamo con una matrice di una build per progetto per ambiente, duplicando gli sforzi; e due, significa che non stiamo distribuendo gli stessi artefatti di build alla produzione che sono stati convalidati nella stadiazione.
Sono propenso ad abbandonare Beanstalk e passare a semplici ASG usando qualcosa come Chef per le distribuzioni. Ciò ci lascerebbe con una build per progetto, producendo un artefatto di build, e potremmo distribuire lo stesso artefatto alla produzione che è stato approvato nella messa in scena. Tuttavia, il passaggio ha un costo iniziale non trascurabile. Esiste un modo per utilizzare meglio Beanstalk che consentirebbe CI / CD più affidabili e più facili da gestire?
Nota : promuovere lo stesso artefatto di build è esattamente quello che voglio fare, ma dai documenti non vedo alcun modo chiaro per farlo; spiega come distribuire su EB dalla sorgente della tua app, ma non come promuovere una versione esistente in un altro ambiente, a meno che non riesca a scorrere oltre. Se è disponibile nello stesso EB, potrebbe esserci una limitazione nel plug-in di distribuzione EB di Jenkins che ne impedisce specificamente l'esecuzione in Jenkins, ma non ho visto alcun modo per farlo.