【问题标题】:node-grunt-compass Heroku's Buildpack analogy for AWS CodeDeploy?node-grunt-compass Heroku 的 AWS CodeDeploy 的 Buildpack 类比?
【发布时间】:2015-09-02 02:22:03
【问题描述】:

我们正在尝试将我的 nodejs 应用程序从 Heroku 迁移到 AWS CodeDeploy。

在 Heroku 部署中,我们使用 nodejs-compass-grunt buildpack 来安装依赖项并运行 compass。 AWS 中是否有类似的东西可以与 CodeDeploy 一起使用,或者我们是否应该只安装一个安装了所有东西的 AMI?

【问题讨论】:

    标签: node.js amazon-web-services heroku gruntjs aws-code-deploy


    【解决方案1】:

    与 Heroku 不同,CodeDeploy 不是 PaaS。它是一项服务,可帮助您管理部署到云基础架构的软件。 CodeDeploy 与您要部署的软件类型及其依赖项无关。这使得它非常灵活,但这也意味着您必须做更多的工作来告诉 CodeDeploy 如何部署您的软件。

    如果您想将框架部署到主机,然后部署依赖于该框架的软件,您有两种选择:

    1. 烘焙一个已安装依赖项的 AMI,然后仅部署您的服务。
    2. 安装所有依赖项作为 CodeDeploy 部署的一部分。

    使用选项 1,如果您想迁移到任何依赖项的新版本,则必须执行与切换到新操作系统相同的工作。本质上,您将不得不进行蓝绿部署:

    1. 烘焙一个新的 AMI。
    2. 提供新的基础设施。
    3. 将您的服务部署到新的基础架构。
    4. 用新的基础架构替换您现有的基础架构。
    5. 释放您的旧基础架构。

    如果您希望使用 CodeDeploy 进行就地部署,那肯定会减慢速度。如果您无论如何都想做蓝绿部署,那么您唯一失去的就是不使用出售的 AMI 并且必须自己管理。

    使用选项 2,您需要将所有依赖项捆绑为部署存档的一部分。您还需要创建脚本来安装/重新安装它们。然后,您可以在 BeforeInstall 生命周期步骤中调用这些脚本。当您想要更新或回滚依赖项时,您需要做的就是与正常代码更改相同的事情:

    1. 创建一个新的部署包。 (理想情况下,这应该是使用 CodeDeploy 时构建过程的最终结果)
    2. 使用 CodeDeploy 部署新包。

    这里的缺点是,您必须在每次部署时重新安装依赖项,或者添加代码以检查现有版本,并且存在依赖项损坏的风险,而这种依赖项无法通过重新部署相同的包来修复。

    【讨论】:

      猜你喜欢
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 2016-10-26
      • 2019-04-02
      • 1970-01-01
      • 2021-03-28
      相关资源
      最近更新 更多