产品介绍
说到流水线,想必大家第一能想到的势必是装配厂里的情形,着实,流水线这个词也来自于工业,它是工业上的一种生产方式,指每一个生产单位只专注处理某一个片段的工作,可节约工厂生产成本,一定程度上节约生产工人数量,实现一定程度的自动化生产,从而提高工作效率及产量。
在介绍流水线前很有必要知道DevOps是啥,DevOps这个词,其实就是Development和Operations两个词的组合。维基百科上的定义,是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。从目标来看,DevOps就是让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠。(有想进一步了解DevOps前世今生的可以阅读下这篇博文,非常详细。)
而我们这里介绍的流水线其实是DevOps中非常重要且必须的一环,是一个自动化的过程,它将软件开发的各个阶段连接起来,从代码的编写、构建、测试,到部署和交付给最终用户的全过程。
云效流水线 Flow 是一款企业级、自动化的持续集成和持续交付工具,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线的CI/CD全流程,帮助企业高质量、高效率的交付业务。
下面的产品全景图非常直观地展现了云效流水线 Flow的结构,如下:
领取试用
评测活动首页很清晰地提供了试用连接,点击这里就可以前往获取对应的免费资源了。如下:
这里我们直接点击左侧云效DevOps的“立即开启”,来到云效设置页,如下:
根据实际需要,填写名称及规模,随后点击“立即创建”,来到云效工作台,如下:
这里页面会根据选择的不同角色呈现不一样的工作台预览效果,比如选择研发者,首页是这样的:
点击页面上的“开始工作”,便来到了云效的工作平台,如下:
继续点击云效产品“流水线”,便来到了本次评测活动的产品工作后台,如下:
到这,领取试用就结束了,接下来将通过具体实践来体验产品功能。
产品体验
在云效工作台中,点击右侧的“新建流水线”按钮,如下:
提供了两种创建方式,可视化编排和YAML编排。并内置了31个企业级的模板供直接使用,非常方便高效。当然,你还可以点击“新手快速配置引导”,通过引导式来创建你的流水线。接下来就通过两个小实践看看Flow是如何工作的。
JAVA构建应用
- 创建流水线
在选择流水线模板对话框,单击Java,选择Java·构建、部署到阿里云ECS/自由主机,单击创建。如下:
- Java构建上传
展开任务步骤里面的Java构建,选择正确的JDK版本和Maven版本。展开任务步骤里面的构建物上传,其它默认,打包路径可以修改为自己实际的项目路径。如下:
- 主机部署
选好制品,然后新建主机组,然后写好下载路径。如下:
保存并运行,耐心等待流水线完成,通过访问站点即可浏览到java-web应用了,如下:
Node.js部署小游戏
- 上传源码
前往并登录云效代码管理Codeup,在代码库页面,单击导入代码库或导入库。如下:
在导入代码库对话框中,选择URL导入,在源代码库地址中输入如下地址,单击确定。如下:
耐心等待片刻并刷新页面,返回如下页面,表示代码导入成功。如下:
- 创建流水线
在选择流水线模板对话框,单击Node.js,选择Node.js·ECS部署【人生重开模拟器】小游戏模板,单击创建。如下:
- 添加流水线源
在流程配置页面,单击添加流水线源。在添加流水线源面板,选择Codeup,单击添加服务连接。代码仓库选择lifeRestart,默认分支选择master,然后单击添加。如下:
- 主机部署
在流程配置页面,单击主机部署。在编辑面板,制品选择默认构建的制品。在编辑面板,主机组选择新建主机组。如下:
在主机组管理页面,单击新建主机组。在新建主机组面板,主机组名称改为flow测评,单击确定。如下:
在flow测评主机组中,单击添加新主机。如下:
在接入新主机面板,添加方式选择阿里云ECS,单击添加服务连接。如下:
在新建服务连接面板,在服务授权/证书右侧单击新建,然后选择使用范围,单击创建。如下:
在接入新主机面板,地域选择云服务器ECS所在区域,这里我选择华东1(杭州),在可添加的主机列表中选择您的云服务器ECS,单击保存。如下:
在flow测评主机组中,等待添加的云服务器ECS实例的安装进度为成功。返回云效Flow页面,主机组选择刚才新建的flow测评主机组。如下:
- 运行流水线
在编辑面板中下滑,您可以看到默认的部署脚本和部署策略。这里无需改动,直接单击保存并运行。输入ECS的公网IP。如下:
部署过程完成可视化,你可以通过页面看到部署各阶段的全过程,每个步骤都能看到耗时情况,如下:
部署耗时1分34秒,成功部署的流水线如下图所示,单击活动校验下方的访问站点或者手机扫描二维码,即可看到成功部署的人生模拟器游戏啦。
竞品分析
下面就当下使用率较高的几款流水线工具进行对比,看看谁是你心目中的NO.1。
产品形态
Jenkins的图形化界面是这样的,对于小白来说并不友好,需要比较熟悉操作才可以上手。如下:
腾讯的蓝鲸持续集成平台(蓝盾)提供了流水线、代码检查、代码库、凭证管理、环境管理、研发商店、编译加速、制品库 8 大核心服务。整个界面的调调还是熟悉的海洋蓝,如下:
Kubesphere是在Kubernetes之上构建的以应用为中心的多租户容器平台,提供全栈的IT自动化运维的能力,提供了运维友好的向导式操作界面。如下:
Rainbond的WEB控制台构建在Kubernetes之上,利用其分布式系统的基础能力,提供了一层更加友好的抽象接口。如下:
Zadig 基于Kubernetes研发的自助式云原生DevOps平台,界面如下:
从产品形态上来看,云效Flow体现就是一个简约直观实用、我个人比较倾向于Kubesphere的界面设计风格,整体体现的就一个清爽。
产品规格
阿里云 云效Flow针对不同服务提供了不同的规格,如下:
- 公有云产品
- 公有云服务
- 专有云
腾讯的蓝鲸持续集成平台(蓝盾)产品规格相对简单,只有社区版和企业版。
产品功能
Jenkins
的功能包括:
- 持续集成:Jenkins可以自动拉取代码、构建应用程序并运行测试,确保每次代码提交都能及时检查和集成到主干。
- 持续部署:它支持自动部署应用程序到目标环境,如测试、预生产和生产环境。Jenkins通过插件和脚本的方式提供了灵活的部署配置。
- 扩展性:Jenkins的插件生态系统非常丰富,开发团队可以通过安装插件来扩展其功能。这些插件覆盖了各种用例,从构建工具、版本控制系统到通知和报告工具等。
- 可视化界面:Jenkins提供了直观的用户界面,可以查看构建历史、日志输出和测试报告等信息,帮助团队进行故障排查和性能分析。
云效流水线 Flow
是一款企业级、自动化的研发交付流水线, 提供灵活易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。流水线是持续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线过程的持续交付。
腾讯蓝盾
提供了流水线、代码检查、代码库、凭证管理、环境管理、研发商店、编译加速、制品库 8 大核心服务,多重组合,满足企业不同场景的需求。
KubeSphere
为用户提供构建企业级 Kubernetes 环境所需的多项功能,例如多云与多集群管理、Kubernetes 资源管理、DevOps、应用生命周期管理、微服务治理(服务网格)、日志查询与收集、服务与网络、多租户管理、监控告警、事件与审计查询、存储管理、访问权限控制、GPU 支持、网络策略、镜像仓库管理以及安全管理等。
Rainbond
是一个云原生应用管理平台,使用简单,主要功能包括应用开发环境、应用市场、微服务架构、应用交付、应用运维、应用级多云管理等。
Zadig
支持定制的企业级 XOps 敏捷效能看板,深度集成多种企业级平台,并通过项目模板化批量快速接入,实现数千个服务的一键纳管治理。
分析总结
- Jenkins:Jenkins 是一个开源的 CI/CD 工具,拥有庞大的插件库和可扩展性。然而,Jenkins 的配置和管理可能相对复杂,需要一定的学习成本。此外,Jenkins 在处理大规模项目时可能需要更多的系统资源。
- 腾讯的蓝盾:蓝盾是腾讯推出的免费并开源的 CI 服务,提供了丰富的功能和灵活的配置选项。然而,对于中小企业来说,可能需要考虑其学习曲线和与现有系统的集成成本。
- Rainbond:Rainbond 是一个云原生应用管理平台,提供了从开发到部署的全流程管理。然而,它可能更适用于云原生应用的开发和管理,对于传统应用的支持可能有限。
- KubeSphere:KubeSphere 是一个基于 Kubernetes 的容器平台,提供了全面的容器应用管理服务。然而,KubeSphere 的安装和配置可能相对复杂,需要一定的技术背景。
- Zadig:Zadig 是一个面向开发者的自助式云原生 DevOps 平台,提供了简洁易用的界面和强大的功能。然而,Zadig 可能更适用于云原生应用的开发和部署,对于传统应用的支持可能有限。
通过如上对比分析,可以很直观地得出云效Flow优劣势,如下:
- 云效 Flow 的优势:
- 企业级功能:云效 Flow 作为一个企业级的一站式研发协同平台,提供了丰富的功能和强大的性能,满足企业复杂的业务需求。
- 易用性:云效 Flow 提供了直观的用户界面和简洁的操作流程,使得用户可以快速上手,减少学习成本。
- 集成性:云效 Flow 支持与多种主流开发工具和框架的集成,方便用户进行统一的研发管理。
- 可视化:云效 Flow 提供了可视化的流水线编排和管理功能,使得用户可以直观地查看和管理整个研发流程。
- 云效 Flow 的不足:
- 成本:相比 Jenkins 这样的开源工具,云效 Flow 作为商业产品,可能需要一定的成本投入。
- 灵活性:由于云效 Flow 提供了较为完善的功能和界面,可能会在某些特定场景下略显笨重,不够灵活。
试用总结
1)角色、CI/CD工具使用经验及团队需求
- 我的角色:作为软件开发团队的项目经理,我负责协调和管理团队的开发流程。
- CI/CD工具使用经验:之前我们的团队使用过Jenkins、GitLab CI等CI/CD工具及KubeSphere。
- 团队对CI/CD工具的要求:
- 简单易用:工具需要易于上手,减少学习成本。
- 稳定性:工具需要稳定可靠,避免频繁出现问题影响开发进度。
- 灵活性:支持自定义配置,满足团队特定的开发流程需求。
- 安全性:提供必要的安全措施,保护代码和构建过程的安全。
2)Flow的新人上手体验
- Flow在新人上手方面相对简单,其界面友好且提供了清晰的引导,这主要得益于其直观的可视化界面和拖拽式构建流程。这种设计大大降低了新手的上手难度,使得用户可以通过简单的拖拽和配置来构建CI/CD流水线,而无需深入了解底层的构建和部署细节。
- 可能的阻碍包括对于新工具的固有抵触心理,以及对于特定配置项的不熟悉。为了降低新人上手的阻碍,云效Flow提供了一些入门指导和教程,帮助用户更好地理解和使用CI/CD工具。同时,用户也可以参考社区中的其他用户的经验和分享,来更快地掌握云效Flow的使用技巧和方法。
3)Flow的产品功能、性能、开放性
- 产品功能:Flow提供了丰富的功能,包括代码管理、构建、测试、部署等,能够满足我们团队的大部分需求。特别是其可视化配置界面,使得配置过程更加直观和方便。
- 性能:Flow在性能方面表现良好,能够满足我们团队的构建和测试需求。在高并发情况下,Flow也能保持稳定的性能。
- 开放性:Flow支持多种插件和扩展,使得我们可以根据团队需求进行定制。同时,Flow也提供了API接口,方便与其他系统进行集成。
- 满意的地方:Flow的可视化配置界面和丰富的插件库是其最大的优点,使得配置和管理变得简单和灵活。
- 不足的地方:Flow在某些特定功能方面可能不如某些商业CI/CD工具强大,例如对于复杂的部署场景的支持可能有所不足。
4)Flow与其他CI/CD工具的对比及推荐意愿
- 成本:相比一些商业CI/CD工具,Flow在成本方面更具优势,尤其是对于中小型团队来说。
- 功能:Flow在功能方面已经足够强大,能够满足大部分团队的需求。但在某些特定领域,如复杂的部署场景,可能需要结合其他工具使用。
- 性能:Flow在性能方面表现良好,能够满足大部分团队的构建和测试需求。
- 竞争力:综合考虑成本、功能和性能,Flow在CI/CD工具市场上具有一定的竞争力。
- 推荐意愿:我愿意推荐团队使用云效流水线Flow。其简单易用、功能丰富、性能稳定的特点使得它成为我们团队的首选CI/CD工具。同时,其开放性和可扩展性也使得我们能够根据团队需求进行定制和扩展。