AWS 是一项可以将应用程序自动部署到任意实例的服务,这些实例包括 Amazon EC2 实例和在内部运行的实例。CodeDeploy 可完全自动部署您的应用程序,从而不需要进行人工操作。CodeDeploy 可通过滚动更新和部署运行状况追踪来防止您的应用程序在部署期间停止运行。CodeDeploy 可让您通过 AWS 管理控制台、CLI、软件开发工具包或 API 集中控制您的部署,从而使您能够启动、控制和监控您的部署。您可以查看部署进程,乃至每个实例上运行的各个设置活动。CodeDeploy 可追踪和存储您最近的部署历史记录,因此您可以调查时间轴并更改过去的部署历史记录。

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

CodeDeploy_Header

您可以通过 AWS CodeDeploy 在不同的实例组之间轻松重复应用程序部署过程。CodeDeploy 使用基于文件和命令的安装方式,这样可以部署任何应用程序和重用现有的设置代码。在分阶段测试实例中进行部署用于测试时所用的设置代码与您将修订版部署到您的开发实例中用于调试时所用的代码相同,该代码随后还用于在生产环境中进行部署,以发布给客户。消除部署中的人工操作提高了软件交付过程的速度和可靠性。

AWS CodeDeploy 与 Auto Scaling 集成有助于应用程序软件在动态变化的基础设施中保持为最新版。借助 Auto Scaling,您可根据您定义的条件 (如流量高峰) 自动扩展或缩小 Amazon EC2 容量。当新实例启动到 Auto Scaling 组中,CodeDeploy 就会接到通知,并在新实例添加到 Elastic Load Balancer 之前,在此实例上自动执行应用程序部署。

您可以使用 AWS CodeDeploy 在任意实例 (包括您自己的数据中心的实例) 运行的开发、测试以及生产环境中自动部署代码 (实例需要可以连接 AWS 公用终端节点)。这样一来您只需要使用一项服务即可在混合架构中稳定地部署应用程序。

应用程序通过 AWS CodeDeploy 更新到新版本时,不需要停机。CodeDeploy 可以在一组实例间执行滚动更新,其中,只有一小部分实例可随时离线。CodeDeploy 在实例间逐步运行,从而使应用程序保持可用并继续提供流量服务。CodeDeploy 还可以执行蓝/绿部署,使用最新修订版来预置和安装一组新实例。将新修订版安装到新实例之后,CodeDeploy 会将流量从您的生产实例重新路由到新实例。

部署运行状况追踪与滚动更新同时运行,从而保持应用程序在部署期间高度可用。如果部署了不良更新,将会发生意外停机。AWS CodeDeploy 会在多实例部署中监控每个实例更新的成功状态。您可以指定需要保持正常运行状况的实例最小数,如果实例更新失败次数过多,CodeDeploy 将停止部署。

您可以使用 AWS 管理控制台、AWS CLI 或任何 AWS 软件开发工具包随时停止执行中的应用程序部署。如果您想稍后继续已经停止的部署,您只需重新部署该修订版即可。您还可以通过重新部署以前的版本立即回滚。

您可以通过 AWS 管理控制台或使用 AWS CLI、软件开发工具包或 API 直接在目标实例中启动、控制和监控您所有应用程序的部署。您可以查看部署进程,乃至每个实例上运行的各个设置活动。如果发生故障,您可以查明确切的实例和出现故障的脚本,而无需登录到单个实例中。您还可以设置推送通知,通过 Amazon Simple Notification Service 提供的 SMS 或电子邮件信息监控部署状态。

应用程序可部署到多个部署组中。一个部署组由一组实例组成,如分阶段测试环境或生产环境。您可以在分阶段测试环境中测试修订版,然后在您感到满意时将该修订版部署到生产环境中。AWS CodeDeploy 使用标签或 Auto Scaling 组名称定义部署组。要将实例添加到部署组中,您只需为其加上标签,AWS CodeDeploy 将在您下次部署时将最新版本的应用程序自动部署到其中。

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

AWS CodeDeploy 使用基于文件和命令的安装方式,这样可以部署任何应用程序和重用现有的设置代码。CodeDeploy 使用一个 AppSpec 配置文件将应用程序中的文件映射到其主机目标,并指定在每个生命周期 (部署阶段) 中运行的命令,如“install dependencies”或“stop server”。这些命令可以是任何代码,如 shell 脚本、定制程序,甚至是配置管理工具。

使用 AWS CodeDeploy API 可以轻松地将应用程序部署与您现有的软件交付工具链集成。有些 AWS 合作伙伴已预先将其持续集成和持续交付服务与 CodeDeploy 集成,从而使您的最新应用程序版本能轻松地自动部署到您的实例中。