本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CodeDeploy 主要组件
在开始使用该服务之前,您应该熟悉 CodeDeploy 部署过程的主要组成部分。
应用程序
应用程序是一个唯一标识要部署的应用程序的名称。 CodeDeploy 使用此名称(用作容器)来确保在部署期间引用修订版、部署配置和部署组的正确组合。
计算平台
计算平台是 CodeDeploy 部署应用程序的平台。有三个计算平台:
EC2/本地:描述物理服务器的实例,这些实例可以是 Amazon EC2 云实例、本地服务器或两者兼而有之。使用 EC2 /Londest 计算平台创建的应用程序可以由可执行文件、配置文件、图像等组成。
使用 EC2 /Onlide 计算平台的部署使用就地部署或蓝/绿部署类型来管理流量定向到实例的方式。有关更多信息,请参阅 CodeDeploy 部署类型概述。
Amazon Lambda:用于部署由 Lambda 函数的更新版本组成的应用程序。 Amazon Lambda 在由高可用性计算结构组成的无服务器计算环境中管理 Lambda 函数。计算资源的所有管理均由执行 Amazon Lambda。有关更多信息,请参阅无服务器计算和应用程序
。有关 Amazon Lambda 和 Lambda 函数的更多信息,请参阅。Amazon Lambda 您可以通过选择金丝雀、线性或 all-at-once 配置来管理部署期间流量转移到更新后的 Lambda 函数版本的方式。
Amazon ECS:用于将亚马逊ECS容器化应用程序部署为任务集。 CodeDeploy 通过安装应用程序的更新版本作为新的替换任务集来执行蓝/绿部署。 CodeDeploy 将生产流量从原始应用程序任务集重新路由到替换任务集。成功部署后,将会终止原始任务集。有关亚马逊的更多信息ECS,请参阅亚马逊弹性容器服务
。 通过选择金丝雀、线性或 all-at-once 配置,您可以管理在部署期间将流量转移到更新的任务集的方式。
注意
和都 CodeDeploy 支持 Amazon ECS 蓝/绿部署。 Amazon CloudFormation这些部署的详细信息将在后续章节中介绍。
部署配置
部署配置是部署 CodeDeploy 期间使用的一组部署规则以及部署成功和失败条件。如果您的部署使用 EC2 /Unlide 计算平台,则可以为部署指定运行正常的实例的最小数量。如果您的部署使用 Amazon Lambda 或 Amazon ECS 计算平台,则可以指定如何将流量路由到更新后的 Lambda 函数ECS或任务集。
有关为使用 EC2 /Londest 计算平台的部署指定最少运行正常主机数的更多信息,请参阅关于最小运行正常的实例数。
以下部署配置指定了在使用 Lambda 或ECS计算平台的部署期间如何路由流量:
Canary:流量将通过两次递增进行转移。您可以从预定义的金丝雀选项中进行选择,这些选项指定在第一个增量中转移到更新后的 Lambda 函数或ECS任务集的流量百分比,以及第二个增量中剩余流量转移之前的间隔(以分钟为单位)。
线性部署:流量使用相等的增量转移,在每次递增之间间隔的分钟数相同。您可以从预定义的线性选项中进行选择,这些选项指定在每次增量中转移的流量百分比以及每次增量之间的分钟数。
答 ll-at-once:所有流量都将一次性从原始 Lambda 函数或ECS任务集转移到更新的函数或任务集。
部署组
部署组 是一组单独的实例。部署组包含单独标记的实例、Amazon A EC2 uto Scaling 组中的亚马逊EC2实例,或两者兼而有之。有关 Amazon EC2 实例标签的信息,请参阅使用控制台处理标签。有关本地实例的信息,请参阅Working with On-Premises Instances。有关 Amazon A EC2 uto Scaling 的信息,请参阅 CodeDeploy 与 Amazon EC2 集成 Auto Scaling。
Deployment type(部署类型)
部署类型 是一种用于在部署组中的实例上提供最新应用程序修订的方法。具有两种部署类型:
就地部署:停止部署组中每个实例上的应用程序,安装最新的应用程序修订,然后启动和验证应用程序的新版本。您可以使用负载均衡器,以便在部署期间取消注册每个实例,然后在部署完成后让其重新提供服务。只有使用 EC2 /本地计算平台的部署才能使用就地部署。有关就地部署的更多信息,请参阅就地部署概述。
蓝绿部署:部署的行为取决于使用的计算平台:
-
/Londest 计算平台上的蓝 EC2 /绿:使用以下步骤将部署组(原始环境)中的实例替换为另一组实例(替换环境):
-
为替换环境配置实例。
-
在替换实例上安装最新的应用程序修订。
-
对于应用程序测试和系统验证等活动,可以选择等待时间。
-
替换环境中的实例在一个或多个 Elastic Load Balancing 负载均衡器中注册,从而导致流量被重新路由到这些负载均衡器。原始环境中的实例已注销,可以终止或继续运行以用于其他用途。
注意
如果您使用 EC2 /Unlide 计算平台,请注意蓝/绿部署仅适用于 Ama EC2 zon 实例。
-
-
或 Amazon Lambda Amazon ECS 计算平台上的蓝/绿:流量根据金丝雀、线性或all-at-once部署配置逐渐移动。
-
蓝/绿部署通过 Amazon CloudFormation:作为 Amazon CloudFormation 堆栈更新的一部分,流量将从您当前的资源转移到更新的资源。当前,仅ECS支持蓝/绿部署。
有关蓝绿部署的更多信息,请参阅蓝绿部署概述。
-
注意
同时 CodeDeploy 使用和支持 Amazon ECS 蓝/绿部署。 Amazon CloudFormation这些部署的详细信息将在后续章节中介绍。
IAM 实例配置文件
IAM实例配置文件是您附加到 Amazon EC2 实例的IAM角色。此配置文件包括访问存储应用程序的 Amazon S3 存储桶或存储 GitHub 库所需的权限。有关更多信息,请参阅 步骤 4:为您的 Amazon IAM 实例创建EC2实例配置文件。
修订
修订 是您的应用程序的一个版本。L Amazon ambda 部署修订是 YAML-或 JSON-格式的文件,用于指定要部署的 Lambda 函数的相关信息。EC2/Unlide 部署修订版是一个存档文件,其中包含源内容(源代码、网页、可执行文件和部署脚本)和应用程序规范文件(AppSpec 文件)。 Amazon Lambda 修订版可以存储在亚马逊 S3 存储桶中。EC2/本地版本存储在 Amazon S3 存储桶或 GitHub 存储库中。对于 Amazon S3,修订由其 Amazon S3 对象密钥和 ETag /或版本进行唯一标识。对于 GitHub,修订由其提交 ID 进行唯一标识。
服务角色
服务IAM角色是一种向 Amazon 服务授予权限的角色,使其可以访问 Amazon 资源。您附加到服务角色的策略决定了服务可以访问哪些 Amazon 资源以及它可以对这些资源执行的操作。对于 CodeDeploy,服务角色用于以下用途:
-
读取应用于实例的标签或与实例关联的 Amazon A EC2 uto Scaling 组名称。这样就可以 CodeDeploy 确定它可以将应用程序部署到的实例。
-
要对实例、Amazon A EC2 uto Scaling 组和 Elastic Load Balancing 负载均衡器执行操作。
-
向 Amazon SNS 主题发布信息,以便在发生指定部署或实例事件时发送通知。
-
检索有关 CloudWatch 警报的信息,为部署设置警报监控。
有关更多信息,请参阅 步骤 2:为创建服务角色 CodeDeploy。
目标修订
目标修订 是您已上传到存储库并要部署到部署组中的实例的应用程序修订的最新版本。换言之,当前面向部署的应用程序版本。这也是为自动部署提取的修订。
其他组件
有关 CodeDeploy 工作流中其他组件的信息,请参阅以下主题: