从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客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
相关文章
|
6天前
|
运维 监控 Devops
DevOps实践之路:从理论到现实
本文将深入浅出地探讨DevOps的核心概念、实施步骤及面临的挑战,通过实际案例分析,展示如何将DevOps理念融入日常运维工作,提升软件开发与运维效率。文章旨在为读者提供一条清晰的DevOps实践路径,帮助团队实现更快的交付周期和更高的产品质量。
|
7天前
|
运维 监控 Devops
构建高效自动化运维体系:DevOps与容器化实践
【7月更文挑战第44天】在现代IT基础设施管理中,自动化运维已成为提升效率、降低成本、确保系统稳定性的关键。本文将探讨如何通过结合DevOps理念和容器化技术来构建一个高效的自动化运维体系。我们将分析这一体系对提高软件交付速度、优化资源利用率以及增强系统可靠性的积极影响,并提供一系列实施策略和最佳实践,帮助企业实现运维自动化转型。
|
7天前
|
运维 Devops 持续交付
DevOps实践之路:从理论到企业级应用
在数字化浪潮中,DevOps作为一种提升软件开发和运维效率的方法论,正被越来越多的企业采纳。本文通过探讨DevOps的核心理念、关键实践以及在不同规模企业中的应用案例,旨在为读者提供一条清晰的DevOps实践之路。无论你是初涉这一领域的新手,还是寻求进阶的资深人士,这篇文章都将为你打开一扇洞悉DevOps精髓的大门。
19 2
|
7天前
|
运维 监控 Devops
DevOps实践:持续集成与持续部署(CI/CD)的精髓
在软件工程的海洋里,DevOps如同一艘高效的船只,而持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)则是推动这艘船前行的强大双桨。本文将深入探索CI/CD的核心概念,揭示其如何助力团队高效协同、提升软件质量和加速产品上市。
25 1
|
10天前
|
运维 监控 Devops
DevOps实践之旅:从混乱到秩序的转变
在软件开发的世界里,DevOps不仅仅是一个流行词,它是文化、实践和工具的集合体,旨在缩短系统开发生命周期,同时提供高质量的软件持续交付。本文将带你领略DevOps如何从概念走向实践,转变传统运维模式,提升团队协作效率,实现快速迭代与高可靠性的平衡艺术。
|
12天前
|
弹性计算 监控 Devops
"揭秘!阿里云云效如何以戏剧性飞跃,重塑企业门户网站部署,一键解锁DevOps魔法,让您的网站秒变行业巨星!"
【8月更文挑战第8天】阿里云云效企业门户网站部署解决方案是一站式DevOps平台,集成云效Flow、Codeup、Testplan等,支持自动化构建、部署与测试。通过ECS实例等资源准备、云端代码托管、持续集成与部署、及全方位监控,实现网站高效稳定运行。采用YAML配置简化流程,确保快速迭代与优化,适用于各类企业的数字化转型。
35 3
|
12天前
|
弹性计算 监控 JavaScript
【颠覆传统!】云效Flow——让你的CI/CD流程如虎添翼,轻松驾驭高效稳定的自动化部署之旅!
【8月更文挑战第8天】现代软件开发中,持续集成(CI)与持续部署(CD)至关重要。我最近使用了“云效Flow”,一款专为高效稳定的CI/CD流程设计的工具。它支持多种语言与框架,并易于集成第三方服务。只需注册并创建项目,平台便提供新手引导。以Node.js项目为例,代码托管在GitHub上后,在云效Flow中设置流水线,通过YAML自定义构建与测试步骤。代码提交后,构建自动执行。部署环节可利用内置策略,如一键发布到阿里云ECS,并支持蓝绿部署确保平滑切换。此外,云效Flow还具备监控与告警功能。总之,云效Flow简化了CI/CD流程,提高了开发效率与软件质量,适合各种规模的团队使用。
28 2
|
14天前
|
Kubernetes Devops 测试技术
DevOps实践:持续集成和持续部署(CI/CD)在现代企业中的应用
随着软件开发行业的迅猛发展,DevOps文化及其核心实践—持续集成(Continuous Integration, CI)与持续部署(Continuous Deployment, CD)—已成为提升软件交付速度和质量的关键策略。本文将深入探讨CI/CD的理论基础,并结合真实案例分析其在现代企业中的实际应用效果,旨在为读者提供一套可行的实施指南。
|
20天前
|
监控 Devops 测试技术
DevOps实践:从持续集成到自动化部署的旅程
【7月更文挑战第31天】在软件开发领域,DevOps已经成为一种文化和实践,旨在通过改进开发和运维之间的协作,来加速软件交付和提高质量。本文将深入探讨DevOps的核心概念,包括持续集成(CI)、持续交付(CD)以及自动化部署,并分享实施这些实践的具体步骤和技巧,帮助读者构建更加高效、可靠的软件发布流程。
44 1
|
1天前
|
敏捷开发 前端开发 测试技术
阿里云云效产品使用合集之如何将云效构建执行过程中产生的日志通过邮件发送
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。

热门文章

最新文章