开发者学堂课程【《实时计算Flink 版产品入门与实操》:实时计算 Flink 与你相约阿里云】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/334/detail/3735
实时计算 Flink 与你相约阿里云
内容简介:
一、历史回顾
二、选择理由
三、产品介绍
四、未来可期
众所周知阿里云的 slogan 为计算是为了无法计算的价值,计算的实体其实就是数据,但随着时间的推移,数据的价值是逐渐递减的,如何从数据产生开始就尽早的去发掘它的最大价值是实时计算不懈的追求。
随着技术的发展,Flink 已经成为实际计算的工业标准,越来越多的公司使用Flink作为自己实时计算的工具。
在实时计算领域,阿里云不断探索推出了实时计算 Flink 的产品。
一.历史回顾
1)实时计算发展概要
早在 2013 年,阿里巴巴内部就在上线实时计算的场景,包括当时的搜索中心。
在 2015 年,建设了实时计算的平台,并在内部上线,同年双 11 上线 GMV 大屏等相关业务,从此开启了实时计算 Flink 在阿里巴巴的发展。
在 2016 年七月,实时计算 1.0 版本开始公测,开箱即用一站式开发平台 Galaxy(基于 storm )引擎开发,打通了云上环境,flink的公测基本早于其他的实时计算。
在 2017 年 十月,基于 blink 的实时计算 2.0 版本上线,该版本是全托管,但是当时的计算不能与不同的用户的环境打通,所以只能运行 SQL。
在 2018 年十月推出了 2.0 的独享模式,SQL(UDF)能力与用户 VPC 无缝连接,使得用户的多个作业模式得以运行。
在 2019 年九月,因为中德公司的合作和许多大用户的掌控需求,阿里巴巴又推出了基于Flink引擎的半托管模式,也就是实时计算 3.0,3.0 是中德共建一站式平台VVP,并且支持了 Yam 和 K8S 两个主流的调度引擎,用户可以自助登录 Yam 或K8S 去管控自己的任务,同时也能享受到阿里巴巴提供的增值服务。
相较于 2.0 版本来说,3.0 版本推出了全新的全托管模式。由于 2.0 版本下当用户资源不足时,用户扩容需要扩整台 ecss 机器,缺点是速度比较慢,另一方面 ecss机器过重,使用不够灵活,在资源的弹性上存在一定的缺陷。而推出的 3.0 版本运用全新的全托管模式,基于 Flink 引擎,同时既能跟用户的VPC打通,又能够做到充分的隔离,保证用户运行 SQL,UDF,data stream 等作业,这给运维带来了良好的条件,不用单独维护用户的数据。此模式是业界在实时计算领域内的先行者。
2)大事件——中西合璧
在 2019 年,我国和德国在合作之后统一了方向,都基于统一的基础引擎 Apache Flink,并在上面添加增值插件,同时在阿里云上的产品是以 realtime compute
作为产品推出给用户,这样做是为了共建一套核心引擎,通过增值的插件来提升商业化的能力,打造全球的技术品牌 Ververica,在阿里云上继续使用原来的产品形态RealtimeCompute。
3)社区/企业/产品良性循环
Apache Flink 是发展的土壤,基于 Apache Flink 阿里云做了许多企业的增值,比如 connector 和 SQL 的一些优化,这就作为商业的核心增值能力。在具有这些核心增值能力的同时,将它产品化到阿里云上,产生了 RealtimeCompute,随着RealtimeCompute 的用户接触,用户反馈一些性能、功能上的问题,这就丰富了商业化的基本功能。
将这些功能进行进一步的抽象,再回馈到社区里,从而让社区更加的繁荣,形成了社区/企业/产品的良性循环。
阿里云的技术断言为“做最好的实时计算”,产品的Slogan为“实时,即未来”。
4)多样的深度用户
从 2015 年开始,阿里云在云上积累了很多不同的业务领域、场景,包括实时大屏场景、实时机器学习、实时ETL场景、实时数仓场景;同时也培育出了各个领域的典型用户,分别在互联网娱乐、在线教育、新零售、交通出行、金融财富等领域都有标杆客户。
这些客户既扩大了对 Flink 的使用,同时他们反馈也促使将 Flink 做的更好。
二.选择理由
1)选择云上实时计算
云上的实时计算 Flink 有先天的云上优势,避免了用户自己建设基础设施的成本,在其他软件上是多个产品的组合,用户不可以自主选择,但是在云上用户可以按需选择产品,扩展性好,资源池化,水平扩展,不会造成资源浪费,有弹性优势。
云上实时计算是官方出品,跟德国中西合璧,同时产品完全兼容社区,用户的反馈可以快速返还社区,可以迅速修复问题,而且还在 Apache Flink 的基础之上提供了丰富的增值能力,这些能力既避免了用户自己去建设周边的打通,同时也有资源上的优化,避免资源浪费。这些增值能力是给用户带来的价值。
云上实时计算有着丰富的经验,阿里巴巴使用实时计算 Flink 已经近十年的时间,在这期间积累了大量的经验和业务场景,避免了用户花费漫长的人力和时间的培养。实时计算Flink也经历过多次双11等实战大考,而不只是平常的简单业务中。
云上实时计算提供了丰富的企业增值,主要体现在多、快、好、省几个方面,让用户用的放心,买得舒心。
2)多快好省
多体现在产品输出形态多,用户想要那种形态就可以提供那种形态。比如说用户想要关注自己的业务发展,可以选择全托管,若是用户有较强的技术诉求,可以选择半托管。根据用户的体量大小,推出了混合云上企业版和敏捷版。对某些可以可以实时软件化输出和对需要经验的客户提供专家服务。
上下游对接 Connector 非常多,基本上覆盖了目前阿里云上所存在所有数据存储,包括开源的和商业化的,而这在社区远少于企业版。提供了垂直领域的函数,可以让用户开箱即用。
系统/业务监控指标多,让用户更直接的看到系统情况,无缝对接阿里云运维体系,比如日志对接 sls/oss,指标对接 ARMS 等报警系统。
快体现在 Apache Flink 基础之上,自研 StateBackend,该性能平均优于开源性能 2倍以上;SQL/Table API 算子单独优化,部分性能领先开源 3 倍以上;实时计算版本更新快,由 Flink 创始团队主导版本开发,部分性能先于社区体验,用户不用担心部分功能在阿里云上有而在社区没有;同时是企业级的产品,有 24 小时的服务,在规定时间内响应用户反馈,及时处理客户的问题;版本 Bugfix 快,先于社区发布。
好体现在云基础设施集成度高(包括账号权限、计算 /VM、存储 /OSS、监控、告警、日志链路等等);对于 Yam 和 K8S 做了深度的优化,对于作业的提交时间以及大量作业的调度能力都做了深度的优化,达到生产级可用;同时对云产品提供了开发运维控制台,一站式开发/调试/运维服务,用户可以操纵自己的作业;
提供了全链路的智能诊断工具,提供智能化、自动化运维诊断,不需要用户自己查资料;提供了 OpenAPI,以便于用户二次开发,供各类业务场景调用;内置元数据集成,且与 HMS 等外界元数据系统打通,这个功能会尽快推出;云计算提供了 SQL e2e 开发体验,用户可以自主编辑、调试和运行 SQL;集成 Alink 的能力,和Alink 无缝打通,由 Flink 创始团队提供专业技术服务。
省体现在云计算提供了单作业 AutoPilot 功能,自动弹性扩缩容,解决业务波峰波谷资源成本问题;不光单资源,而且细力度,全托管支持按量付费,弹性扩缩容,用户需要多少资源就申请多少资源,节省机器成本;全托管同时提供 7*24 小时的免运维服务,用户人力成本节省达数十万一年;半托管提供专业技术支持,包括问题定位、给出解决方案等;提供全链路作业开发、运维管理系统,有完整的任务生命周期管理,为用户节省开发人员业务实现成本。
三.产品介绍
1)产品技术栈
整个产品技术栈分为四个部分,最底下的是 Computing Resources,包括 Physical Macheine、Virtual Machine 等等,其次 Flink 的运行需要一套分布式文件系统(DFS),而这些文件系统主要运用 OSS、HDFS 等分布式文件系统实现;对于调度系统(Scheduler),云计算最主要支持了当前热门的 Yam 和 K8S,充分满足了不同调度体系运用的需求;
基于这些系统,上层提供了 Ververica Platform
第一就是基于 Apache Flink 做了增值插件,
第二在任务管控层面采用微服务的架构,给用户提供了整个作业生命周期的管理,WP 的开发和查看,SQL 的开发以及 Auto-Pilot 的能力,最终通过 get way 的方式传给用户,云计算做了更多的任务管理上的增值和优化去开发更多的功能,目标是实现一套基于 Apache Flink 的企业化版本,提供一站式的处理能力和更多的插件。
2)公上产品形态
全托管形态适用于只关心业务发展,不关心集群运维的用户。全托管分为 Blink 和Flink 两种形态。Blink 主要是在丰富 SQL 上比较完备,Flink 只要提供 CU 力度的收费,并且细力度弹性,用户按需即用,按量付费,在SQL领域会尽快与Blink补齐。
半托管形态是将整个 Ververica Platform 部署到用户的环境中,用户的环境可以是Yam 也可以是 K8S,半托管的两款产品已商业化并且只收取 ECS 费用。
3)实时打通上下游
打通用户的上下游尤为重要,让数据总线、日志服务、消息队列等流表可以流进Flink,让表格存储、关系型数据库、分布式数据库等等作为维表。同时对于一些大型存储,比如 MaxCompute、Hbase、OSS 在数据量较小的情况下也可以作为维表加载进来,能够输出到用户的各种存储系统中。整个实时计算 Flink 是将用户的存储计算作为上游,用户的另一些存储作为维表,再输出到用户的作业环境中。无需数据搬移,自动和用户的环境打通,完成复杂的计算。
四.未来可期
1)产品功能持续推出
·更完备的 SQL 支持
·更丰富的 Connector 连接
·更智能的 AutoPilot 能力更高效的运行性能
·更易用的产品交互 /SDK
·更实用的 debug/troubleshooting 能力
·更有效的监控告警
2)产品介绍持续更新
入门篇
·实时计算 Flink 与你相约阿里云
·实时计算典型应用场景及产品概念介绍
·如何开通实时计算 Flink
实操篇
·如何跑通第一个 DataStream 作业
·如何跑通第一个 SQL 作业
·如何使用 AutoPilot 对作业自动调优。
·如何将实时计算 Flink 与自身环境打通
·如何平迁 Flink 任务到实时计算
·实时计算典型应用场景实操之实时数仓
高级篇
·如何做实时计算 Flink 的 troubleshooting
·如何更有效地配置 Flink 任务的内存