阿里为什么要拿下Flink?
如果这不是因为阿里新年消费的第一个大单,更多人知道Flink或许还会晚一点。据欧洲外媒Deutsche Startups报道,阿里巴巴集团以1.033亿美元(9000万欧元)的价格收购了总部位于柏林的初创公司Data Artisans。此消息之后得到了多家媒体从阿里处的证实。
由于Data Artisans拥有着一种代表当今大数据流处理引擎的前沿技术,让阿里这一收购举动引起了相关业界不小的反响。尤其是,在阿里集团刚刚进行一次大规模组织架构调整后,需要依靠更加智能化的云计算技术融合到阿里系更为多元化的发展格局中,收购Data Artisans不失为面向新战略的一次有力布局。
阿里的Flink血液
不熟悉的Data Artisans的读者,会很容易错过那些因标题为“阿里巴巴收购德国数据公司”这种平淡表述下的很多信息。即使那约1亿美元的收购额表述,在有着近4000多亿美元体量的的阿里卖卖卖的历程中,对比之前收购饿了么的95亿美元、36.7亿美元拿下优酷土豆等等,也实在是难入法眼。
但其实,Data Artisans手里握着一项当今大数据流处理引擎为数不多的前沿技术,叫做Flink。Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。企业依托Flink技术体系建立的大数据流处理引擎解决方案,可以更合理更快速地获得计算结果投入到企业决策。Data Artisans在2015年初将Flink贡献给Apache社区并成为该社区的顶级项目,Data Artisans此后持有多个并行流的data Artisans Platform成为Flink的商业版本。
据Data Artisans官网介绍,其dA平台由Apache Flink和dA Application Manager组成,“包括与容器编排、持续集成/持续交付(CI/CD)、日志记录、度量指标和状态存储整合的随时可用的功能,为公司客户提供了单一视图,以便了解所有的数据流处理应用。”其客户包括阿里巴巴、荷兰国际集团(ING)、Netflix、优步、Lyft、、eBay、yelp、华为和Capital One等。
在Data Artisans的客户名单里我们轻而易举的发现了阿里,其中他每年双十一时让我们在阿里总部盯着的那个大屏幕上显示实时成交数字,其背后就是依赖Flink技术。那块屏幕显示的数字,需要通过巨大的网络流量汇总各个地方的报表、数据库等的数据,并需要在毫秒级别的时间延迟之内进行计算,并将计算结果汇总为单一的视图,即我们可以通过一块屏幕观察到的结果,这样的技术实现正是大数据流处理引擎技术在当今成为AI时代顶梁柱的核心原因。
如果说Flink建立的技术体系对AI时代是强需求,对阿里就是核心需求。为此,阿里在Flink引入内部团队后打造了Blink。据透露,目前阿里巴巴所有的业务,包括阿里巴巴所有子公司都采用了基于Flink搭建的实时计算平台。另外,阿里巴巴集团副总裁周靖人之前宣布,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月正式开源,这就意味着阿里未来将会主要以Blink的身份来投入Flink 的社区贡献了。
阿里巴巴集团副总裁周靖人
可以说,一路下来,对Flink的投入,阿里已经证明了自己在大数据计算领域的战略眼光。
首先,阿里较早地看到了业务发展需要在大数据时代里需求解决方案。有着十年服务中国企业云计算从业历史的阿里,已经在第一线看到了大数据量爆发带给企业的业务压力,需要有高吞吐、低延迟的大数据计算解决方案服务自己的大规模数据业务场景。早在2004的时候,谷歌自己就放弃了自己创立的大数据离线计算鼻祖,PB规模数据同时计算是MapReduce难以逾越的瓶颈。此后Spark发展至今,用批处理方式将大数据计算带入分钟级的反应延迟。如今,流式主导的分布式计算正在主导大数据计算引擎将企业带入近乎实时数据环境。为此,阿里巴巴计算平台事业部资深技术专家莫问在云栖大会上指出,2014年Flink凭借高吞吐、低延迟等其它高级功能而在开源大数据引擎界展露头角,在2015年则将Flink引入团队研发,期望将来可服务于自己的超大规模数据业务场景。
第二,阿里认识到Flink的开源技术基因与自己业务融合的落地空间。作为Apache的顶级大数据流式计算引擎,Flink并不孤独。这两年谷歌支持的Beam、DataTorrent支持Apache Apex都成了开源在这领域里的佼佼者。同时,来自twitter的Storm、LinkedIn的Samza也凭借独特的优势各领风骚。对此,阿里看到了其可以在Flink上发展的“非共识”空间,莫问认为用户需要有一套统一的大数据引擎技术,只需要根据自己的业务逻辑开发一套代码,在各种不同的场景下,不管是全量数据还是增量数据,亦或者实时处理,一套方案即可全部支持。“这就是阿里选择Flink的背景和初衷。”莫问表示。
第三,将Flink引入阿里全线业务,从而用场景优势拓展了Flink技术栈前进空间。Flink最高成就显然是以其在阿里的应用为布局的。关于Flink在阿里巴巴的大规模应用,莫问披露,Flink最初上线阿里巴巴只有数百台服务器,目前规模已达上万台,此等规模在全球范围内也是屈指可数;基于Flink,内部积累起来的状态数据已经是PB级别规模;如今每天在Flink的计算平台上,处理的数据已经超过万亿条;在峰值期间可以承担每秒超过4.72亿次的访问,最典型的应用场景是阿里巴巴双11大屏。
Flink技术支持了阿里双十一购物节大屏显示的海量实时计算结果
第四,阿里将Flink带到前沿战场,创新聚焦在真正变革上。在阿里着手改造Flink之前,Flink针对“一套统一的大数据引擎技术”已经初露端倪。大数据计算引擎在批处理与流式计算之间,最大的不在于数据进入计算引擎后,驻留缓存的时间方式的不同,批处理取决于驻慢缓存空间之后落地长期存储,而流式计算旨在规定的时间或是容量内会将数据发送到下一节点。Flink较同期方案,如Spark、Storm等,优势就在于可以同时兼顾两种方案计算于一套计算引擎,但无法“统一”为一个堆栈。为此,阿里巴巴在Flink上提出了新的统一API架构,采用DAG(有限无环图)API。“整个拓扑是可以融合批流统一的语义表达,整个计算无需区分是流计算还是批计算,只需要表达自己的需求。”
Flink的未来,已经决定这阿里的技术基因走向。莫问在云栖大会上提出了Flink的未来三个方向:首先,让Flink在更多的场景下落地,成为一种主流的批计算引擎。然后进一步在流和批之间进行无缝的切换,流和批的界限越来越模糊。其次,让Flink的生态上有更多语言的支持,不仅仅是Java,Scala语言,甚至是机器学习下用的Python,Go语言。还有,完善上层Flink的Machine Learning算法库,同时Flink往上层也会向成熟的机器学习、深度学习场景集成。
不难看出,Flink的技术优势让阿里看到了符合自己大规模业务场景支持的预期,未来深度学习场景的构建需要从现有批流融合,发展为更加开放和智能的落地场景,不断拓展Flink的生态。
阿里需要拓宽技术护城河
Flink项目是大数据处理领域最近冉冉升起的一颗新星。有关其技术优势我们在《程序员》杂志的《深入理解Flink核心技术》,以及阿里团队发表在其云栖社区的两篇文章《Flink已经足够强大了吗?阿里巴巴说:还不够》和《阿里巴巴为什么选择Apache Flink?》中已经有了非常详尽的解读。
总结来看,Flink在2015年之前稳定性、安全性方面广受质疑,阿里投入研发后,通过架构变革、创新中间业务层、整合计算流程、开发融合适配接口等等,Flink可以说迎来脱胎换骨的巨大发展优势。
完成对Data Artisans的收购,阿里无疑可以进一步整合Flink的整个生态资源,作出更有利于Flink发展的规划。不过,随着Flink的一些竞争对手也陆续实现了阿里在技术上的领先优势,Flink在带给阿里未来强化大数据事实计算领先地位上,也充满诸多未知数。
首先,收购前Flink有独立供应商Data Artisans支持,开源贡献使其技术发展路线容易符合更广大用户的预期。收购后阿里对Flink发展的拥有绝对权,其对社区贡献的参与积极性或相对减弱。
我们看到,这几年Samza在LinkedIn开源后缺乏重量级用户的加持而发展的举步维艰。早在2014年成为顶级Apache流处理框架项目的它,在久前才进入自己的1.0阶段,而此时Flink已经历多次迭代到了1.8版本。LinkedIn的Sam Samza团队负责人Samarth Shetty为此在Samza 1.0的发布会上表示,当他们第一次找寻流处理时,现有的流处理框架很少能够处理他们在LinkedIn上的规模或技术问题,“例如,我们必须在Samza中构建增量检查点和主机关联性等功能。当时在Apache Flink等框架中无法使用这些功能。”显然,阿里在Apache Flink社区贡献已经改变了这一局面。如今,阿里掌控Flink一家独大,对于平衡Flink的商业版和社区之间的贡献,或许会有新的变化。
再者,当下大数据流式计算技术突破竞争过于聚焦,阿里的技术护城河还需要有新的突破。例如,即使阿里当前得益于自己已经在YARN上实现了API的连接得以将其运行在资源管理器上,Samza则直接作为库嵌入到应用程序中并在任何资源管理器上运行,从而让计算引擎相对底层服务更加透明。除此之外,SQL支持现在成为流媒体的主战场,Kafka和Spark都有了,致力于支持用SQL创建交互式shell。
第三,随着大数据流式计算可以提供更快的数据决策,用户针对传统批处理模式正在加速向实时数据场景迁移,为此流式计算技术在做好创新架构突破的同时也要注意对传统数据资产的有效衔接。诸如,Flink已经在其分布式的流式计算框架中实现了事物的ACID操作,有效解决的事物的分布式存储环境的缓存一致性和分布式锁的概念。Data Artisans联合创始人兼首席执行官Kostas Tzoumas表示,他们正为这一技术申请专利,“我们允许公司摆脱他们真正昂贵和复杂的Oracle数据库,这些数据库目前为他们提供ACID交易,并转向允许您扩展的新技术,允许您实施自定义代码,”他同时表示:“但存在一些明显的局限性,例如Flink与Oracle数据库不兼容API。”
在这方面,Spark因为未能及时支持Spark结构流和高级会话处理的新API,从而让Netflix的高级数据工程师Arora决定Netflix批量作业迁移选择了Apache Flink的流式操作。
第四,阿里在获得Flink商业所有权后,需要更为清晰且落地的Flink商业规划。在这方面,Apex似乎是个很好的例子。DataTorrent将其RTS平台的核心处理引擎在两年前开放给Apache,当时其已经可以利用YARN实现按需规模伸缩且通过HDFS实现容错能力。那是的Flink依旧显得稚嫩呢。不过在随后的发展中,DataTorrent表越来越激进,诸如DataTorrent首席执行官Guy Churchward宣布DataTorrent标记的主要新功能包括通过与Druid集成扩展支持SQL和分析,通过Python和PMML实现更多机器学习和AI功能,通过与Drools集成支持复杂事件处理规则,以及存储和重放以记录和重放来自一个时间点等诸多功能,从平台方向到应用软件的创新让DataTorrent的发展陷入一种混乱。在2018年2月,在Guy Churchward宣布其将提供流媒体数据应用程序来实现颠覆性技术和颠覆性商业模式的90天后,DataTorrent破产了。显然,由于流式计算和批处理在当下依然有着较为明确的作用场景,阿里极力致力于批流一体化的实现还需要有明确的场景支撑才会更有说服力。
第五,作为阿里云最为有利的两个竞争对手,Amazon或是微软早已经实现托管的高速实时流分析服务,显然阿里云的流式计算堆栈Flink还需进一步完善。例如Amazon Kinesis可以从前端的应用服务器(例如Web服务器)或者移动的客户端(手机等移动设备或者IoT设备)直接注入流式数据,数据可以通过EMR进行流式处理和计算(例如基于Spark Stream的EMR计算框架),并将数据存储于Amazon DynamoDB或者对象存储S3之上。
根据MarketInsightsReports的数据,预计到2025年全球流媒体分析市场将达到477.5亿美元,从2017年到2025年将增长34.98%。而在IDC在一份新白皮书中表示,到2025年,将近30%的所谓“全球数据球”将成为实时信息。而当下,大数据、AI、物理网正在加速推动流式计算集成到机器学习、人工智能框架中。阿里巴巴基于 Flink 搭建的平台于 2016 年正式上线,并从阿里巴巴的搜索和推荐这两大场景开始实现。目前阿里巴巴所有的业务,包括阿里巴巴所有子公司都采用了基于 Flink 搭建的实时计算平台。可以相信,接下来, Flink将在阿里丰富的场景下,有着更快的发展。
去年的时候,马云在谈到传位于CEO张勇的时候,马云期望张勇可以带给阿里更多技术基因,让整个阿里在人们心中的定位更多有技术商业化的色彩。
对此,一直对这方面技术和投资动态有深入研究的国科嘉和基金执行董事吴一洲认为,这次并购是阿里在技术上的一个认真的思考和布局,批流结合有其特定场景,公有云或者私有云都可以打包 flink 作为批/流平台,能看出阿里对技术储备的战略意图。同时,吴一洲也认为,这次并购更深远的影响可能在于,之前公有云厂商薅开源羊毛,若持续吸收控制开源平台,那么未来开源软件在公有云上的授权策略可能会发生变化。第三,再看远一点,她认为很可能是大平台储备技术筹码的开始,对未来云服务的生态和格局会带来影响。
更多精彩内容,关注钛媒体微信号(ID:taimeiti),或者下载钛媒体App