• 关于Apache Flink的那些事
  • 发布于 2个月前
  • 145 热度
    0 评论
2023年的SIGMOD System Award给了Apache Flink。这是意料中的事情。2022年的奖给了Apache Spark。今年给Flink不吃惊。2023年还有一件大事,Apache Kafka背后的公司Confluent,收购了一下叫做Immerok的德国公司。这个收购让Confluent一下子拥有了很多个Apache Spark的PMC成员,很大程度上造成了一个分裂的社区。今天我们就简单聊聊Flink。

2014年的VLDB,在杭州举行。那年我印象深刻的keynotes有两个。一个是讲SAP HANA的,那位老兄正好2009年罗德岛的SIGMOD给了keynote说要做HANA,2014年VLDB说我们做成功了。另外一个就是官宣了Apache Flink。Flink的起步是克隆了一个叫做Stratosphere的项目开始的,这个项目起步很早,2009年就开始了。但是没什么影响力。Flink聚焦在大数据流计算,代表的论文有很多,今天就不讲技术了。

在Flink的早期,Spark和Flink互相撕逼的事情也发生过,比如说Spark的co-founder Reynold Xin就公开拿出代码来表示,到底是不是Flink抄袭了Spark的代码。一开始Databricks也是紧张的,因为RDD的底座决定了Spark很难从架构上改成Flink这样的实现。所以Spark一边开始搞mini-batch,micro-batch,一边宣传,客户并不需要那么低的latency。Spark也够用了。

当然,后来Databricks发现对手不扛打,很快就没有在Spark Streaming上继续投入大量资源了。但是实际情况怎么样呢?以我司为例,有很多应用确实Spark Streaming就够了,但是也有一些应用必须要上Apache Flink才行。所以Databricks说的,只能用一句英语来形容:it depends。翻译成中文就是,也对也不对。


说到Flink,阿里巴巴就是绕不过的一个公司,而花名叫量仔的蒋晓伟,更是绕不过的一个人。当时蒋晓伟在领导搜索团队,需要一个流计算的引擎。那个时候阿里内部,已经有一些流计算引擎。比如说花名纪君祥的封仲淹就用Java重新写了一遍Apache Storm,叫做JStorm。又比如说,著名的Maxcompute团队搞了一个叫Glaxy的东西。这个Glaxy支撑了2014-2016三年的双十一流计算相关业务。

蒋晓伟相中了Flink,然后以自己多年在微软SQL Server和Facebook的经验,魔改了Flink的架构,解决了很多Flink架构上的问题,并且把阿里巴巴魔改版的Flink叫做Blink。这意思就是Flink太慢,魔改的版本一眨眼就行了,快就一个字。

蒋晓伟后来在Flink Forward上有个讲座,就是讲阿里巴巴怎么魔改成Blink的。那个讲座讲得非常精彩,我公众号之前也详细写过那个讲座的内容。有兴趣的可以找我之前的文章看。接下来,阿里巴巴团队就开始要主动给Flink团队做贡献。但是,这个事情并没有那么美好。

从德国的Flink团队来看,你主动和我做贡献是一回事,社区到底听我的还是听你的就是另外一回事了。即使我们德国人的工程水平没有美帝伯克利AMP Lab的人牛逼,那也不是你阿里巴巴这些外来的人指指点点就行的啊。面对项目主导权的问题,有段时间,阿里巴巴想把自己的架构推进给整个社区的愿望并不是很顺利。阿里巴巴内部也发生了一件大事。

这件事情是这样的。阿里的所有streaming项目合并,Blink力拔山兮气盖世,干翻了包括JStorm和Glaxy在内的所有竞争对手,成为了唯一的streaming项目。其他streaming的项目都停止,应用都往Blink迁移。同时,蒋晓伟的领导换成了Maxcompute的负责人周靖人。

在2014,2015, 2016年连续三年,都是Maxcompute的Glaxy顶起了双十一的流计算,而2017年却要交给Blink。三大流项目的合并,没成功历史的Blink胜出,有过往战绩的Glaxy被取消。这的确挺有意思的。而Flink的顶头上司却成了原来Glacier的大老板,这就更有意思了。Blink的项目在阿里巴巴取得了广泛的成功,一年多以后,Blink的负责人量仔蒋晓伟,却被边缘化了,王峰全面接盘Flink。这就更加有意思了。这里省略几万字。

那边Flink社区的推进不顺利,可能是因为阿里巴巴内部已经豪赌在Flink上了。然后就发生了著名的撒钱大法。撒钱大法就是阿里巴巴以9000万欧元收购了Flink背后的德国公司Data Artisans。收购以后,阿里巴巴就开始主导Apache Flink了,德国公司拿钱以后,阿里巴巴的Blink也很快就整合进了社区。

至于是谁做出了这个收购的决定,那就不是我能知道的信息了。然后,这家公司就改了一个名字,叫Ververica。自从这家公司被买了以后,Databricks再也没把Apache Flink当一回事。仔细想起来,Databricks也是挺有远见的,知道被阿里巴巴买走的Flink,确实在商业化方面,没办法再折腾出什么来。

而Ververica被收购以后,一直想做的事情,就是提供云端SaaS的Flink服务,好像进展就特别的慢,4年内也不知道发生了什么。大概是收购案锁定期到了,原来那些人,也陆陆续续退出了Ververica。最搞笑的事,Ververica一些人去年出来,新开了一家公司Immerok。而这家公司做的,居然和老东家Ververica一样的业务。

简直不知道说什么了。难道签合同的时候没有反竞争条例吗?现在Apache Flink的PMC成员很有意思了,很多阿里巴巴的人,还有很多原来从Ververica出去的人。Ververica里面的人,这几年过去了,居然一个都没有留下来。

我曾经和阿里巴巴的做Flink的人聊过,我表示,这样分裂的社区,对Flink的影响很不好。对方和我说,没关系啊,我们培养了很多新的PMC member。我仔细一看,是的,培养了很多新的,全是阿里巴巴的。这做事就很有阿里巴巴风格了。原来的人走出去,我自己的人加进来。再后来,Immerok又被Confluent给买了。这个事情,就成了开源社区最大的话题了。

一个项目居然能先卖一次,然后再卖一次的。那么阿里巴巴当初买的,到底是什么?买了一个寂寞吗?不管怎么说,技术上,Apache Flink确实有其独到的地方。但是Apache Flink的商业化,和Apache Spark的商业化,是没办法比的。一个被买了一次,然后又买了一次的开源项目,和一个已经中国人和外国人分裂的社区,对这个项目的长远发展来看,只能呵呵了。
用户评论