我为一些Spring Micro-service应用程序提供了一个git repo和本地开发环境。我有一个用于prod的10 EC2实例和用于测试部署的5个EC2实例。
对于测试和产品,我们有两个不同的GIT分支,我们的计划是......
对于每次更改,逐个复制所有EC2实例中的微服务war文件根本不是一个好主意。是否有任何自动方式/服务可以将我的GIT仓库与AWS服务连接起来,AWS服务将编译代码并运行构建并将war文件复制到特定EC2实例中的特定本地?
必须按照项目基础进行,因为它是微服务,
Procect1战应该进入EC2-1(比如一个ec2实例)/ home / user / war
Project2战应该进入EC2-2(比如另一个ec2实例)/ home / user / war
类似的东西。
答案 0 :(得分:2)
您需要定义一个版本pipeline CI & CD,现在,您的工作方式过于宽泛,取决于很多因素。
您可以仅使用git
非常原始,并使用post-receive hook实施工作流程,直至"容器化"根据您的情况可能适用或不适用的解决方案。
如果您想避免与Jenkins或buildbot打交道,可以使用Travis CI等服务并实施AWS CodeDeploy。在这种情况下,您可以更多地了解您使用git
的方式以及您实施的git-flow。
通常,每个进入develop
分支的提交都会部署到测试环境中,一旦合并到master
,它就会直接进入生产阶段,这在很大程度上取决于webhooks但是有一些好处调整就像一个魅力,因为最终整个管道可以完全自动化
如果您使用ansible或saltstack等内容配置实例,则可以利用您的设置,只需添加一些webhooks(如前所述)可能会更快而不是例如处理AWS opsworks。
除了这些之外,你总是拥有AWS解决方案,但是在此之前提到的太广泛且非常自以为是,对某些人有用的东西可能不适合你。
答案 1 :(得分:0)
您可以使用诸如Jenkins之类的构建服务器来自动执行此操作,您可以通过多种方式让它监视git分支上的提交,然后触发构建和部署作业,该作业将编译代码然后将其部署到你的实例。