写点什么

一个老开源人的自述 - 如何干好开源这件事

  • 2022 年 6 月 20 日
  • 本文字数:3307 字

    阅读完需:约 11 分钟

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 面对面交流~


发布于: 刚刚阅读数: 4
用户头像

全栈智能业务运维服务商 2021.03.10 加入

我们秉承Make Digital Online的使命,致力于通过先进的产品技术,为企业数字化转型和提升IT运营效率持续赋能。 https://www.cloudwise.com/

评论

发布
暂无评论
一个老开源人的自述-如何干好开源这件事_开源_云智慧AIOps社区_InfoQ写作社区