开发者学堂课程【实时计算 Flink 实战课程:实时计算 Flink 与你相约阿里云】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/762/detail/13351
实时计算 Flink 与你相约阿里云
内容介绍:
一、前言
二、历史回顾
三、选择理由
四、产品介绍
五、未来可期
六、后续课程内容基本介绍
一、前言
众所周知,阿里云的 slogan ,是为了计算无法计算的价值。计算的实体其实就是数据,但随着时间的推移,数据的价值是逐渐递减的。从而从数据产生开始,就尽早的去发掘它的最大价值,实际上是实时计算不懈的追求。随着技术的发展, Flink 经成为实时计算的工业标准,越来越多的公司使用 Flink 作为自己实时计算的工具。在实时计算领域,阿里云也在不断的探索,并且推出了实时计算的产品。今天要学习的是云上实时计算 Flink 的情况。
主要内容是:历史回顾(阿里云上实时计算的发展)、选择理由(为什么要选择阿里云实时计算)、产品介绍(目前阿里云上实时计算产品的一些基本情况)和对未来发展的展望。
二、历史回顾:
早在2013年,阿里巴巴内部就在上线一些实时计算的场景,包括当时的搜索中心,用来做实时的增量和其他的一些场景。
在2015年,建设了一个实时计算的平台,并在内部上线,同年双十一在 GMV 大屏上线了这样的业务。从此开启了实时计算 Flink 在阿里巴巴的发展。
2016年7月,实时计算1.0版本开始公测,基于 Galaxy (基于 storm )引擎开发。
2017年10月。基于 Blink 的实时计算2.0版本上线,该版本是一个全托管,但也只能运行 SQL,因为当时用户的环境需要 vpc ,要跟不同用户的 vpc 打通是一个比较大的问题,从而对于里面的 SQL 里的 UDF 以及 datastream 作业无法做到很好的隔离,所以当时只推出了纯 SQL 的作业模式。
为解决此问题,在2018年10月就推出了2.0的独享模式。每个用户有一个独立的小集群,每个小集群跟用户的 vpc 无缝打通,从而既做到了跟用户 vpc 上下游的连接,又能做到很好的隔离。比如用户的 SQL+UDF 能够运行, datastream 作业也能运行。
2019年9月,由于中德公司的合作,并且由于一些大用户需要对整个运行环境有一个好的掌控,又推出了基于 vvp 的实时计算半托管模式,也就是实时计算3.0。3.0是中德共建的一站式平台 vvp, 并且主要支持了 Yam 和 KBS 两大主流的调度引擎,用户可以登上 Yam 或 KBS,因为 Yam 和 KBS 部署在用户的环境里面,去操作或管控自己的任务,同时也能享受到提供给用户的一些增值服务。相对于2.0版本3.0推出了一种全新的全托管模式。由于2.0还是基于 ecs 机器,当用户资源不足的时候,用户扩容需要扩整台 ecs 机器,第一速度比较慢,第二整个 ecs 机器比较重。 当用户只需要一点资源时,需要弹出整台机器去满足用户的业务,而且也不够灵活。所以在资源的弹性上,2.0还是有一定的缺陷。同时,由于要为每个用户维护一套机群,对于运维也是一个巨大的挑战。所以3.0推出了全新的全托管模式,基于 Flink 引擎,又是一套大集群。既能跟用户的 vpc 打通,又能够做到充分的隔离,用户也能运行 SQL+UDF , datastream 作业。这给运维也带来很好的一些基本条件,不用给每个用户维护一套独立的集群。这是目前在大力推广的全托管的一种模式,也是业界在实时计算领域里面的先行者。
原来在云上的模式是基于 Blink 引擎+ RealtimeCompute 产品的模式。之前,德国是基于 Apache Flink 引擎+ VERVERICA PLATFORM 的组合方式,但是到2019年,双方合作之后,统一了方向,都基于 Apache Flink 作为核心引擎,并在上面添加增值插件。同时在阿里云上的产品是以 RealtimeCompute 作为产品透出给用户,但是 powered by ververica ,通过这样共建一套核心引擎。用增值的插件来提升商业化的能力,打造全球的技术品牌 ververica,在阿里云上继续孵用原来的产品形态 RealtimeCompute 。
至于其中的关系,首先,基于 Apache Flink ,是阿里云上的社区,也是发展的一个土壤,因此做了很多企业增值,比如 connector, SQL 的一些优化等。那么这就作为商业核心的一个增值能力,在具有这些核心增值能力的同时,将它产品化到阿里云上,所以是 RealtimeCompute 。随着 RealtimeCompute 对用户的接入,然后用户不断的反馈一些包括性能、功能上的一些问题,从而又丰富了商业化的一些基本功能,这些功能再经过进一步的抽象,回馈到社区里面,从而让社区更加繁荣,所以就形成了一个社区、企业和产品的良性循环。阿里的技术断言要做最好用的实时计算,这里的最好用包括性能更强、功能更多、应用性更好,产品的 slogan 是实时即未来,希望更多的场景采用实时计算,更多的业务使用 Flink ,然后用 Flink来推动整个实时计算的发展。
从2015年开始,阿里在云上积累了很多不同的业务领域场景,包括实时大屏,实时的机器学习,还有实时的 ETL,实时数仓等。同时也培育出了各个领域的典型用户,分别在互联网娱乐,在线教育,新零售,交通出行,金融财富等领域都有标杆客户。这些客户既扩大了对 Flink 的使用,同时,他们宝贵的场景和反馈也促使将实时计算 Flink 做得更好。
三、选择理由
业务实施化趋势越来越强,在在线应用、在线 ML、实施风控、实施 ETL 等等各行各业领域,实时计算的发展越来越好,实施需求也越来越强。选择实时计算 Flink 的原因有以下四个方面。
1、实时计算 Flink 有先天的云上优势。
(1)成本:在云上的实时计算避免了用户去建设基础设施,比如机房、网络等。这些设施的建设依赖重,工期长,以后的维护成本也大。
(2)灵活:一块业务的发展需要多个引擎或者多款产品的组合,如果自建,用户需要各个建设这些产品,不能按需选择,但是在云上可以根据自己的需要选择需要的产品。
(3)可扩展:扩展性云上更好,在线下自建用户需要提前预估好自己的资源,预估偏多,可能造造成资源浪费,预估偏少,不一定能够扛过业务的峰值。所以,对于可扩展弹性上讲,在云上也有它的先天优势。
2、在实时计算 Flink 三块是官方出品,跟德国团队中西合璧,共同打造国际化的一个品牌。同时,产品也完全加入了社区,用户的作业甚至可以不用改动,平添到系统中,如果遇到一些问题,也可以及时反馈给社区,迅速修复。而且在 Apache Flink 的基础之上也提供了一些丰富的增值能力,这些能力在云上的使用场景尤为重要,既避免了用户自己去建设周边的打通包括 connector ,日志, Magic 等,同时也有一些资源上的优化,这些增值能力,也是带给用户的一些增值的价值。
3、对于实时计算 Flink ,有丰富经验。阿里巴巴已经使用实时计算 Flink 近十年,在这期间,总结了大量的经验和业务场景,而这些经验和业务场景的透出,是避免了用户自己经过漫长的人力和时间的培养才能得到的。实时计算 Flink 也经历过多次双十一的实战大考,而不是只是运行在平常一些简单的业务中,说明它能够肩负起典型的历史重大任务。
4、有丰富的企业增值,主要体现在多、快、好、省等几个方面,让用户用得放心,买得舒心。
(1)多:
a.产品输出形态多:用户想要什么就输出什么。比如用户比较关注自身的业务发展,而不关心整个机群的运维,就可选择全托管,如果用户有较高的技术诉求,需要关注机群的运维情况、运行情况,需要定位或 debug 一些具体错误,就可选择半托管。如果不在公共云上而是在混合云上,就可以根据用户的体量大小输出企业版和敏捷版两种形态。如果用户不需要阿里云的底座,就可以给某些标杆客户提供软件化的输出,甚至用户只使用 Apache Flink ,对于某些问题无法解决或对于某些场景需要经验输出,就可以给用户提供专家服务。
b.上下游对接 connector 多:基本覆盖了目前阿里云上存在的所有数据存储,包块开源的和数据化的,而这在社区远少于企业版。而且经过多次打磨,特别是对于一些重要的场景或 connector ,经过特殊优化。
c.提供垂直领域函数多:这些函数用户开箱即用。
d.对于系统或业务的监控指标多:这些指标能让用户更直接的看到系统的情况,而不用自己埋点或发文档。
e.运维工具多:无缝对接阿里云运维体系,比如日志可以输出到 sls 或 oss ,一些指标可以对接到 ARMS 等报警系统。如果用户有使用阿里云的经验,就可以无缝使用这个工具来维护自己实时计算 Flink 的任务。