从DevOps实践者的角度谈谈云效Flow

简介: 这篇文章是一位DevOps实践者对云效流水线Flow的评测。首先介绍了自己参与评测的背景,并对Flow的易用性给予了肯定,认为它适合新手,尤其是可视化的编排功能。然后,作者讨论了Flow在新人上手、产品功能、性能和开放性方面的表现,指出Flow在插件开发能力和YAML编排体验上存在提升空间。他还提到了YAML编排的学习曲线和与可视化的结合问题,以及任务管理和步骤名称的混淆。此外,作者建议Flow增强模块间的逻辑性和交互清晰度,以提供更顺畅的工作流程体验。最后,作者总结了Flow的优点(功能齐全,适合中小企业)和需要改进的地方(业务逻辑、制品库能力和私有化场景的支持),并对其未来发展提出了期待。

偶然看到云效流水线 Flow的评测活动,作为一名DevOps实践者,从事相关的平台落地工作,和一线的研发打交道比较多,对这个评测很感兴趣,就随便写点。

https://developer.aliyun.com/topic/flow2024?spm=a2c6h.27234800.J_6638147300.3.318159efXWtFlW

先说评测结论

1)你的角色是什么,你之前是否使用过CI/CD工具,你/你们团队对CI/CD 工具的要求是什么?

DevOps实践者、产品经理。用过很多,除了传统但很流行的jenkins,  还有开源的gitlab-ci, drone, 包括商业的coding, 华为devcloud, 百度云等。

对于团队来说,简单上手傻瓜,入门成本低,低侵入是最基本的要求,研发团队一般都不喜欢折腾,交付压力已经很大了,还要学习什么是CI/CD, 开玩笑,呵呵。

2)你觉得Flow在新人上手方面是否简单、是否存在什么阻碍?

我觉得Flow对新手来说,还是比较简单了,可视化编排很方便。

如果要说阻碍,可能还是了解各种术语(变量,服务连结,),如何丝滑的编排设计好的流水线。不过大部分提供的模板,也都够用了。

3)Flow的产品功能、性能、开放性等方面能满足你的需求吗?Flow哪些方面做的让你满意,哪些方面觉得不足?

从功能上来说,流水线本身需要的能力基本都具备了,可视化编排,变量,触发器,插件机制,流水线模板等等。

从开放性上来说,可能需要提高,Flow内置的插件理论上可以满足企业常规需求,不过很多企业内部有很多个性化的需求,建议可以开放插件开发能力。虽然也看到了类型Flow-CLI类型的工具,不过感觉还是包装的不太好,比如可以把这个功能更好的暴露出来,提供类似插件市场,提供更加友好的发布渠道,丰富Flow的生态。

4)对比其他CI/CD工具(商业或开源),你觉得云效流水线Flow在成本、功能、性能上是否有竞争力?你愿意推荐团队使用吗?

我经常会去体验其他CI/CD工具(商业或开源),自己所在团队没有使用效Flow(私有化场景),主要从用户体验和生态上说说吧。

  • Flow本身没什么太大问题,相比于coding,我觉得云效Flow模块是更好一点的,比如插件更丰富,很细致。
  • 我个人觉得,主要问题还是在整个devops的业务流程上,不够清晰吧,前几年我就吐槽过。这两年有了改进,通过菜单和工作台的方式,对各个模块进行了交互和联通。不过模块之间的业务逻辑性还是需要进一步加强,毕竟devops是端到端的交付,各个模块肯定会有交叉和联系,需要让用户感受到。

之前也写了一些评测

对于Yaml流水线的使用体验

对于传统的可视化编排,我觉得云效基本上已经很成熟了,包括各家产品在内都有这样的能力,差别主要在于整体对于可视化编排的底层执行引擎,以及编排的模式,周边生态的差别。

今天主要想聊下YAML编排,这也是目前的趋势,未来都是yaml工程师。老实说,YAML编排各家都还在起步迭代阶段,还不算特别成熟,另外用户的可接受程度也需要培养(PS: 从可视化编排到YAML编排,对于用户的要求和素质会有所增加,特别是连可视化编排都还玩不转的情况下,YAML基本就懵逼了)

提到YAML这种模式,最早应该是在gitlab-ci上面体现最早的,本来就是基于gitops的思想,一切皆代码。

结合云效YAML,探讨个人对于YAML编排需要解决的问题

  1. 上手难度,gitlab-ci yaml我觉得需要一定成本的学习,掌握很多标签用法
  2. 针对第一个问题,其实包括云效在内都提供了(如下图所示)插入片段的引导,这个算是第一个初级优化。

  1. 尽管提供了片段引导,但是目前还是靠手工去手动复制,如果加工插入的功能是不是更好。这个倒不是重点,重点是如何像写代码一样做编辑使用,比如提供诸如“语法检查”、“智能提示”、“上下文的提示检查”,我想这样的编辑体验会好很多。

  1. 进一步,需要考虑YAML和可视化之间的关系。两种思路,一种是彻底就是yaml编辑了,可视化只是在运行时候展示;另外中就是yaml和可视化之间做映射(比如可视化编排界面创造yaml)。我觉得都可以接受,后者会难一点,需要做妥协。
  2. YAML化后,如何教用户去组合编排?如下图,比如我要加一个拉代码的操作,我似乎没有找到可以加的地方(这个还建立在我知道在哪里去加的基础上)。如果我是小白,不知道加的顺序,任务之间可能还有依赖关系呢?

  1. 对于YAML, 目前的任务参数不支持感觉。简单说,就是对于参数变量的引入,传递,组装,感觉目前做的还太少。在复杂场景下,YAML依然需要解决这些问题。
  2. 上手问题解决后,就回到YAML的本质。为什么需要这样编排?原有的可视化编排不够吗?个人观点,其实还是要践行一切皆代码,让YAML也回到代码库里,作为pipeline.yaml,导入代码,即刻直接运行流水线。

其他问题

任务/步骤名称含义模糊

例如,任务管理/步骤管管理,从中文的含义上,其实很容易模糊,意思差不多。实话说,我觉得任务管理优点鸡肋,粒度介于“步骤”和“流水线模板”之间,有点类似于“任务组(group)”的性质。我觉得,应该着力去发展“流水线模版”,作出公司级或者团队级别。

模块间缺乏逻辑性,交互不清晰

比如在代码库模块,可以新建流水线,但是点击跳到了 Flow流水线模块。我是觉得代码模块就专注于代码审核/代码扫描即可,即使是内置的扫描任务需要流水线,应该以另外方式呈现(如下面的流水线(系统来源))。

我理解,可能是因为针对某个代码库,建立流水线子组,最后所有这些子组最终聚合在流水线模块。也能理解吧,不过是否要思考“流水线”是什么?流水线本质是编排用的,更多是组织各种代码构建,各种集成任务,各种资源的。形象点说,流水线其实就是研发团队的日常业务活动的具体体现。

从流水线角度去统筹考虑,是不是会好点?如果从代码库角度去对应流水线,最终就会很散,不清晰。(PS:最近看到了APPStack的功能,我揣测可能阿里产品经理,也意识到了这个问题,所以通过另外一种形式去弥补)

如下,通过【应用】重新去组织之前比较散的实体和过程,让研发过程变得更加清晰。

总结

最后,做个简单总结,说下我对云效Flow整体的评价

  1. 从功能上来说,我觉得Flow没有什么问题(比如部署这块提供了蓝绿/灰度等等),对于中小企业,特别是在阿里云上开展业务的公司,最适合不过了。

  1. 不足之处,还是业务交互逻辑吧。比如从菜单开始,DevOps本身业务逻辑涉及需求到最后部署上线,最好能在一个视图,让用户体会到关联性,说白了就几个实体 【需求】-【代码】-【流水线】-【制品】-【环境】,让用户感受到之间的关系,而不是跳来跳去。逻辑上,能让用户马上知道这块负责什么(明确各自的边界和职责,关联通过数据结果体现)。

  1. 制品库能力需要提高, 在我写这篇评测时候,阿里已经发布了新功能😄。不过相比于友商,还是来的有点晚。目前功能还有待完善和加强。

  1. 云效本身带着阿里云的基因,所以,客观造成了对于私有化场景还是能力欠缺的(不是技术,是业务场景)。对于周边工具生态的整合,也需要提升,比如常见的sonarqube, nexus等。
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
SVN版本控制系统
SVN是现在软件开发之中的主流软件版本控制工具,在工作之中利用SVN可以有效的解决多人开发的代码管理问题,本课程将为读者讲解SVN服务器的配置以及基于MyEclipse的SVN客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
相关文章
|
7天前
|
运维 监控 Devops
DevOps文化下的自动化运维实践
本文将探讨在DevOps文化背景下,自动化运维的重要性及其实现方式。通过分析自动化运维的优势和挑战,文章提供了具体的实施策略和案例,旨在帮助读者理解如何在DevOps实践中融入自动化运维,以提高软件开发和部署的效率与质量。
|
2天前
|
运维 监控 Devops
DevOps实践:持续集成与持续部署(CI/CD)的精髓
【6月更文挑战第17天】本文将深入探讨DevOps文化中的核心实践——持续集成(CI)和持续部署(CD)。我们将从理论出发,逐步过渡到实际操作,介绍如何搭建一个高效的CI/CD流程。文章将涵盖工具选择、流程设计、自动化测试以及监控和反馈机制的建立。通过具体案例分析,揭示成功实施CI/CD的关键因素,并探讨如何在组织内推广这一实践以促进开发和运维之间的协作。
|
6天前
|
数据可视化 Cloud Native Devops
云效流水线 Flow 测评
阿里云云效是一站式DevOps平台,提供项目协作、代码管理、流水线Flow等工具,支持公共云和专有云,助力企业实现研发敏捷。云效Flow是自动化CI/CD工具,通过可视化和YAML编排易于新手使用。在测评中,Flow因简单易用、功能齐全和与阿里云产品集成的性能得到好评,适合小团队低成本项目。相较于其他CI/CD工具,Flow在成本和功能上有竞争力,值得推荐。
238 4
|
9天前
|
运维 监控 Devops
如何轻松搞定DevOps?云效告诉你答案!
【6月更文挑战第11天】云效提供一站式DevOps解决方案,涵盖代码管理、持续集成、持续部署、自动化测试及监控告警,助力企业提升协作效率,加速软件交付。通过云效Git代码库进行协作,利用Jenkins自动化构建和测试,实现Java项目的持续集成。成功构建和测试后,云效支持自动化部署至各种环境,并具备监控告警功能,确保应用稳定运行。借助云效,企业可轻松落地DevOps,实现开发运维一体化。
|
15天前
|
Java jenkins 测试技术
云效流水线 Flow
云效流水线Flow是阿里云提供的企业级CI/CD工具,简化软件开发流程,提高协作效率。本报告评估了其易用性、功能、性能、开放性和成本。Flow界面直观,提供预设模板,但学习曲线略陡。功能完备,支持全生命周期管理,智能诊断功能强大。性能上,依托阿里云,具备高可用性和弹性。然而,开放性和与其他云服务的集成有待增强。成本方面,免费额度适合小项目,大项目需考虑额外费用。一个中型Java项目案例显示,Flow快速构建CI/CD流程,智能诊断节省调试时间,但在非阿里云环境集成存在挑战。
851 2
云效流水线 Flow
|
17天前
|
持续交付 jenkins Devops
云效流水线 Flow测评
从入门到实践,多方位带你领略云效Flow的优与劣
369 8
|
20天前
|
运维 Devops 持续交付
构建高效稳定的云基础设施:DevOps与容器技术融合实践
【5月更文挑战第31天】 随着云计算的普及和企业数字化转型的加速,传统的IT运维模式已无法满足快速迭代和持续交付的需求。本文探讨了将DevOps理念与容器技术相结合,构建一套高效、稳定且易于管理的云基础设施的实践方法。通过案例分析和技术选型,展示了如何实现自动化部署、监控和扩展,以及如何提高系统的可靠性和安全性,最终实现运维效率的显著提升。
|
21天前
|
运维 JavaScript Devops
DevOps实践:通过云效实现hexo自动构建部署发布
DevOps是一种融合开发、技术运营和质量保证的流程,旨在增强跨部门沟通与协作。通过自动化软件交付和架构变更,DevOps加速了构建、测试和发布软件的过程。本文作者分享了如何使用阿里云效平台实现个人Hexo博客的自动化部署,从而实现持续集成和持续部署(CI/CD)。在应用DevOps之前,作者需手动上传和部署文件;应用后,只需提交Markdown文件,其余步骤由DevOps平台自动完成。通过云效平台的代码管理和流水线功能,实现了从代码提交到自动发布的无缝衔接。
55 2
DevOps实践:通过云效实现hexo自动构建部署发布
|
21天前
|
运维 Kubernetes Devops
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
【5月更文挑战第30天】 在当今快速迭代和持续交付的软件开发环境中,传统的IT运维模式已难以满足业务需求。本文深入探讨了如何通过DevOps理念和容器化技术的有机结合,构建一个既高效又稳定的云基础设施。文章首先概述了DevOps的核心概念和实施要点,然后详细介绍了容器化技术的优势及应用实践,最后通过案例分析展示了两者结合带来的显著效益。
42 3
|
21天前
|
运维 监控 Devops
构建高效自动化运维系统:DevOps在企业级应用的实践
【5月更文挑战第30天】 随着信息技术的飞速发展,企业对软件交付速度和稳定性的要求越来越高。传统的运维模式已无法满足快速迭代和高效稳定的需求,因此,本文将探讨如何通过实施DevOps文化、流程和工具,构建一个高效的自动化运维系统。文章将详细描述DevOps的核心理念、关键技术组件以及如何在组织中落地实施策略,旨在帮助企业提升运维效率,加速产品的上市时间,同时保证系统的高可用性和稳定性。