AWS CodeDeploy 是一项将应用程序自动部署到各种计算服务(包括 Amazon EC2、AWS Fargate、AWS Lambda 和本地实例)的服务。CodeDeploy 可以完全自动进行应用程序部署,不需要进行人工操作。CodeDeploy 可以通过滚动更新和部署运行状况跟踪来防止您的应用程序在部署期间停止运行。CodeDeploy 让您可以通过 AWS 管理控制台、CLI、开发工具包或 API 集中控制您的部署,从而启动、控制和监控您的部署。您可以查看部署进度,最高可以具体到单个设置事件。CodeDeploy 可以跟踪并存储最近的部署历史记录,因此您可以查看以往部署的时间轴和更改历史记录。
AWS CodeDeploy 是一种平台,与语言无关,可以用于任何应用程序,因此您可以重新使用现有的设置代码。您还可以使用 CodeDeploy API 将应用程序部署与现有软件交付过程集成,或者将其集成到持续交付工具链中。
自动化实例部署
可重复部署
您可以通过 AWS CodeDeploy 在不同的实例组之间轻松重复应用程序部署过程。CodeDeploy 使用基于文件和命令的安装方式,这样可以部署任何应用程序并重复使用现有设置代码。您可以使用相同的设置代码,在 Amazon EC2 实例的整个部署、测试和生产发布阶段一致地部署和测试更新。消除部署中的人工操作提高了软件交付过程的速度和可靠性。
自动扩展
AWS CodeDeploy 让您能够集成软件部署和扩展活动,从而使应用程序在动态生产环境中保持最新。对于 Amazon EC2 实例,CodeDeploy 与 Auto Scaling 集成。Auto Scaling 让您可以根据自己定义的条件(如流量高峰)自动扩展 EC2 容量。当新实例进入 Auto Scaling 组时,CodeDeploy 会收到通知,并且在新实例添加到 Elastic Load Balancing 负载均衡器之前,CodeDeploy 会在该新实例上自动执行应用程序部署。
本地部署
您可以使用 AWS CodeDeploy 在任何实例上运行的开发、测试和生产环境中自动执行软件部署,这些实例包括您的数据中心中的实例(您的实例必须能够连接到 AWS 公共终端节点)。这样,您只需要使用一项服务即可在不同混合架构中稳定地部署应用程序。
最大程度地减少停机时间
滚动更新和蓝/绿更新
通过 AWS CodeDeploy 将应用程序更新到新版本时,不需要停止运行该应用程序。AWS CodeDeploy 可以对 Amazon EC2 实例、Amazon ECS 服务(EC2 和 AWS Fargate 启动类型)或 AWS Lambda 功能执行蓝/绿部署。通过蓝/绿部署,新版本的应用程序将与旧版本一起启动。一旦新版本经过测试并宣布准备就绪,CodeDeploy 即可根据您的规范将流量从您之前的版本转移到新版本。
CodeDeploy 还可以在一组 Amazon EC2 实例中执行滚动更新,并且在任何时候其中只有一小部分实例会离线。CodeDeploy 会逐步处理所有实例,让应用程序能够保持可用状态并继续提供流量。对于 AWS Lambda 函数,传入流量会逐渐从旧版本路由到新版本。
部署运行状况跟踪
部署运行状态追踪与滚动更新共同发挥作用,可以保持应用程序在部署期间高度可用。如果部署了不良更新,有可能会发生意外停机。AWS CodeDeploy 会监控您的部署,并会在发生太多次更新失败时停止部署。
停止和回滚
您可以使用 AWS 管理控制台、AWS CLI 或任何 AWS 开发工具包随时停止正在执行的应用程序部署。如果您在之后想要继续进行已停止的部署,则只需重新部署该版本即可。您还可以通过重新部署以前的版本来立即回滚。
集中控制
监控和控制
您可以直接通过 AWS 管理控制台、AWS CLI、开发工具包或 API 来启动、控制和监控软件部署。如果发生故障,您可以准确找到出现故障的脚本。您还可以设置推送通知,通过 Amazon Simple Notification Service 提供的 SMS 或电子邮件信息监控部署状态。
部署组
可以将一个应用程序部署到多个部署组中。部署组用于将配置与特定环境(例如转储环境或生产环境)进行匹配。您可以在转储环境中测试新版本,并在满意后将相同的代码和相同的部署说明部署到生产环境中。
部署历史记录
AWS CodeDeploy 可以追踪和存储最近的部署历史记录。您可以查看各个目标部署组中目前部署了哪些应用程序版本。您可以查看以往的部署在特定部署组中的更改历史记录和成功率。您还可以查看以往部署的时间轴,详细了解部署的成功和失败情况。
易于采用
与语言和架构无关
AWS CodeDeploy 使用基于文件和命令的安装方式,因此可以部署任何应用程序并重新使用现有设置代码。CodeDeploy 使用单个 AppSpec 配置文件,您可以使用该文件在每个生命周期事件(部署阶段)运行操作、测试或验证。这些命令可以是任何代码,例如 shell 脚本、自定义程序,甚至是配置管理工具。
工具链集成
使用 AWS CodeDeploy API 可以将应用程序部署与您现有的软件交付工具链轻松集成。AWS CodePipeline、AWS CodeStar 和一些 AWS 合作伙伴针对持续集成和持续交付服务提供了预构建的 CodeDeploy 集成,让自动部署更新的应用程序变得非常简单。
详细了解 AWS CodeDeploy 定价