小编给大家分享一下AWS自动部署工具codedeploy如何部署,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1)在AWS lambda平台上部署:
三大部分:要部署的内容 --> 部署的配置 --> 更新的lambda函数版本
部署的流程:上传修订的应用程序-->创建一个应用程序-->指定部署组-->指定部署的配置-->指定一个appspec文件-->进行部署-->检查部署结果-->如果出现问题再根据需要重新部署。
2)在AWS ECS 平台上的部署:
部署前提:
在创建codedeploy部署组时,必须指定包含ECS服务的ECS集群;
codedeploy必须已经启用ECS服务,默认情况下,ECS部署已启用ECS服务,当创建部署组时需要选择部署ECS集群的ECS服务;
在要随ECS部署一起更新的ECS服务必须使用ELB,可以使用 应用程序负载均衡器 或 Network Load Balancer。官方建议使用 应用程序负载均衡器,以便可以利用动态端口映射和基于路径的路由和优先级规则等功能。在创建 CodeDeploy 应用程序的部署组时,需要指定负载均衡器;
在创建部署组时,您需要指定一个或两个侦听器,侦听器是负载均衡器将流量定向到目标组的。(如果使用ECS控制台创建ECS服务,系统创建侦听器)
一个ECS部署需要2个目标组,一个用于ECS程序的原始任务集,一个用于ECS程序的替换任务集。在部署过程中,codedeploy会创建一个替换的任务集,并将流量替换到新的任务集,在创建部署组时需要指定目标组。(在部署期间,CodeDeploy 会确定哪个目标组与 ECS 服务中状态为 PRIMARY
(这是原始任务集)的任务集关联,并将一个目标组与其关联,然后将另一个目标组与替换任务集关联。如果执行其他部署,则与当前部署的原始任务集关联的目标组将与下一个部署的替换任务集关联)。
需要在 CodeDeploy 应用程序的 AppSpec file中指定任务定义的 ARN(运行包含 ECS 应用程序的 Docker 容器需要任务定义);
需要在codedeploy应用程序的appspec file中指定容器的名称,appapec file中指定的容器必须是ECS任务定义的之一。(Docker 容器 包含您的软件应用程序需要运行的所有内容。负载均衡器将流量定向到 Amazon ECS 应用程序任务集中的容器);
在ECS部署期间,负载均衡器会将流量定向到您 CodeDeploy 应用程序的 AppSpec file所指定容器上的端口,需要在 CodeDeploy 应用程序的 AppSpec file中指定端口。
部署组件:要部署的内容 --> 部署的配置 --> ECS的替换任务集
部署工作流程:创建一个ECS部署,并将部署控制器设置为codedeploy--> 创建一个codedeploy应用程序-->创建一个部署组-->指定一个APPspec file-->部署-->检查部署结果-->出现问题再回到部署环节
3)EC2或本地计算平台上的部署
部署组件:要部署的内容--> 部署的配置 --> 部署组和缩放组
主要的部署工作流程:创建一个应用程序-->指定部署组-->指定部署的配置-->更新需要部署的内容-->部署-->检查部署-->出现问题再回到部署环节
步骤详解:
1.通过指定唯一表示您要部署的应用程序修订和表示应用程序的计算平台的名称来创建应用程序;
2.设置部署组时,要指定部署类型和要部署应用程序修订的实例。就地部署将使用最新的应用程序修订更新实例。蓝/绿部署向负载均衡器注册部署组的一组替换实例并取消注册原始实例、可以指定应用于实例的标签或 Amazon EC2 Auto Scaling 组名称、在所有情况下实例必须配置为在部署中使用(即,它们必须已标记或属于 Amazon EC2 Auto Scaling 组),并且已安装并运行 CodeDeploy 代理、AWS提供了一个 AWS CloudFormation 模板,您可使用该模板基于 Amazon Linux 或 Windows Server 快速设置 Amazon EC2 实例,还提供了独立的 CodeDeploy 代理、配置Amazon SNS 通知 — 创建触发器,以便在部署和实例中发生指定的事件(例如,成功或失败事件)时,向 Amazon SNS 主题的订阅者发送通知、基于警报的部署管理 — 实现 Amazon CloudWatch 警报监控,以在指标超出或低于 CloudWatch 中设置的阈值时停止部署、自动部署回滚 — 配置部署,使之在部署失败或达到警报阈值时自动回滚到已知良好的版本。
3.指定部署配置,以指明多少实例要同时部署应用程序修订并描述成功和失败的条件;
4.将应用程序修订上传到 Amazon S3 或 GitHub。除了要部署的文件和要在部署期间运行的所有脚本外,您还必须包含application specification file(AppSpec file)。该文件包含部署说明,例如,要将文件复制到的每个实例上的位置,以及运行部署脚本的时间。
5.将应用程序修订部署到部署组。部署组中每个实例的 CodeDeploy 代理将您的应用程序修订从 Amazon S3 或 GitHub 复制到该实例。然后,CodeDeploy 代理将取消捆绑修订,使用 AppSpec file将相应文件复制到指定的位置并执行任何部署脚本。。
6.检查部署结果
7.重新修订,重新部署。
注意:以下是开始前需要做的{
设置实例
您需要先设置实例,然后才能首次部署应用程序修订。如果一个应用程序修订需要三个生产服务器和两个备份服务器,您将启动或使用五个实例。
要手动预配实例,请执行以下操作:
在实例上安装 CodeDeploy 代理。CodeDeploy 代理可安装在 Amazon Linux、Ubuntu Server、RHEL 和 Windows Server 实例上。
如果要使用标签来标识部署组中的实例,请启用标记。CodeDeploy 依赖标签来标识实例并将其分组到 CodeDeploy 部署组。尽管入门教程同时使用了键和值,但是您可以只使用键或值为部署组定义标签。
启动附加有 IAM 实例配置文件的 EC2 实例。IAM 实例配置文件必须附加到启动的 EC2 实例,以便让 CodeDeploy 代理验证该实例的身份。
创建服务角色。提供服务访问权,以便 CodeDeploy 可以展开您的 AWS 账户中的标签。
对于初始部署,AWS CloudFormation 模板将为您完成所有这些操作。它基于已安装 CodeDeploy 代理的 Amazon Linux 或 Windows Server 创建并配置单个新 Amazon EC2 实例。
注意
对于蓝/绿部署,您可以选择使用您已有的用于替换环境的实例,或者也可以选择让 CodeDeploy 在部署过程中为您预置新实例}
以上是“AWS自动部署工具codedeploy如何部署”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注天达云行业资讯频道!