Logo
Section 1 / 6

CodeDeploy 简介

了解 AWS CodeDeploy 作为软件项目部署工具的更多功能。

导入

CodeDeploy 简介

了解 AWS CodeDeploy 作为软件项目部署工具的更多功能。

AWS CodeDeploy 简介

在构建软件以自动化任务时,我们通常也希望自动化将构建产物部署到目标环境的过程。在部署自动化中,我们通过使用自动化流程,将构建产物从一个环境逐步推进到另一个环境。AWS CodeDeploy 是一项 AWS 服务,可用于将构建产物部署到多种 AWS 服务,例如 EC2、Fargate,以及本地服务器。

CodeDeploy 的主要组件如下:

  • 应用(Application):用于存储版本信息、部署历史记录和部署组的容器。通常会为要部署的应用指定一个唯一名称。
  • 部署组(Deployment Group):存储部署过程中使用的设置和配置。部署组依赖于应用所选择的计算平台。可以为部署组配置回滚策略、触发器和告警等选项。
  • 部署配置(Deployment Configuration):CodeDeploy 在部署过程中使用的规则集合,包括成功与失败的判定条件。
  • 部署(Deployment):将构建产物发布到指定实例或目标的过程。
  • 应用版本(Application Revision):CodeDeploy 将部署到实例的构建产物版本,或用于部署的部署脚本(appspec.yml)。

AWS CodeDeploy 提供的功能

AWS CodeDeploy 提供了多项显著优势,主要包括以下几点:

  • 支持多种目标环境的部署:可通过 CodeDeploy 将应用部署到本地服务器、EC2 实例,以及无服务器平台如 AWS Lambda 或容器平台如 AWS ECS。
  • 完全自动化的部署:开发、测试和生产等不同环境之间的部署均可实现全自动。
  • 几乎零停机时间:CodeDeploy 采用滚动方式在目标实例上进行部署,确保应用程序持续可用。
  • 便捷的回滚机制:若部署过程中出现错误,可无缝执行回滚操作。
  • 集中化管理控制:通过 CodeDeploy 提供的 Web 界面,可轻松追踪部署状态;同时也可以使用 AWS CLI 与 CodeDeploy 进行交互。
  • 支持并发部署:可同时向一组实例执行部署操作。

部署配置

根据目标环境的不同,CodeDeploy 提供多种部署配置选项。AWS 默认提供三种部署配置,同时允许用户根据需求自定义配置。默认可用的部署配置如下:

  • CodeDeployDefault.AllAtOnce
  • CodeDeployDefault.HalfAtATime
  • CodeDeployDefault.OneAtATime

此外,也可根据实际需要自定义部署配置。

对于 AWS CodeDeploy,部署模式可分为以下三类:

  • 金丝雀部署(Canary Deployment):仅先向部分用户推送更新,确认稳定后再逐步扩大范围至全部用户。
  • 线性部署(Linear Deployment):以相等的增量逐步推进部署,每次增量之间的时间间隔相同。
  • 一次性部署(All-at-once Deployment):将全部流量瞬间切换到目标环境。

CodeBuild 的基础知识

创建应用程序和部署组