一个老开源人的自述 - 如何干好开源这件事
17 世纪的大航海时代,欧洲航海者在世界各地开辟新航路和发现新大陆,同一时期,欧洲发展出新生的资本主义,这对航海地图的制作、距离和空间的测量都产生了极大的促进作用。
同一时期,法国的著名数学家笛卡尔正在研究解析几何和坐标系,在两个或者三个维度上进行数据分析,这成为了数据可视化历史中重要的一步。同时,早期概率论和人口统计学研究开始出现。这些可以说是有记录以来,最早的对数据可视化的探索。
时间来到 2022 年,我们早已身处大数据与人工智能的时代,全球的数据量每年都以指数级别猛增,所以我们可以看到,近几年来涌现出一大批数据可视化的厂商,既有大厂背景的 DataV,也有一众优秀的独立软件公司,今天我们采访的对象,恰好也是一位数据可视化项目的负责人。
虽然是一个公司的同事,但由于工作地点在不同城市,这次算是我们之间的第一次见面,地点约在了腾河大厦附近的漫威咖啡厅。Tiger Wang 说他最喜欢漫威里的钢铁侠。
时至今日,他依然记得 Tony Stark 的一句名言,贾维斯,在我们学会走之前,要先学会跑!这种精神也被他运用到了做开源项目中。
两个喜欢开源的开发者
聊起是如何加入云智慧的,Tiger 说大约在四年前,自己还在可视化的领域探索中。也参与了阿里的开源项目 AntV 的贡献。
后来逐渐对于大数据量的可视化场景,以及对性能、速度的提升处理特别感兴趣,对于当时来说非常有挑战性,也非常希望可以做相关的事情。
当时的云智慧正好在做 APM(Application Performance Monitor),对于数据采集、数据上报、数据分析以及性能管理这些场景,都需要可视化进行辅助,并且需要对可视化的性能和速度有很高的要求。
在一次偶然逛 Github 社区中认识了云智慧当时的技术总监,也是现在 AIOps 社区 PMC(Neeke ),当看到 Neeke 也是 SeasLog 开源项目的创始人。几番交谈下来,Tiger 就感觉,这人能处,他是真的懂开源。
后来,两人又沟通了很多,沟通了很多的可视化场景、也讲了很多云智慧现有的业务场景。最后在 18 年的 6 月就正式加入了云智慧。
破局
加入云智慧后,Tiger 开始负责可视化模块开发工作,带着团队的小伙伴一起突击数据可视化领域,他说,我们是一家 to B 的公司,在帮助企业做运维管理时,需要有一些数据可视化大屏来帮助客户侧的运维工程师做监控管理。
可视化大屏的要求一般都很高,尤其对于 UI、动画、性能都有很高的要求。而且会针对客户不同场景输出不同的数据可视化大屏,这对于我们研发来说就有了很大挑战。
2020 年尤为明显,这年因为公司的快速发展,数据可视化的业务量飞速的增加,大屏研发的工作量也变得尤为的庞大。研发团队的成员也从最初的几名研发逐渐增加到了三十多名,人员的扩展带来的不仅仅是成本的开支,还有对于人员培养、质量保障也带来了非常巨大的挑战。
这时候,摆在 Tiger 眼前有两个巨大的难题,在降低成本的同时,还要提高质量,就是我们平常笑称的既要、又要、还要。
为了达到上面的这些要求,Tiger 带着团队进行了很多方向的尝试
统一开发框架、Eslint、Prettier、底层引擎封装(处理多端适配、兼容处理、性能优化)
控制依赖版本、强化开发规范、commit 提交规范、分支规范、代码 Review
建设公共组件库,增加抽象可复的组件、建设工具类、弱化特殊场景的复杂度
效果也还是比较明显的,大家开发的门槛稍微降低了、学习也方便了、复用性也是有了。谈到这里,他说虽然做了很多工作,但依然还远远不够,业务压得他们喘不过来气。这时候,团队里的一个声音响了起来,要不咱们整个低代码平台来提效?
说干就干,经过了数周的封闭突击,Tiger 带着团队把可视化产品的引擎进行了重构,并把大屏可视化场景的特性融入了进来。
两周的时间内,Tiger 和团队的每一个同学都做了大量的工作,从底层引擎的设计,到组件的定义、事件的定义、函数、数据集的定义等核心概念抽象,逻辑的实现与开发落地等等。
这个新产品就是被命名为飞鱼(FlyFish)之所以起名叫做飞鱼,是因为期望它像会飞的鱼儿一样快速且灵活。而模块化和组件化的概念也体现到了飞鱼这块产品的 logo 上
提效神器
有了飞鱼平台之后,通过低代码开发更加快速且便捷,再也无需在考虑兼容、性能、效果等问题,开发时无需搭建基础环境便可开发,开发完毕之后可以快速分享给其他同学使用,组件、大屏也达到了沉淀和复用。
同时可以让不懂代码的人做出可视化大屏,比如售前、客户成功经理等同学,可以一边跟客户喝着咖啡一边把可视化大屏做出来了,减少了内部需求传递的丢失。
内部使用了两个月后,Tiger 进行了一次调研发现内部提效 75%左右,真正意义上达到了提质增效、节本降耗。截止目前飞鱼平台以及经历了 n 次发版、打磨,拥有了项目管理、工作台、API 纳管、数据源查询、数据模型、可视化拖拽,一键式部署等功能,
可以说,FlyFish 已经具备了企业级低代码的能力。 并且云智慧在内部也一直持续使用,截止今日已经交付了数百项目,沉淀了上千张大屏与组件!
要开源么
当我们问到,目前市面上可视化产品这么多,开源产品也有很多,其中不乏 BAT 的一些重量级产品,如果做开源,你们产品的优势在哪里,Tiger 笑了,他说这个问题他和团队的同学想过了很多次。
首先,开源的正确性是毋庸置疑的,过去十几年我们已经非常清晰的发现,开源正在成为软件开发领域的基础设施般的存在。个人或者公司再强大也是抵抗不了全球开发者的智慧的。
另一个问题,FlyFish 到底要不要开源,面对巨头公司的开源产品,我们的优势在哪里,特别开源是很忌讳重复造轮子的。
但回忆起 FlyFish 这块产品的诞生过程,Tiger 说 FlyFish 和其他产品最不同的一点就是,我们是一款用户群体面向开发者,且积极拥抱开源的数据可视化产品
他说,你可以看下目前市面上的可视化产品,虽然种类繁多,但基本都是面向非技术人群的,没有一款是面向开发者的。这在使用过程中难免让我们有一些“不爽的地方”
当时,他也调研了很多国外的可视化开源产品,但总是很难符合国内的业务场景,特别是大屏开发的需求。可以说,如果当初市面上已经有一款能满足他们业务需求,且面向开发者群体的开源软件,也不会诞生 FlyFish 了。
开发者是一群具有丰富创造力的人群,你让他们墨守陈规,只用已有的组件去搭建可视化应用,而不能自己去动手开发,这对开发者来说,太难受了。
他说,目前前端各类的可视化组件库已经很多了,比如 Echarts。那么,能不能有一款平台型产品,可以无视前端技术栈,兼容市面上大多数的组件库,让开发者可以最大限度的开发自己的可视化应用呢,这就是飞鱼的优势所在。
他说,过去我们内部用 FlyFish 做了很多商业化项目了,交付了不知多少的商业大屏,我们也没想到国内在可视化这块的需求是如此旺盛。FlyFish 从零到一这一步,我们算是走对了。
未来,还干点啥
谈及未来,Tiger 说这个词还有点久远。当下还有很多事情在等待他去做。虽然 FlyFish 已经在内部迭代了多个版本,但是我们的开源事业才刚刚起步,开源版的 FlyFish 还处于一个非常早期的阶段,还有大量的工作在等着我们去做。
Tiger 指着电脑屏幕前的架构图说,仅从代码层面,我们现在只是把应用层的功能开源出去了,未来,储存层、数据分层、数据源这些我们都要逐步的开源掉。
开源不仅仅是把代码开放出去,开发者、社区这些都要比代码重要的多,我们的文档还需要优化,我们的教学视频还不够完善,开发者的激励政策还有待改进。令他欣喜的是,目前已经有许多开发者参与了进来,有的在贡献组件,有的给产品提了许多宝贵意见
看到这些活跃的开发者,Tiger 又想起了 4 年前他参与 AntV 开源项目的情景。不同的是,当时他是一个开源的贡献者。现在,他正在主导一个开源项目。
王海虎,开源项目 FlyFish 项目 PMC,云智慧研发经理,全栈工程师,主攻可视化、3D 引擎、3D gis 场景、低代码等方向。AlOps 社区专家团成员。开源项目 AntV 贡献者,清华大学 Thulab 的 DWF 项目开发者之一。
更多福利
FlyFish 目前已经开源,点击下方地址链接,欢迎大家给 FlyFish 点赞送 Star。参与组件开发,更有万元现金等你来拿。
GitHub 地址: https://github.com/CloudWise-OpenSource/FlyFish
Gitee 地址:https://gitee.com/CloudWise/fly-fish
万元现金活动:http://bbs.aiops.cloudwise.com/t/Activity
微信扫描识别下方二维码,备注【飞鱼】加入 AIOps 社区飞鱼开发者交流群,与 FlyFish 项目 PMC 面对面交流~
版权声明: 本文为 InfoQ 作者【云智慧AIOps社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/6ed6a07b04e53fb3c5a516ccb】。文章转载请联系作者。
评论