AWS CodeDeploy 是一项可以将应用程序自动部署到任意实例的服务,这些实例包括 Amazon EC2 实例和在内部运行的实例。CodeDeploy 可完全自动化您的应用程序部署,从而不需要进行人工操作。CodeDeploy 可通过滚动更新和部署运行状况追踪来防止您的应用程序在部署期间停止运行。CodeDeploy 可让您通过 AWS 管理控制台、CLI、软件开发工具包或 API 集中控制您的部署,从而使您能够启动、控制和监控您的部署。您可以查看部署进程,乃至每个实例上运行的各个设置活动。CodeDeploy 可追踪并存储您最近的部署历史记录,因此您可以调查时间轴并更改过去部署的历史记录。
AWS CodeDeploy 是平台,与语言无关,可与任何应用程序协作,因此您可以再用您现有的设置代码。您还可以通过使用 AWS CodeDeploy API 将您的应用程序部署与您现有的软件交付过程或持续交付工具链集成。
您可以通过 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 配置文件将您应用程序中的文件映射到其目标主机,并指定在每个生命周期事件(部署阶段)时运行的命令(如“安装依赖项”或“停止服务器”)。这些命令可以是任何代码,如外壳脚本、定制程序,甚至是配置管理工具。
使用 AWS CodeDeploy API 可以轻松地集成应用程序部署与您现有的软件交付工具链。有些 AWS 合作伙伴提供 CodeDeploy 与其持续集成和持续交付服务的预建集成,从而使最新的应用程序构建能轻松地自动部署到您的 实例中。