阿里重磅开源Blink:为何咱们等了这么久?

12月20日,由阿里巴巴承办的 Flink Forward China 峰会在北京国家会议中心召开,来自阿里、华为、腾讯、美团点评、滴滴、字节跳动等公司的技术专家与参会者分享了各公司基于 Flink 的应用和实践经验。web

感兴趣的开发者能够看云栖社区的对于大会的主会+5场分论坛的直播与视频点播算法

会议进行中,看到AI前线对蒋晓伟的采访。正如许多开发者所关心的Flink和Blink的关系(云栖社区2016年文章:阿里蒋晓伟谈流计算和批处理引擎Blink,以及Flink和Spark的异同与优点),现在有了更新的方向。本篇AI前线的专访讲述的极为清晰。特别转载,共享。安全


今年,实时流计算技术开始步入主流,各大厂都在竭尽全力地试用新的流计算框架,实时流计算引擎和 API 诸如 Spark Streaming、Kafka Streaming、Beam 和 Flink 持续火爆。阿里巴巴自 2015 年开始改进 Flink,并建立了内部分支 Blink,目前服务于阿里集团内部搜索、推荐、广告和蚂蚁等大量核心实时业务。架构

在大会的主题演讲上,阿里巴巴集团副总裁周靖人宣布,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月正式开源! 阿里但愿经过 Blink 开源进一步加深与 Flink 社区的联动,并推进国内更多中小型企业使Flink。框架

Flink Forward China会上,AI 前线对阿里巴巴计算平台事业部研究员蒋晓伟(花名量仔)进行了独家专访,他与咱们分享了关于下一代实时流计算引擎的见解,并针对 Blink 的重要新特性、开源后 Blink 与 Flink 之间的关系、Blink 后续规划等问题进行了解答。机器学习

阿里巴巴与 Flink

随着人工智能时代的降临和数据量的爆发,在典型的大数据业务场景下,数据业务最通用的作法是:选用批处理的技术处理全量数据,采用流式计算处理实时增量数据。在不少的业务场景之下,用户的业务逻辑在批处理和流处理之中每每是相同的。可是,用户用于批处理和流处理的两套计算引擎是不一样的。分布式

所以,用户一般须要写两套代码。毫无疑问,这带来了一些额外的负担和成本。阿里巴巴的商品数据处理就常常须要面对增量和全量两套不一样的业务流程问题,因此阿里巴巴就在想:能不能有一套统一的大数据引擎技术,用户只须要根据本身的业务逻辑开发一套代码。这样在各类不一样的场景下,无论是全量数据仍是增量数据,亦或者实时处理,一套方案便可所有支持,这就是阿里巴巴选择 Flink 的背景和初衷。微服务

彼时的 Flink 无论是规模仍是稳定性还没有经历实践,成熟度有待商榷。阿里巴巴实时计算团队决定在阿里内部创建一个 Flink 分支 Blink,并对 Flink 进行大量的修改和完善,让其适应阿里巴巴这种超大规模的业务场景。简单地说,Blink 就是阿里巴巴开发的基于开源 Flink 的阿里巴巴内部版本。性能

阿里巴巴基于 Flink 搭建的平台于 2016 年正式上线,并从阿里巴巴的搜索和推荐这两大场景开始实现。目前阿里巴巴全部的业务,包括阿里巴巴全部子公司都采用了基于 Flink 搭建的实时计算平台。学习

目前,这套基于 Flink 搭建的实时计算平台不只服务于阿里巴巴集团内部,并且经过阿里云的云产品 API 向整个开发者生态提供基于 Flink 的云产品支持。

如下内容整理自 AI 前线对蒋晓伟的采访。

开源的时机

AI 前线:为何选择如今将 Blink 开源?这其中有哪些考量?什么样的时机才是开源最合适的时机?

蒋晓伟: 在我看来,有几个因素:第一个因素是,这几年咱们一直试图把阿里对 Flink 的改进推回社区,但社区有本身的步伐,不少时候可能没法把咱们的变动及时推回去。对于社区来讲,须要达成共识,才能更好地保证开源项目的质量,但同时就会致使推入的速度慢一些。通过这几年积累,咱们这边和社区之间的差距已经变得比较大了。Blink 有一些很好的新功能,好比批处理功能,在社区版本是没有的。在过去这段时间里,咱们不断听到有人问,Blink 何时能开源、是否是能开源这样的呼声。咱们有两种方法,一种就是慢慢地推回去再给用户用。但咱们认为这样等下去对社区不是最好的。咱们仍是但愿尽快把咱们的代码拿出来,尽可能让你们都能用起来。因此最近这半年,咱们一直都在准备把代码整理好去进行开源。

选择在这个时间点开源有几个好处:第一个好处是咱们所开源的这些代码在阿里内部通过像双一10、双十二这样巨大流量的检验,让咱们对它的质量有更大的信心,这是很是大的好处;第二个好处,Flink Forward 大会是第一次在中国举办,在这样一个场合开源代表了阿里对 Flink 社区坚决的支持,这是一个比较好的场合。主要是基于这些考虑。

选 Blink 仍是 Flink?这不会是一个问题

AI 前线:开源的 Blink 版本会和阿里巴巴内部使用的 Blink 保持一致吗?

蒋晓伟: 即将开源的是阿里巴巴双十二的上线版本,还会有一些小的改进。

AI 前线:Blink 开源后,两个开源项目之间的关系会是怎样的?将来 Flink 和 Blink 也会由不一样的团队各自维护吗?

蒋晓伟: 开源的意思是,咱们愿意把 Blink 的代码贡献出来,但这两个项目是一个项目。有一件事情须要澄清一下,咱们将公开 Blink 的全部代码,让你们均可以看到,但与此同时,咱们会跟社区一块儿努力,经过讨论决定 Blink 以什么样的方式进入 Flink 是最合适的。由于 Flink 是一个社区的项目,咱们须要通过社区的赞成才能以分支的形式进入 Flink,或者做为变动 Merge 到项目中。我想强调一下,咱们做为社区的一员须要跟社区讨论才能决定这件事情。

Blink 永远不会成为另一个项目,若是后续进入 Apache 必定是成为 Flink 的一部分,咱们没有任何兴趣另立旗帜,咱们永远是 Flink 的一部分,也会坚决地支持 Flink。咱们很是愿意把 Blink 的代码贡献给全部人,因此明年 1 月份咱们会先将 Blink 的代码公开,但这期间咱们也会和社区讨论,以什么样的形式进入 Flink 是最合适的、怎么贡献是社区最但愿的方式。

咱们但愿,在 Blink 开源以后,和社区一块儿努力,把 Blink 好的地方逐步推回 Flink,成为 Flink 的一部分,但愿最终 Flink 和 Blink 变成一个东西,阿里巴巴和整个社区一块儿来维护。而不是把它分红两个东西,给用户选择的困难,这不是咱们想要的。

所以将来用户也不会面临已经部署了 Flink、是否要把 Flink 迁移到 Blink 的问题,企业选型时也不须要在 Flink 和 Blink 之间抉择,Blink 和 Flink 会是同一个项目。Blink 开源只有一个目的,就是但愿 Flink 作得更好。

Blink 改进了什么?

AI 前线:能不能重点介绍一下即将开源的 Blink 版本有哪些比较重要的新技术特性?与 Flink 最新发布版本相比,阿里的 Blink 作了哪些方面的优化和改进?

蒋晓伟: 阿里巴巴实时计算团队不只对 Flink 在性能和稳定性上作出了不少改进和优化,同时在核心架构和功能上也进行了大量创新和改进。过去两年多,有不少更新已经推回给社区了,包括 Flink 新的分布式架构等。

目前咱们的 Blink 版本跟社区版本还有几点差别,第一个是稳定性方面,咱们作了一些优化,在某些场景会比社区版本更加稳定,特别是在大规模场景。另外还有一个比较大的不同是咱们全新的 Flink SQL 技术栈,它在功能上,特别是在批处理的功能上比社区版本强大不少。它支持如今标准 SQL 几乎全部的语法和语义。另外,在性能上,不管是在流式 SQL 仍是批 SQL,咱们的版本在性能上都有很大的优点。特别是在批 SQL 的性能方面,当前 Blink 版本是社区版本性能的 10 倍以上,跟 Spark 相比,在 TPCDS 这样的场景 Blink 的性能也能达到 3 倍以上。若是用户对批处理或者对 SQL 有着比较强的需求,咱们这个版本会用户能够获得不少好处。

Blink 在阿里内部的应用

AI 前线:请介绍一下 Blink 在阿里内部的使用状况。目前 Blink 在阿里的大数据架构中扮演什么样的角色?在阿里内部主要用于哪些业务和应用场景?

蒋晓伟: 如今阿里的大数据平台上,全部的实时计算都已经在使用 Blink;同时,除了实时计算之外,在一些流批一体化的场景也会用 Blink 来作批处理;咱们在机器学习场景也有一个探索,叫作 Alink,这个项目是对 Flink Machine Learning Library 的改进,其中实现了大量的算法,都是基于 Flink 作实时机器学习的算法,Alink 在不少场景已经被证实在规模上有很大的优点。同时,咱们在图计算场景也有一些探索。

AI 前线:目前阿里内部有多少部门在使用 Blink?

蒋晓伟: 前段时间咱们刚刚作过统计,阿里的技术部门大约有 70% 都在使用 Blink。Blink 一直是在用户的反馈之中成长起来的,对于内部用户反馈的数据倾斜、资源使用率、易用性方面的问题,Blink 都作了针对性的改进。

如今 Blink 用的最多的场景主要仍是实时计算方面,阿里还有一些业务如今相对比较新,尚未进入实时计算的领域,等这些业务进入实时计算领域时也会使用 Blink。

在批处理方面,阿里内部也有一个自研的批处理引擎叫作 MaxCompute,MaxCompute 也会拥抱 Flink 生态,在语法和语义上作和 Flink 兼容的工做。将来,整个阿里的计算体系和平台都会融入同一个生态。
后续规划
AI 前线:接下来阿里对于 Blink 还有哪些规划?包括技术改进、落地应用、更新维护、社区等几个方面。

蒋晓伟: 从技术上说,今天咱们公布了 Flink 在批处理上的成果,接下来,咱们会对技术持续投入,咱们但愿每几个月就能看到技术上有一个比较大的亮点。下一波亮点应该是机器学习场景。要把机器学习支持好,有一系列的工做要作,包括引擎的功能、性能和易用性。这些工做咱们已经在内部的讨论和进行之中,接下来几个月,你们应该会看到一些成果。咱们也在和社区讨论一些事情。除了机器学习以外,咱们在图计算方面也有一些探索,包括对增量迭代更好的支持。作完这些以后,能够认为 Flink 做为大数据的计算引擎已经比较完备了。

同时,咱们也重点去作 Flink 的生态,包括 Flink 与其余系统之间的关系、易用性等。Flink 要真正作好,不只须要它自己功能强大,还须要把整个生态作得很是强大。这部分咱们甚至会跟一些 ISV 合做,看看是否是可以在 Flink 之上提供更好的解决方案,进一步下降用户的使用门槛。

在社区方面,咱们但愿可以把把 Blink 彻底融入 Flink 社区,一块儿作 Flink 社区的运营,让 Flink 真正在中国、乃至全世界大规模地使用起来。

在应用方面,实时流计算其实有不少颇有潜力的应用场景,但有一些可能你们不是很是熟悉,咱们会对这些场景作一些推广。以实时机器学习为例,它每每可以给咱们带来比通常的机器学习更大的效果提高。去年,实时强化学习给咱们在搜索上带来了 20% 以上的提高。除此以外,在安全领域(好比实时的 Fraud Detection)、监控报警方面,还有 IoT 领域,实时流计算都有很是普遍的应用场景。这些 Flink 如今可能已经作了,可是你们尚未意识到,Flink 可以给你们带来这样的商业上的好处。

AI 前线:Blink 开源以后,后续阿里在这基础上作的变动和更新会以什么样的方式推回社区版本?

蒋晓伟: 咱们理想的方式是,阿里内部的版本是社区的 Flink 版本加上一些定制化的插件,不须要对 Flink 自己作修改,而是对 Flink 作增长。好比跟阿里内部系统交互的部分跟社区是不适用的,就会保持在内部,咱们但愿这些修改不动 Flink 代码,而是用插件的方式加在 Flink 上面。最终的方式就是,对于全部公司都有用的修改会在 Flink 代码自己作修改,使全部使用 Flink 的公司都能从中获利,而对接阿里内部系统的部分就只在阿里内部使用。

下一代实时流计算引擎之争

AI 前线:先在不少人提到实时流计算引擎,都会拿 Spark 和 Flink 来作对比,您怎么看待下一代实时流计算引擎之争?将来实时流计算引擎最重要的发展方向是什么?

蒋晓伟:Spark 和 Flink 一开始 share 了同一个梦想,他们都但愿可以用同一个技术把流处理和批处理统一块儿来,但他们走了彻底不同的两条路,前者是用以批处理的技术为根本,并尝试在批处理之上支持流计算;后者则认为流计算技术是最基本的,在流计算的基础之上支持批处理。正由于这种架构上的不一样,从此两者在能作的事情上会有一些细微的区别。好比在低延迟场景,Spark 基于微批处理的方式须要同步会有额外开销,所以没法在延迟上作到极致。在大数据处理的低延迟场景,Flink 已经有很是大的优点。通过咱们的探索,Flink 在批处理上也有了比较大的突破,这些突破都会反馈回社区。固然,对于用户来讲,多一个选择永远是好的,不一样的技术可能带来不一样的优点,用户能够根据本身业务场景的需求进行选择。

将来,在大数据方向,机器学习正在逐渐从批处理、离线学习向实时处理、在线学习发展,而图计算领域一样的事情也在发生,好比实时反欺诈一般用图计算来作,而这些欺诈事件都是实时地、持续不断地发生,图计算也在变得实时化。

可是 Flink 除了大数据领域之外,在应用和微服务的场景也有其独特的优点。应用和微服务场景对延迟的要求很是苛刻,会达到百毫秒甚至十毫秒级别,这样的延迟只有 Flink 的架构才能作到。我认为应用和微服务实际上是很是大的领域,甚至可能比大数据更大,这是很是激动人心的机会。上面这些都是咱们但愿可以拓宽的应用领域。

AI 前线:在技术方面,Spark 和 Flink 实际上是各有千秋,但在生态和背后支持的公司上面,Flink 是偏弱的,那么后续在生态和企业支持这块,阿里会如何帮助 Flink?

蒋晓伟: 此次阿里举办 Flink Forward China 就是想推广 Flink 生态的重要举动之一。除了 Flink Forward China 大会,咱们还会不按期举办各类线下 Meetup,投入大量精力打造中文社区,包括将 Flink 的英文文档翻译成中文、打造 Flink 中文论坛等。在垂直领域,咱们会去寻找一些合做伙伴,将 Flink 包装在一些解决方案中提供给用户使用。

AI 前线:关于开源项目的中立性问题。阿里如今在大力地推进 Flink 开源项目的应用和社区的发展,但业界其余公司(尤为是与阿里在其余业务上可能有竞争的公司)在考虑是否采用 Flink 的时候可能仍是会对社区的中立性存在一些疑虑,对于这一点,阿里是怎么考虑的?

蒋晓伟: 阿里自己会投入很是大的力量推进 Flink 社区的发展和壮大,但咱们也很是但愿有更多企业、更多人加入社区,和阿里一块儿推进社区发展,此次阿里承办 Flink Forward China 峰会就是想借此机会让更多公司参与进来。光阿里一家是没法把 Flink 生态作起来的。我但愿你们可以看到咱们在作的事情,而后消除这样的疑虑。咱们会用本身的行动代表,咱们是真的但愿把 Flink 的社区作大,在这件事情上,咱们并不会有私心。

原文连接

相关文章
相关标签/搜索