如果您使用Java进行开发,使用Jar/War产品交付最终运行在ECS或您自己主机上的产品,那么本文档可以帮助您实现研发协同自动化过程。用户需求一般来说,用户使用主机的部署场景如下:对源代码进行一定的质量检查,如单元测试,代码扫描将源代码构建成可交付产品,如Jar/War测试产品环境,验证使用完成验证产品的上线部署需要不同角色的参与:开发、测试、运维。如何保证不同参与方可以使用统一的交付流程进行协作,是CloudEffectFlow交付流水线要解决的主要问题。在这种场景下,云栖实验室提供了相应的资源。在这里,云效解决方案结合云效持续交付流水线和主机部署能力,为应用持续交付提供了良好的基础保障,如图:开发者提交代码变更到代码库中,CloudEffect在监控变更代码库。一旦代码发生变化,会自动触发CloudEffect持续部署流水线中构建任务的运行,包括代码检查、构建、测试部署、测试验证、生产部署。其中,构建完成后,生成产品包并自动上传到OSS仓库。在部署阶段(测试环境的部署和生产环境的部署),根据不同的部署策略,从产品仓库获取最新版本,通过主机传递。部署到不同的环境,这里的资源可以是阿里云资源,也可以是自建主机资源。创建流水线接下来以一个JavaSpringBoot代码库为例,讲解如何构建并部署到阿里云ECS服务器上。1、使用自己的账号登录云霄(https://devops.aliyun.com),点击页面左上角的dock,选择流水线进入Flow。2.点击右上角【新建流水线】,进入流水线创建向导页面。3.选择合适的模板并单击创建。配置代码库1.创建管道后,会自动弹出添加代码源的窗口。这里选择Flow提供的示例代码源,添加构建上传任务的配置。1.修改“JavaBuildandUpload”任务,增加打包路径。填写deploy.sh。该文件存在于代码库中,其中包含在ECS上启动应用程序的脚本。为了进行后续的主机部署,这个文件也需要打入压缩包中。在后续的主机部署任务中,您可以看到如何使用deploy.sh。该配置中指定了target/和deploy.sh两个路径,因此Flow会将这两个文件(文件夹)打包成一个压缩包并归档。在Flow中,我们称之为产品,该产品也会在后续的主机部署任务中使用。连接ECS服务器点击页面右侧切换到WebTerminal连接ECS服务器。配置部署任务1、接下来配置主机部署任务,在产品下拉框中选择“产品名称.default”,即上一步“Java构建上传”步骤存档的产品。为了配置主机组,您需要先创建一个,单击“新建主机组”。2.参考以下步骤添加ECS主机。A。选择“自己的主机”;b.复制self-host接口的命令;C。将复制的命令粘贴到ECS服务器中并安装;d.代理插件安装成功后,自主机界面会自动获取主机信息;e.进一步填写自有主机信息,如下图;单击“保存”完成添加自有主机。接下来配置部署脚本:下载路径:表示要在本机的“构建上传”任务中下载压缩包的位置。本例中值为:/home/admin/app/package.tgz执行用户:您想以哪个用户身份执行脚本,本例中值为:root部署脚本:执行脚本的具体内容在机器上,此示例中的值为:mkdir-p/home/admin/application/tarzxvf/home/admin/app/package.tgz-C/home/admin/application/sh/home/admin/application/deploy.sh重启4。部署策略配置Pausemode:你希望一个主机组在什么样的机器上使用Pause模式,比如第一批暂停,每批暂停,或者不暂停。建议使用第一批暂停。第一批发布后,观察在线服务。如无异常,可继续放行剩余批次。b.批次数:希望主机组的机器分几批发布。比如一共4台机器,分为两批,每批同时发布2台机器。添加手动卡点为了保证审核通过的产品能够进入部署环境,需要添加手动卡点。这里假设这个环境是一个测试环境,需要测试管理员批准才能进入。首先需要在企业中创建一个角色“测试管理员”,并将企业用户“张三”的角色设置为该角色。以上演示了如何添加卡点进入测试环境。生产环境添加卡点类似,这里不再赘述,类似配置即可。运行流水线配置好后,点击“保存运行”,触发流水线:扫描、单测、构建上传等任务自动完成,停在卡点:普通人无权限通过,切换到张三的账号,他们可以通过也可以拒绝:点击“验证通过”,管道会进入主机部署的任务,点击“部署详情”可以看到更多的部署信息:点击查看日志,可以看到部署的详细信息执行日志:日志显示部署成功,然后访问宿主机的公网接口可以看到服务可以正常访问:$curlhttp://47.244.109.14:8080/SpringBoot的问候!回滚如果发布完成后在线服务出现问题,需要快速回滚。CloudEffectFlow提供了直接通过历史版本回滚的能力。在流水线运行页面点击“部署历史”,然后选择对应的部署任务,即可看到该部署任务的所有部署成功记录。在版本4中点击“回滚”可以回滚到这个版本。
