云效流水线 Flow测评

简介: 从入门到实践,多方位带你领略云效Flow的优与劣

产品介绍

说到流水线,想必大家第一能想到的势必是装配厂里的情形,着实,流水线这个词也来自于工业,它是工业上的一种生产方式,指每一个生产单位只专注处理某一个片段的工作,可节约工厂生产成本,一定程度上节约生产工人数量,实现一定程度的自动化生产,从而提高工作效率及产量。

在介绍流水线前很有必要知道DevOps是啥,DevOps这个词,其实就是Development和Operations两个词的组合。维基百科上的定义,是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。从目标来看,DevOps就是让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠。(有想进一步了解DevOps前世今生的可以阅读下这篇博文,非常详细。)

而我们这里介绍的流水线其实是DevOps中非常重要且必须的一环,是一个自动化的过程,它将软件开发的各个阶段连接起来,从代码的编写、构建、测试,到部署和交付给最终用户的全过程。

云效流水线 Flow 是一款企业级、自动化的持续集成和持续交付工具,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线的CI/CD全流程,帮助企业高质量、高效率的交付业务。

下面的产品全景图非常直观地展现了云效流水线 Flow的结构,如下:

image.png

领取试用

评测活动首页很清晰地提供了试用连接,点击这里就可以前往获取对应的免费资源了。如下:

image.png

这里我们直接点击左侧云效DevOps的“立即开启”,来到云效设置页,如下:

image.png

根据实际需要,填写名称及规模,随后点击“立即创建”,来到云效工作台,如下:

image.png

这里页面会根据选择的不同角色呈现不一样的工作台预览效果,比如选择研发者,首页是这样的:

image.png

点击页面上的“开始工作”,便来到了云效的工作平台,如下:

image.png

继续点击云效产品“流水线”,便来到了本次评测活动的产品工作后台,如下:

image.png

到这,领取试用就结束了,接下来将通过具体实践来体验产品功能。

产品体验

在云效工作台中,点击右侧的“新建流水线”按钮,如下:

image.png

提供了两种创建方式,可视化编排和YAML编排。并内置了31个企业级的模板供直接使用,非常方便高效。当然,你还可以点击“新手快速配置引导”,通过引导式来创建你的流水线。接下来就通过两个小实践看看Flow是如何工作的。

JAVA构建应用

  • 创建流水线

选择流水线模板对话框,单击Java,选择Java·构建、部署到阿里云ECS/自由主机,单击创建。如下:

image.png

  • Java构建上传

展开任务步骤里面的Java构建,选择正确的JDK版本和Maven版本。展开任务步骤里面的构建物上传,其它默认,打包路径可以修改为自己实际的项目路径。如下:

image.png

image.png

  • 主机部署

选好制品,然后新建主机组,然后写好下载路径。如下:

image.png

保存并运行,耐心等待流水线完成,通过访问站点即可浏览到java-web应用了,如下:

image.png

Node.js部署小游戏

  • 上传源码

前往并登录云效代码管理Codeup,在代码库页面,单击导入代码库或导入库。如下:

image.png

在导入代码库对话框中,选择URL导入,在源代码库地址中输入如下地址,单击确定。如下:

image.png

耐心等待片刻并刷新页面,返回如下页面,表示代码导入成功。如下:

image.png

image.png

  • 创建流水线

选择流水线模板对话框,单击Node.js,选择Node.js·ECS部署【人生重开模拟器】小游戏模板,单击创建。如下:

image.png

  • 添加流水线源

流程配置页面,单击添加流水线源。在添加流水线源面板,选择Codeup,单击添加服务连接。代码仓库选择lifeRestart,默认分支选择master,然后单击添加。如下:

image.png

  • 主机部署

流程配置页面,单击主机部署。在编辑面板,制品选择默认构建的制品。在编辑面板,主机组选择新建主机组。如下:

image.png

主机组管理页面,单击新建主机组。在新建主机组面板,主机组名称改为flow测评,单击确定。如下:

image.png

flow测评主机组中,单击添加新主机。如下:

image.png

接入新主机面板,添加方式选择阿里云ECS,单击添加服务连接。如下:

image.png

新建服务连接面板,在服务授权/证书右侧单击新建,然后选择使用范围,单击创建。如下:

image.png

在接入新主机面板,地域选择云服务器ECS所在区域,这里我选择华东1(杭州),在可添加的主机列表中选择您的云服务器ECS,单击保存。如下:

image.png

flow测评主机组中,等待添加的云服务器ECS实例的安装进度成功。返回云效Flow页面,主机组选择刚才新建的flow测评主机组。如下:

image.png

image.png

  • 运行流水线

在编辑面板中下滑,您可以看到默认的部署脚本部署策略。这里无需改动,直接单击保存并运行。输入ECS的公网IP。如下:

image.png

image.png

部署过程完成可视化,你可以通过页面看到部署各阶段的全过程,每个步骤都能看到耗时情况,如下:

image.png

image.png

部署耗时1分34秒,成功部署的流水线如下图所示,单击活动校验下方的访问站点或者手机扫描二维码,即可看到成功部署的人生模拟器游戏啦。

image.png

image.png

竞品分析

下面就当下使用率较高的几款流水线工具进行对比,看看谁是你心目中的NO.1。

产品形态

Jenkins的图形化界面是这样的,对于小白来说并不友好,需要比较熟悉操作才可以上手。如下:

image.png

腾讯的蓝鲸持续集成平台(蓝盾)提供了流水线、代码检查、代码库、凭证管理、环境管理、研发商店、编译加速、制品库 8 大核心服务。整个界面的调调还是熟悉的海洋蓝,如下:

image.png

Kubesphere是在Kubernetes之上构建的以应用为中心的多租户容器平台,提供全栈的IT自动化运维的能力,提供了运维友好的向导式操作界面。如下:

image.png

Rainbond的WEB控制台构建在Kubernetes之上,利用其分布式系统的基础能力,提供了一层更加友好的抽象接口。如下:

image.png

Zadig 基于Kubernetes研发的自助式云原生DevOps平台,界面如下:

image.png

从产品形态上来看,云效Flow体现就是一个简约直观实用、我个人比较倾向于Kubesphere的界面设计风格,整体体现的就一个清爽。

产品规格

阿里云 云效Flow针对不同服务提供了不同的规格,如下:

  • 公有云产品

image.png

  • 公有云服务

image.png

  • 专有云

image.png

腾讯的蓝鲸持续集成平台(蓝盾)产品规格相对简单,只有社区版和企业版。

image.png

产品功能

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 的优势:
  1. 企业级功能:云效 Flow 作为一个企业级的一站式研发协同平台,提供了丰富的功能和强大的性能,满足企业复杂的业务需求。
  2. 易用性:云效 Flow 提供了直观的用户界面和简洁的操作流程,使得用户可以快速上手,减少学习成本。
  3. 集成性:云效 Flow 支持与多种主流开发工具和框架的集成,方便用户进行统一的研发管理。
  4. 可视化:云效 Flow 提供了可视化的流水线编排和管理功能,使得用户可以直观地查看和管理整个研发流程。
  • 云效 Flow 的不足:
  1. 成本:相比 Jenkins 这样的开源工具,云效 Flow 作为商业产品,可能需要一定的成本投入。
  2. 灵活性:由于云效 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工具。同时,其开放性和可扩展性也使得我们能够根据团队需求进行定制和扩展。
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
SVN版本控制系统
SVN是现在软件开发之中的主流软件版本控制工具,在工作之中利用SVN可以有效的解决多人开发的代码管理问题,本课程将为读者讲解SVN服务器的配置以及基于MyEclipse的SVN客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
目录
相关文章
|
7天前
|
运维 Kubernetes Java
阿里云云效操作报错合集之npm包已经发布到了制品仓库,但流水线中拉取依赖时出现404错误,该如何排查
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
阿里云云效操作报错合集之npm包已经发布到了制品仓库,但流水线中拉取依赖时出现404错误,该如何排查
|
1天前
|
存储 弹性计算 监控
为什么要在云效平台创建发布流水线并将源代码编译环节替换为从OSS下载构建部署物
为什么要在云效平台创建发布流水线并将源代码编译环节替换为从OSS下载构建部署物
|
7天前
|
存储 缓存 运维
阿里云云效操作报错合集之流水线在部署到函数计算时,出现报错:"ConcurrentUpdateError",该如何处理
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
7天前
|
域名解析 运维 Java
阿里云云效操作报错合集之流水线构建过程中出现了实时查询异常,该怎么解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
7天前
|
运维 Ubuntu Shell
阿里云云效操作报错合集之流水线构建Docker镜像时,遇到报错:“error: failed to solve: rpc error: code”,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
7天前
|
敏捷开发 Shell 测试技术
阿里云云效产品使用合集之如何用私有构建机运行shell命令打出的镜像作为下一个阶段的入参
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
7天前
|
持续交付 开发工具 对象存储
阿里云云效产品使用合集之构建物如何上传到阿里云OSS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
7天前
|
敏捷开发 Java Shell
阿里云云效产品使用合集之构建并将依赖包放置到私服的过程该如何进行
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
7天前
|
敏捷开发 Kubernetes 测试技术
阿里云云效产品使用合集之如何通过内网推送镜像到镜像仓库
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
7天前
|
敏捷开发 Java API
阿里云云效产品使用合集之如何使用JDK 21进行打包
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。

热门文章

最新文章