【问题标题】:AWS Code deploy - How to use single deployment to deploy the artifacts for multiple services in multiple machinesAWS 代码部署 - 如何使用单一部署在多台机器上部署多个服务的工件
【发布时间】:2018-03-28 05:53:04
【问题描述】:

我正在查看 aws code deploy 以执行部署。我的应用程序将有多个服务,如 apache、tomcat、数据库、cassandra、kafka 等。

每个服务将在不同的机器上运行。据我所知,我似乎需要为每个服务创建不同的部署组(因为每个服务在不同的实例中运行)并为每个服务创建不同的部署。

例如,如果我的应用程序中有大约 5 个不同的服务并且每个服务都在不同的实例中运行,我是否需要在 aws code deploy 中创建 5 个部署组和 5 个不同的部署?是否有任何选项可以使用单个部署/应用规范文件为所有服务执行部署?我想从专家那里获得一些关于我们如何有效地实现这一目标的想法。

【问题讨论】:

  • 我怀疑。但是你可以选择 Ansible 来完成这项任务,可能是 CloudFormation 模板......
  • Ansible 是最佳选择,但我想从 aws 服务中获益。我觉得这是一个常见的用例,aws 可以选择。
  • Ansible + AWS CloudFormation 是一个杀手级组合 :)

标签: amazon-web-services deployment continuous-integration continuous-deployment aws-code-deploy


【解决方案1】:

如果我正确理解您的用例,您的应用程序由 5 种不同的服务组成。每个服务都在一组不同的实例上运行。您想知道是否可以通过一次部署将所有 5 个服务部署到不同的一组实例?如果不在您的 appspec.yml 中做一些非常棘手的事情,这是不可能的,不推荐这样做。部署与一个部署组和一个修订相关联。

推荐方式

如果您想使用 CodeDeploy 执行此操作,可以将其分解为应用程序或部署组。没有办法让部署组为不同的实例混合不同的服务。

理想情况下,您的应用程序中的每个服务都有自己的 CodeDeploy 应用程序,并且每个应用程序都有一个部署组。您也可以在同一个应用程序中为此使用部署组,但从概念上讲,部署组旨在分解运行相同服务的队列,尽管这并不重要。

安装您不会编写代码的应用程序

如果您正在谈论安装不属于您的应用程序(例如 DB 或 Apache),那么 EC2 用户数据可能就是您想要安装它的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 2016-07-10
    • 2014-04-04
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    相关资源
    最近更新 更多