导入
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.AllAtOnceCodeDeployDefault.HalfAtATimeCodeDeployDefault.OneAtATime
此外,也可根据实际需要自定义部署配置。
对于 AWS CodeDeploy,部署模式可分为以下三类:
- 金丝雀部署(Canary Deployment):仅先向部分用户推送更新,确认稳定后再逐步扩大范围至全部用户。
- 线性部署(Linear Deployment):以相等的增量逐步推进部署,每次增量之间的时间间隔相同。
- 一次性部署(All-at-once Deployment):将全部流量瞬间切换到目标环境。