随着信息技术的高速发展,大数据技术正在变革着我们的生活、工作和思维,相关的技术也在不断演进,使得大数据的应用越来越便捷,功能也越来越强大。目前,开源也在作为一种推动大数据技术创新的新模式,广受技术开发人员的热爱。
近日,腾源会采访了 Apache Flink Committer & 开源布道师 tison(陈梓立),他为我们分享自己对大数据技术和大数据开源的演进和迭代、大数据开源社区运营以及开源治理的最佳实践等思考。腾源会对采访内容进行了整编,以飨读者。
图注:tison(右三)与小伙伴在 ALC Shenzhen 线下交流会PART ONE兴趣和社区归属感,埋下了开源的种子
那时,繁忙学业之余,tison 偶然接触到了以面向对象程序设计为中心的应用开发工具—— Delphi ,在研究鼓捣了几个程序后,他对这个陌生的代码世界产生了极大的兴趣。怀揣对编程的热爱,高中毕业后,tison 顺利考入了北京大学计算机系,开始了系统的学习。与绝大部分开发者一样,在接触编程之初,tison 一直希望能够找到一门能够覆盖所有场景的“Unique Language”。直到2017年,一个叫 Perl 6 的语言吸引住了他。当时 Perl 6 还是一个 2000 年开始开发,2015 年才发布的新语言,它的内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN,有着易于使用、高效、完整的特点。也是这些优势,吸引了 tison 的关注和应用。“回想起来,我接触开源社区就是从 Perl 语言社区开始的。当时的我被 Perl 6 迷住了,不停地阅读相关的材料和文档,实验里面的代码片段和知识。”在这个过程中,tison 发现他们的文档写得并不准确或有改善空间,而页面上又显著地提示了欢迎提出修改意见或直接提交修改请求。“我进入开源圈的第一个 PR(Pull Request) 就是修改 Perl 6 社区当中的一个文档,从提交到合并的体验非常愉快。随后我就开始边阅读学习、边修改 Perl 6 的官方文档,进而参与到测试套件和自举解释器的开发维护里。因为当时 Perl 6 社区对 Committer 的开放和包容性较高,我很快就成为其中的一员,并从 PR 的提交扩展到 PR 的 Review 和仓库的维护,聊天室的参与等等。”tison 说。社区积极的反馈给予了他极大的激励,让他开始认识到开源协同对人的连接,以及参与人在这个过程中受到的重视和归属感的满足。这也为其后续深度参与开源埋下了根基。回忆起这段经历,tison 很感慨,“尽管现在由于项目更迭,他对编程语言的热情也逐渐消退,不再关注这个改名 Raku 的语言社区,但是他仍然非常认可那样的一种开源社区环境以及它给成员提供价值带来的巨大吸引力。”感受到开源的独特魅力后,tison 渐渐开始关注各种开源社区。因缘巧合之下,他在 2018 年获得了前往阿里巴巴 Blink 团队实习的机会。Blink 作为基于 Apache Flink 开发的定制化版本,阿里Blink 团队也需要在内部大量的业务场景下不断测试、应用该框架,并为该框架做大量的优化和稳定性改造工作。因 Blink 和 Apache Flink 的紧密关系,tison 也通过社区的介绍订阅了邮件列表,进入到了 Apache Flink 社区。尽管在接触 Perl 语言社区时他已经积攒了一些经验,但是在融入这个新社区时,还是遇到了不少困难。“一开始我完全看不懂他们在说什么,当时正在做 FLIP-6 提案即集群管理大重构,每天在邮件列表上拼命地看,从邮件里提到的链接一个跳过一个地去了解背景,直到加入阿里开始接受实习任务改过几行代码,这个祛魅的过程才完成。”随后 tison 在 Apache Flink 社区里做了大量的代码重构,修复了数十个并发缺陷,也发起参与了若干个提案。通过不断的努力和持续的贡献,他在 2019 年 9 月时,正式成为了 Apache Flink Committer 的一员。除此之外,在 Apache Flink 社区实现一个和高可用服务相关的功能的时,tison 也接触到了 Apache Curator 和 Apache ZooKeeper 这两个项目,并深度参与了项目贡献。尽管 Apache Curator 项目参与的人不多,但凭借着对分布式共识技术的兴趣和好友 Enrico Olivelli 的引荐,tison 后续也作为社区 PMC Member 的身份参与到了工作中。当被问到为什么会选择持续投身开源时,tison 表示,这对他来说不是一个关键的选择,甚至不是有意识去做的事情。因为参与开源社区能够写好玩的代码,能够和不同的人交流,尤其是能跟高手过招,就这么简单。谈及为什么能在开源社区中持续做下去,tison 回应说,“当我参与其中时,能获得足够的正反馈和成长。” 对于很多人来说,如果工作本身不能从开源项目的参与当中获益,是很难坚持参与的。要想坚持参与,要么是工作稳定的情况下参与和工作成果息息相关的项目,要么是参与其他自己日常会用到的项目的开发。tison 对此也是深有感触,他之前在自己参与的项目中,就尝试用 Apache SkyWalking Eyes 工具来检查 License 合规使用的问题,一旦在应用过程中发现工具问题,就会向上游反馈,直到它日臻完善。随着信息技术的高速发展,各行各业都在进行信息化变革,几乎每个行业都在努力发现和利用大数据的价值。经过多年的发展,大数据技术也逐渐形成了以开源为主导、多种技术和架构并存的特点。提起大数据技术和大数据开源近年来的演进和迭代,tison 表示,基础软件主要包括数据库、编译器和操作系统这几个方向,大数据其实是数据库方向在 MapReduce 以后 A major step backwards 的歧路产物,它所要解决的仍然是数据处理领域的问题。“大数据”作为一个单独的概念,并不能像十年前一样能激发起人们的兴趣。新的项目应该会朝着与传统或者说复杂分析查询和混合云、混合模型存储的方向融合前进,不再把“大数据”当成一个独立于数据处理领域的特殊子领域。近年来大数据也逐渐跟 NewSQL 等传统数据分析手段融合前进。国内日渐增长的数据处理需求越来越只有开源项目能够激发跨公司合作来解决。开源是未来甚至当下基础软件的必然选择,大数据技术只是基础软件数据库方向的一个分叉,接下来会朝着合一的方向演进。关于大数据开源的发展,tison 也表达了自己的看法:“虽然贡献人数随着近年来开源的发展在逐渐增加,但是掌握核心技术的人仍然稀缺。从 Apache Hadoop 到 Apache Kafka 再从 Apache Spark 到 Apache Flink 等等,这个生态从 Apache Hadoop 开始,主要生长在 Apache 软件基金会上。不同的项目各自的开源模式提供了非常丰富的案例,但从社区模式上仍然没有看到突破性的进展,或许是 The Apache Way 仍然没有被实际践行以至于在前沿领域被挑战。”说到这,他也为开源社区的运营方式提出一些建议:“开源社区运营的核心问题是认识到开发者是社区的主要成员,他们来到社区的诉求和需要的帮助和传统的面向消费者或企业的运营是不一样的,不要把自己当成运营人员,而要参与到开源社区当中去。开源社区的运营我认为重点不在搞活动,搞气氛,而是为了运行一个开源社区切实的解决社区成员遇到的问题。”PART FOUR全心投入开源,才有水到渠成的收获
在采访的尾声,我们也与 tison 聊到了关于如何正确参与开源的话题。他认为参与开源其实很简单,就是找到一个喜欢的项目,持之以恒地投入进去参与,遇到问题多找人沟通。不管是项目当中的其他伙伴,还是整个开源社区,通常都是乐于回答问题和给予帮助的。“在参与开源时,当你以 Contributor 的心态参与到开源项目当中去,就努力在社区当中创造价值;在作为 Committer 或 PMC Member 等角色承担了相应职责的时候认真履行,就可以了。开源社区的角色不是等级制度。除了硬性的授权要求只有特定的人群能做最终的操作,对于应该采取怎样的行动,每个人都是平等的,都可以发表观点。”tison 说。最后,tison 也同我们分享了他在公众号文章写的一句话:开源社区的运行对维护者包括技术水平在内的多方面能力都提出了挑战。大体上,对于一个维护者来说,你需要释放出两倍的生产力,再付出一倍的精力,才能撬动社区协同模式十倍的生产力。社区不会自动地运行,始终需要 Critical Mass 指引方向和全力投入。这里的 Critical Mass 可以对应到 Apache 项目的 PMC Members 上,所以大抵如是:大部分社区找的是愿意合作一起做高质量软件的伙伴,这需要你全力投入和付出。相应的,良好的社区也会全力回应。Interaction有奖互动互动问答赢好礼阅读本文之后,您对开源社区建设、运营有什么独到的见解或者更多疑问吗?欢迎来评论区分享哟~
1月7日18:00点前,留言区见解深刻&点赞数超过20的小伙伴将获得抽奖资格,中奖名额3,抽中的小伙伴可获得腾讯定制礼品1份!此外被tison翻牌的提问或者话题讨论的前3位也可获得精美礼品一份哟。
请大家遵守游戏规则,刷票一律取消资格。如果你也是开源爱好者、开源参与者、开源软件使用者,欢迎添加腾小源微信号(TCOSOO1),回复“开源”,拉你进开源交流群哟。(*以上礼品随机赠送,以实物为准)腾源会(WeOpen)是腾讯云成立的汇聚开源项目、开源爱好者、开源领导者的开放社区,致力于帮助开源项目健康成长、开源爱好者能交流协助、开源领导者能发挥领袖价值,让全球开源生态变得更加繁荣。