我正在与一个使用Jenkins来构建微服务并将其部署到Elastic Beanstalk的项目一起工作。我们将集成分支部署到测试环境,将分支发布到暂存环境,然后将最终主版本构建到生产环境。我这样做有两个问题:首先,这意味着我们最终得到一个矩阵,该矩阵是每个项目每个环境一个构建的矩阵,需要重复的工作;第二,这意味着我们不会在生产中部署经过阶段验证的相同构建工件。
我倾向于放弃Beanstalk,而使用诸如Chef之类的东西迁移到普通的ASG。这将使我们每个项目只有一个构建,生成一个构建工件,并且我们可以将相同的工件部署到阶段中批准的生产中。但是,过渡的前期成本并不微不足道。有什么方法可以更好地使用Beanstalk,从而使CI / CD更可靠,更易于管理?
注意:推广相同的构建工件正是我想要做的,但是从文档中我看不到任何明确的方法;它说明了如何从您的应用程序源部署到EB,但没有说明如何将现有版本升级到另一个环境,除非我设法向右滚动。如果它可以在EB本身中使用,则Jenkins EB部署插件中可能会有一个限制,使其无法专门在Jenkins中完成,但是我还没有找到实现它的方法。