摘要:本文整理自阿里云蓉荣的精彩演讲,将向大家介绍阿里云基于Flink企业版推出的Flink on Kubernetes -Ververica平台的产品功能和特性。
以下内容根据演讲视频以及PPT整理而成。
点击查看阿里巴巴AI智能专场直播
Flink产品介绍
使用过阿里云实时计算产品的用户都知道,目前支持实时计算的产品已经有两种模式,即共享模式和独享模式。这两种模式都是全托管方式,这种托管方式下用户不需要关心整个集群的运维。其次,共享模式和独享模式使用的都是Blink引擎。这两种模式为用户提供的主要功能也类似,1)都提供开发控制台;2)开发使用的都是Blink SQL,其中独享模式由于进入了用户的VPC,部署在用户的ECS上,因此可以使用很多底层的API,如UDX;3)都提供一套的开箱即用的metric收集、展示功能;4)都提供作业监控和报警功能。最后,在收费模式上,共享模式和独享模式用户所承担的都是硬件加软件(独享模式是软件(VPC))的费用。
在共享和独享这两种模式的基础上,阿里云实时计算团队于2019年9月中旬会推出一个新的模式,Flink on K8S,其与前两种模式区别主要在于:
• 托管模式:集群以半托管模式部署在用户ECS和K8S上,用户对该集群用完全的掌控能力。
• 引擎版本:直接使用开源Flink版本
• 提供功能:提供开发控制台支持用户提交并控制作业;支持Flink 1.6/1.7/1.8/1.9;也提供metric收集、展示、作业监控、报警功能;提供其他可插拔的增值功能。
• 收费模式:Flink on K8S模式下软件(VPC)是完全免费的,用户只需要支付ECS的费用就可以免费试用Flink产品。
Blink与Flink的主要区别如下:Blink是由阿里云实时计算团队于2016年从Flink 1.5.1拉出来的分支,在这之后的三年多的时间里,该分支被进行了一系列的改造:1)SQL优化器和执行器的改造,目前有更完善的SQL支持,提供了Unified SQL;2)在Runtime上,提供了统一高效的算子框架、更加灵活的chaining策略和自定义调度插件;3)提供增量Checkpoint。
2019年1月份,阿里巴巴决定将Flink的所有优化功能贡献给社区,经过六个多月的改造,Blink的基本功能已经合并到Flink 1.9.0中,与此同时,阿里也收购了Flink创始团队成立的公司dataArtisans。在此之后,两个团队将共同维护一个新的品牌Ververica,该品牌推出新的界面平台Ververica Platform来为用户提供服务。
Flink之所以选择K8S来作为底层的资源管理来为用户提供服务主要原因有以下几点:
• Flink特性:首先Flink是大数据类应用,与传统大数据应用如Spark、Hadoop、MapReduce以及Hive等不同的是,Flink是常驻进程,其类似于在线业务的App,作业发布后修改频率比较低,一般的修改频率为几个月,这就要求执行作业的worker长时间稳定运行。另外,与其他批处理作业相比,流作业任务一般应用于实时风控和实时推荐的业务场景下,其重要度更高,稳定性要求也更高,因为它会直接造成用户资金的损失。
• K8S优势:K8S设计的初衷是为在线应用服务,目标是为了帮助在线应用更好地发布和管理,实现资源隔离;其次,目前K8S具备一定的生态优势,目前很多用户已经开始或尝试开始使用K8S来管理在线应用;K8S可以很好地集成其他集群维护工具,如监控工具普罗米修斯,同时在资源弹性方面,K8S可以很方便地扩容。
Ververica Platform介绍
Ververica Platform平台所包含主要功能模块如下图所示:
• K8S集群:需要用户在阿里云上创建ACK集群(阿里云官网搜索ACK进入产品主页了解详情)。
• 可插拔组件:1) APP Manager。用户可通过APP Manager界面对作业进行提交和管理;2)开箱即用的指标收集、展示及报警组件,该组件集成了Prometheus的功能。3)日志收集、分析、展示组件,该组件集成了ELK/SLS工具链。
• 增值功能:首先是Libra智能调优系统。熟悉Flink的用户可能都知道,目前Flink的调优比较麻烦,尤其在开源Flink中,用户需要多次预估波峰流量来设置Flink作业的资源,否则在波峰的时候可能会出现作业延时。而所推出的Libra智能调优系统功能会根据波峰波谷的特点来自动调整Flink资源,在没有人为干预的情况下提高资源利用率,同时降低波峰时的作业延时。除此之外,平台还提供了Alink机器学习组件、Gemini等增值功能。
总体而言,Ververica Platform的特点是免费、开源、增值和易用。首先用户只需要支付ECS的费用便可以使用Ververica Platform平台的所有功能;其次Flink Core是开源的,用户无需的担心其兼容性和因为被某个平台绑架而产生的问题,并且开源Flink的功能可以无缝迁移到该平台上;此外,Ververica Platform提供了一系列增值功能,整个平台易用性较高。
下图是Ververica Platform的平台界面,通过该界面用户可以创建并提交一个Flink作业。用户可以设置Flink作业的名称、初始化状态、Flink版本(目前支持1.6/1.7/1.8)、Jar包地址以及开源资源配置(如并发度、Job Manager的CPC内存等),点击提交后可以很方便地在K8S上运行一个Flink作业。
下图展示了一个已经在K8S上运行的作业,用户可以浏览整个作业的配置信息、拓扑图、在K8S上的Events、Jobs、Savepoints的状态。
用户还可以在界面上直观地查看作业默认的metrics和logs信息,从而简化作业问题排查的复杂度。此外,该平台还支持直接显示Flink Web UI。目前的平台功能比较简洁,后续会将平台自动调优、Alink 机器学习等方面的功能纳入进来。
以上是阿里云Flink on Kubernetes产品形态的新功能,欢迎大家试用体验。试用的具体流程是:阿里云提交工单,工单选择实时计算产品,标明“希望试用实时计算Flink on Kubernetes产品形态”,之后便可以等待阿里云相关工作人员联系进行试用。
最后,打一个广告,阿里云将于11月28日至30日在北京国家会议中心举办一场Flink Forward Asia大会,目前买票的优惠力度很大,欢迎大家参加。感兴趣的朋友可以使用钉钉扫描下图中的二维码来关注大会官网发布的更多内容。
阿里云开发者社区整理