开箱即用的企业级CICD工具-云效流水线 Flow
看到这个标题,是不是就大概知道云效流水线 Flow的用途了,那就是企业级持续集成和持续交付工具。那么云效流水线 Flow 是否真的如此呢,我说了不算,我们来看一下官方文档的权威描述:【云效流水线 Flow 是一款企业级、自动化的研发交付流水线, 提供灵活易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。流水线是持续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线过程的持续交付。】
到这里,对于今天的主体 云效流水线 Flow 也就有了一个基础的认知在里面,那么下面带着这份认知,跟着我进行后续的操作吧!
资源领取
在开始云效流水线 Flow操作之前,首先领取一下免费资源,方便后续的操作,大家可以点击此处前往领取部署所需免费机器资源,我的账号是之前体验云效的时候就已经开通过流水线 Flow 了,那么点击页面右下角【资源】可以查看你领取到的资源使用情况
点击【资源】之后跳转到资源页面
可以看到资源的具体的 任务并发数、 已使用构建时长、最大构建时长等信息。
实操来啦
那么介绍了资源领取之后,我们就开始后续的云效流水线 Flow的实操了。进入云效流水线 Flow 首页 ,也就是我们刚才点击【资源】查看资源领取情况的页面,就是流水线 Flow 首页。
编排流水线
点击 流水线 Flow 右上角 【新建流水线】
在打开的流水线模版弹框选择个人比较熟悉的语言,个人是Java 开发者,那么我这里就选择 Java 语言
并且选择 【Java · 构建、部署到阿里云ECS/自有主机】 模板,点击【创建】进入流水线编排页面
在流水线编排页面,我们按照已经排好的位置顺序,从左到右,逐一补充资源,那么首先【添加流水线源】,点击【添加流水线源】,这里为了演示的流畅,我们选择【示例代码源】
点击【添加】完成流水线源的添加操作,下面继续后续的操作,点击【Java 构建上传】
点击【Java 构建】,如果需要修改构建命令的话,可以直接在这里修改
本次操作无需修改 Java 构建命令,继续点击【构建物上传】,打包路径按下图配置,需要将target/application.jar和deploy.sh两个文件打包到制品中,
配置完成后,点击右上角【仅保存】进入下一步操作,点击【主机部署】进入主机编辑页面,
新建主机组
这里看到我的账号是没有可供选择的【主机组】,因此这里是红框,那么点击【新建主机组】
在弹出的页面根据你的账号情况选择,这里我没有前两项的主机,那么我选择【免费体验主机】
在弹出的添加主机页面,点击【阿里云体验实验室】,进入到阿里云在线实验室操作页面,点击【再次实验】
进入在线实验室页面后,选择【公共资源体验】,点击【确认开启实验】
等待2-5分钟完成实验室资源的创建,创建完成之后
这两块就是我们后续可能会用到的内容,那么当前页面不要关!不要关!不要关!重要事情说三遍!!!回到刚才的流水线 Flow 添加主机页面,复制粘贴体验实验是对应的云服务器ECS资源
点击【保存】之后,自动回到编排流水线 Flow 的主机部署页面,并默认选择【主机组】为我们刚才创建的【5小时体验主机】,然后复制以下执行命令到【部署脚本】
mkdir -p /home/admin/application tar zxvf /home/admin/app/package.tgz -C /home/admin/application/ sh /home/admin/application/deploy.sh restart
如图所示
完成之后点击右上角的【保存并运行】看到运行配置信息,
运行流水线
输入运行备注后点击【运行】
到这里,编排流水线的操作就完成了,下面可以查看流水线的运行结果,正在构建...
运行结果
等待Java 构建上传,主机部署完成之后,可以看到如下页面
点击 【日志】可以看到Java 构建上传的整个过程的日志信息
这个Java 构建上传过程全部自动化,完全不用人工投入,比较省事省力,提高效率的同时也可以降低人工部署可能出现的操作上的失误。
点击【部署详情】可以看到部署相关的信息
如果想要查看部署日志,可以直接点击当次部署右边操作栏的【日志】按钮即可以看到主机部署日志,非常方便。那么到这里,整个Java + Maven + 主机构建部署的过程就执行完了,是不是觉得整个过程很简单,只需要配置好部署执行命令,后续的操作就不用自己上手操作了,很方便对吧。
关于 云效流水线 Flow 的一些看法
操作感受
下面来谈谈本次体验云效流水线 Flow 的感受,对于本次流水线从创建到编排到运行的整个过程,可以说操作比较顺畅,整个过程基本配置都是默认即可,那么从开发者的角度来看,并没有什么操作上的难度,编排流水线的操作相比目前公司用的 Jenkins 自动化部署项目来说,需要配置的内容更少,操作上更简单易行,并且减少了手动写部署脚本以及在服务器配置服务器指向等操作,对开发者来说是一个大福利,毕竟作为开发者,可以说操作服务器的机会不多,公司有专业的运维来管理。因此造成的结果就是当初在使用 Jenkins 时各种配置命令,确实为难了作为开发者的我们...
新人建议
针对新人来说,你确实不用太担心流水线 Flow 的操作难度,可以说会比你想象的简单,另外官方的文档也很详细的介绍了各个功能场景,
详细的内容小白新手可以直接去官方看文档即可,文档地址:云效流水线 Flow,如果觉得文档不想看,那么你也可以直接去视频专区看功能视频都是可以的
满意与建议
那么基于本次体验操作的整体过程来说,对于云效流水线 Flow的操作及功能,性能都很满意,你可能会疑惑,只是操作了,性能从哪儿看出来的,大家可以回看一下上面的构建和主机部署耗时,都是秒级,那么自然就是性能也满意了。下面在来提一点小建议,也是在使用云效流水线 Flow 过程中想到的。
在添加流水线源时,目前支持的流水线源的工具有以下代码源
这里需要说明的是,不管你选择什么来源的代码源,你都需要保证你的代码源是公网可访问,那么这一点对于传统行业,比如说一直有着自己内网服务器部署的 SVN 管理代码源,那么在这里选择 SVN 添加代码源之后,账户名密码都正确,但是网络是不互通的,因此在Java 构建时还是无法拉去 SVN 代码仓库的代码。这里建议后续是否可以考虑白名单的方式,可以通过配置白名单来拉去内网服务器的 SVN 代码仓库的代码呢?
下面再说说新建主机组,在新建主机组页面我们可以看到的时候有三个选择【阿里云ECS】、【自由主机(联通公网)】、【免费体验主机】
那么还是说传统行业,目前的服务器并没有上云,都是自己购买的服务器,且只开通了内网访问,当然是为了防止公网访问服务器资源时导致服务器被攻击或者说被破坏,那么这个时候其实就无法兼容当下传统行业现有的服务器资源,如果说为了极致的CICD体验而不考虑成本,对于企业来说似乎也不现实。那么同样是否可以支持通过白名单的方式,可以让内网服务器即使不开通公网服务也一样可以连接云效流水线 Flow 创建主机组呢?
流水线Flow 优势
下面再来说说流水线Flow 的优势,功能以及操作上,自然是没的说,相对与传统部署方案来说,大大节省了部署操作和时间,更有利于企业的持续集成和持续交付。下面再来谈谈计费方面,云效流水线 Flow 并不单独计费,而是 整体上通过 云效来计费,分为基础班和高级版,
这个主要看企业的代码管理容量需求和流水线运行时长需求,通常情况下一次部署几十秒,那么免费版的足够用,这样从成本上来说可以免去企业担心引入流水线 Flow 而带来的成本增加问题。那么整体下来看的话,云效流水线 Flow 从功能、性能、成本上都比较满足企业需求。个人是比较推荐团队使用云效流水线 Flow 的,毕竟大家作为开发者习惯大致相似,不乐意去弄服务器操作这些东西,通过流水线 Flow 可以极大的方便开发者操作,且不用去过多理会服务器操作,因此个人还是很推荐应用上云的企业使用这款CICD工具。