您的位置:  首页 > 技术杂谈 > 正文

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

2022-06-20 15:00 https://my.oschina.net/yunzhihui/blog/5542391 云智慧AIOps社区 次阅读 条评论
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 面对面交流~
 
展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接