暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

持续集成与持续部署(三)

达摩院首座 2019-01-11
279

        AWS的CodeBuild实现了构建和测试代码的自动化,今天我们将介绍CodeDeploy,它和CodeBuild并没有太大关联,两者可以独立运行,但在软件开发过程中,串联使用的效果更佳。

        再定义完应用名和部署组名后,进入部署方式的选择,CodeDeploy提供了两种部署方式,分别是就地部署(In-place deployment)和迭代部署(Blue/green deployment)。前者意为直接用最新版本替换当前的运行程序,期间可能有文件夹和目录结构的更新,CodeDeploy会自动将相关前端应用指向新的目录位置;后者更适用于有负载均衡的生产场景,比如当前程序有60个实例运行在负载均衡器下,最新版本同样有这些实例。程序可以在指定时间切换,同时保留之前的版本,以便在新版本运行故障时回切。这里我们从生产出发,选择迭代部署(Blue/Green Deployment)

        在环境配置中,建议选择复制自动定标组(Automatically copyAuto Scaling group),意为将现行环境的资源分配情况复制到最新版本中并有自适应功能,以保证迭代后对并发压力的应对能力。

        在这个配置的下方我们可以看到当前正在运行的所有实例的ID列表以及当前是否启用了负载均衡,这跟我们之后所要配置的迭代方案有密切关系。

        在部署设置中,迭代部署的默认配置是一次仅更新一个实例,且立即切换客户端的访问流量到新实例,对于旧实例在切换一小时后停止运行。

        当然我们也可以修改这个默认配置,建议是既然要立即切换客户端访问实例,何不一次性替换掉所有的实例。至于旧实例的保留时间,看内部规定或外部法律,这里不做推荐。

        最后输入具有部署权限的账号名称,点击Create Application即可完成预部署。

        在我们上期讲CodeBuild的时候谈到了Amazon S3制品库,这里我们也可以根据提示直接将S3中的制品位置输入到脚本中完成部署。

        值得一提的是,通过CodeDeploy,不仅可以将程序部署在AWS上,还可以部署在本地环境中。

UneedR∣大数据与AI学习园地



长按,识别二维码,加关注

文章转载自达摩院首座,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论