AWS CodeDeploy 功能

为什么选择 CodeDeploy?

AWS CodeDeploy 是一项将应用程序自动部署到各种计算服务 [包括 Amazon Elastic Compute Cloud(Amazon EC2)、AWS Fargate、AWS Lambda 和本地实例] 的服务。CodeDeploy 可以完全自动进行应用程序部署,不需要进行人工操作。CodeDeploy 可以通过滚动更新和部署运行状况跟踪来防止您的应用程序在部署期间停止运行。CodeDeploy 让您可以通过 AWS 管理控制台、AWS 命令行界面(AWS CLI)、开发工具包或 API 集中控制您的部署,从而启动、控制和监控您的部署。您可以查看部署进度,最高可以具体到单个设置事件。CodeDeploy 可追踪并存储您最近的部署历史记录,因此您可以调查时间轴并更改过去部署的历史记录。

CodeDeploy 是一种平台,与语言无关,可以用于任何应用程序,因此您可以重新使用现有的设置代码。您还可以使用 CodeDeploy API,将应用程序部署与现有软件交付过程或持续交付工具链集成。

自动部署

您可以通过 CodeDeploy 在不同的实例组之间轻松重复应用程序部署过程。CodeDeploy 使用基于文件和命令的安装方式,这样可以部署任何应用程序并重复使用现有设置代码。您可以使用相同的设置代码,在 Amazon EC2 实例的整个部署、测试和生产发布阶段一致地部署和测试更新。消除部署中的人工操作提高了软件交付过程的速度和可靠性。

CodeDeploy 让您能够集成软件部署和扩展活动,从而使应用程序在动态生产环境中保持最新。对于 Amazon EC2 实例,CodeDeploy 与 Auto Scaling 集成。Auto Scaling 让您可以根据自己定义的条件(如流量高峰)自动扩展 Amazon EC2 容量。当新实例进入自动扩缩组时,CodeDeploy 会收到通知,并且在新实例添加到弹性负载均衡(ELB)负载均衡器之前,CodeDeploy 会在该新实例上自动执行应用程序部署。

您可以使用 CodeDeploy 在任何实例上运行的开发、测试和生产环境中自动执行软件部署,这些实例包括您的数据中心中的实例(您的实例必须能够连接到 AWS 公共端点)。这样,您只需要使用一项服务即可在不同混合架构中稳定地部署应用程序。

最大程度地减少停机时间

通过 CodeDeploy 将应用程序更新到新版本时,不需要停止运行该应用程序。AWS CodeDeploy 可以对 Amazon EC2 实例、Amazon Elastic Container Service(Amazon ECS)服务(Amazon EC2 和 Fargate 启动类型)或 Lambda 函数执行蓝绿部署。通过蓝/绿部署,新版本的应用程序将与旧版本一起启动。一旦新版本经过测试并宣布准备就绪,CodeDeploy 即可根据您的规范将流量从您之前的版本转移到新版本。

CodeDeploy 还可以在一组 Amazon EC2 实例中执行滚动更新,并且在任何时候其中只有一小部分实例会离线。CodeDeploy 会逐步处理所有实例,让应用程序能够保持可用状态并继续提供流量。对于 Lambda 函数,传入流量会逐渐从旧版本路由到新版本。

部署运行状态追踪与滚动更新共同发挥作用,可以保持应用程序在部署期间高度可用。如果部署了不良更新,有可能会发生意外停机。CodeDeploy 会监控您的部署,并会在发生太多次更新失败时停止部署。

您可以使用控制台、AWS CLI 或任何 AWS 开发工具包随时停止正在执行的应用程序部署。如果您在之后想要继续进行已停止的部署,则只需重新部署该版本即可。您还可以通过重新部署以前的版本来立即回滚。

集中控制

您可以直接通过控制台、AWS CLI、开发工具包或 API 来启动、控制和监控软件部署。如果发生故障,您可以准确找到出现故障的脚本。您还可以设置推送通知,通过 Amazon Simple Notification Service(Amazon SNS)提供的 SMS 或电子邮件信息监控部署状态。

可以将一个应用程序部署到多个部署组中。部署组用于将配置与特定环境(例如转储环境或生产环境)进行匹配。您可以在分段环境中测试修订版,然后在您感到满意时将包括相同部署说明的相同代码部署到生产环境中。

CodeDeploy 可以追踪和存储最近的部署历史记录。您可以查看各个目标部署组中目前部署了哪些应用程序版本。您可以查看以往的部署在特定部署组中的更改历史记录和成功率。您还可以调查过去部署的时间轴,从而详细查看部署的成功和失败情况。

易于采用

CodeDeploy 使用基于文件和命令的安装方式,这样可以部署任何应用程序并重复使用现有设置代码。CodeDeploy 使用单个 AppSpec 配置文件,您可以使用该文件在每个生命周期事件(部署阶段)运行操作、测试或验证。这些命令可以是任何代码,如外壳脚本、定制程序,甚至是配置管理工具。

使用 CodeDeploy API 可以将应用程序部署与您现有的软件交付工具链轻松集成。 AWS CodePipeline 和一些 AWS 合作伙伴为持续集成和持续交付(CI/CD)服务提供预构建的 CodeDeploy 集成,从而简化更新应用程序的自动部署。

接收通知

您可以针对影响您部署的事件创建通知。通知将以 Amazon SNS 通知的形式出现。每个通知都将包括状态消息和一个链接,此链接指向其事件生成该通知的资源。