如何自动将GIT代码部署到EC2

时间:2018-04-28 10:54:41

标签: git amazon-web-services amazon-ec2 deployment

我为一些Spring Micro-service应用程序提供了一个git repo和本地开发环境。我有一个用于prod的10 EC2实例和用于测试部署的5个EC2实例。

对于测试和产品,我们有两个不同的GIT分支,我们的计划是......

  1. 首先,我们将在本地开发代码并进行单元测试。
  2. 我们将在git test brunch中上传代码并在测试EC2实例中部署更改
  3. 成功测试后,我们将在prod早午餐中上传代码更改,最后部署代码prod EC2实例。
  4. 对于每次更改,逐个复制所有EC2实例中的微服务war文件根本不是一个好主意。是否有任何自动方式/服务可以将我的GIT仓库与AWS服务连接起来,AWS服务将编译代码并运行构建并将war文件复制到特定EC2实例中的特定本地?

    必须按照项目基础进行,因为它是微服务,

    Procect1战应该进入EC2-1(比如一个ec2实例)/ home / user / war

    Project2战应该进入EC2-2(比如另一个ec2实例)/ home / user / war

    类似的东西。

2 个答案:

答案 0 :(得分:2)

您需要定义一个版本pipeline CI & CD,现在,您的工作方式过于宽泛,取决于很多因素。

enter image description here

您可以仅使用git非常原始,并使用post-receive hook实施工作流程,直至"容器化"根据您的情况可能适用或不适用的解决方案。

如果您想避免与Jenkins或buildbot打交道,可以使用Travis CI等服务并实施AWS CodeDeploy。在这种情况下,您可以更多地了解您使用git的方式以及您实施的git-flow

enter image description here

通常,每个进入develop分支的提交都会部署到测试环境中,一旦合并到master,它就会直接进入生产阶段,这在很大程度上取决于webhooks但是有一些好处调整就像一个魅力,因为最终整个管道可以完全自动化

如果您使用ansiblesaltstack等内容配置实例,则可以利用您的设置,只需添加一些webhooks(如前所述)可能会更快而不是例如处理AWS opsworks。

除了这些之外,你总是拥有AWS解决方案,但是在此之前提到的太广泛且非常自以为是,对某些人有用的东西可能不适合你。

答案 1 :(得分:0)

您可以使用诸如Jenkins之类的构建服务器来自动执行此操作,您可以通过多种方式让它监视git分支上的提交,然后触发构建和部署作业,该作业将编译代码然后将其部署到你的实例。