从企业实际需求出发 看金山云大数据架构及容器化实践之路
近年来,企业为了在市场中获得优势,越来越需要从不断增长的数据量中挖掘出更深入有用的内容,大数据云平台作为打通众多元数据与应用连通的关键一环,成为各企业关注的焦点。12月21日,在第十一届中国数据库技术大会大数据架构设计论坛上,金山云大数据平台基础架构技术负责人关海南分享了《金山云大数据架构及容器化实践》。
从需求出发 金山云构建大数据云平台之路
金山云大数据云平台起初是对公司内部提供大数据相关服务,后面衍生出多种产品包括公有云大数据平台、行业云大数据平台以及企业云大数据平台,并在多个行业广泛应用。
关海南表示,在构建之初,平台更多是从企业实际的业务需求和痛点出发:
一是从完备Dataops的思路着手,提供一套完整、易用的大数据开发平台,业务侧基于平台可以完成离线、实时、挖掘等全流程的开发、测试及部署,并支持各类引擎的导入导出;
二是以赋能数据前台为目标,在数据开发平台的基础上提供高效、高质量、标准化的数据资产管理系统、数据共享系统,直接面向业务提供服务,符合当前的数据中台的建设思路;
三是从高效管理数据的技术维度出发,提供统一元数据引擎、统一查询引擎、存储计算分离、大数据容器化等技术、Hadoop/MPP混合数仓、多云部署等,比较符合当前的湖仓一体的趋势,并和snowflake推崇DWaaS的Serverless模式相近。
经过六年多时间打磨,金山云推出的航母级大数据云平台涵盖了数据湖和数据中台的设计理念。一方面为客户提供一站式大数据平台,提效客户业务开发、大规模资产管理、运维保障的大数据底层能力;另一方面,以云计算平台为核心,形成数据湖运营管理、数据中台基础架构部门核心能力支撑工具。
金山云大数据云平台集结了八大组件、两大支撑体系和一套公共服务。每一个组件都达到了“航母级”标准。其中,标准化组件涵盖数据采集、数据集成、数据开发、数据分析、数据服务、智能调度、数据管理和存储计算八大功能,大数据运维和大数据运营两大支撑体系,实现从监控告警、健康检查、服务管理、统一日志、产品管理、资源计量等的统一管控。公共服务则包括平台门户、项目管理、资源管理、用户管理几大类别,为用户提供高效的数据管理能力。
关海南讲到,数据开发平台包括采集、集成、离线计算、实时计算、挖掘分析以及调度系统,从Dataops思路出发,为提供便捷的数据开发、数据使用,而提供的一套开发平台,目前该产品已经比较成熟;数据资产管理、数据服务、服务总线等,用于高效赋能前台,直接面向业务提供服务,实现数据中台的价值;底层的数据存储与计算、高效管理数据、统一元数据、存储计算分离、Hadoop、MPP大数据容器化等则契合高效管理数据的建设思路。
数据湖+中台 金山云大数据云平台的架构基础
“大数据基础平台首先少不了Hadoop开源体系,同时我们在稳定性、资源使用率与规模层面做增强,包括存储计算分离的MPP以及时序数据库。”关海南表示,金山云大数据云平台区别于 Hadoop 裸平台,其意在提升大数据处理效率,支持大数据加工全流程可视化界面操作,提供向导式配置、在线代码编写、拖拽式工作流编排、智能的全链路监控告警体系,非大数据专业人员也能分析处理大数据。
目前,金山云大数据云平台破除Hadoop、MPP等关键系统的规模瓶颈,底层引擎具备高度的可扩展性,支持高达万台规模、百万级别作业调度、百万QPS 实时处理 、十万以上节点采集规模,保障大规模集群的正常运行。金山云大数据云平台支持多云异构环境,不仅可以高效运行在金山云的IaaS平台上,其他主流的IaaS平台也都可以支持大数据云平台的部署。
事实上,金山云大数据云平台在设计之初就体现出数据湖的属性,统一元数据,统一查询引擎,在后续底层迭代中,架构逐渐清晰,遵循计算、存储、元数据分离架构模式。目前,某股份制银行使用的企业云版本,用于行内的数据湖建设,已经上线。
关海南讲到,之所以统一元数据,一方面避免数据冗余存储,方便统一管理;另一方面避免不同引擎独立使用导致数据的不一致性;同时可以更好地满足性能、权限及数据资产等方面的考虑。金山云大数据云平台MPP也支持存储计算分离策略,Spark和MPP可以通过统一数据湖元数据引擎实现互相访问。
金山云数据湖计算引擎以Spark/Presto/Flink计算引擎、Yarn/K8S资源引擎、Hdfs/ks3存储引擎为主;数据湖元数据引擎兼容hive-metastore语义,并扩展支持外部源,同时可通过级联的方式对接大数据云平台的数据管理。
Spark可以读取MPP在对象存储的内置数据,MPP也可以以外部表的方式读取hdfs的hive体系数据;支持hudi/iceberg等数据湖格式存储在Hdfs,也支持存储在对象存储,便于高效灵活管理数据。为提升存储计算分离特性,金山云大数据云平台引入数据湖加速服务,规避存储计算分离带来的性能问题,引入Alluxio系统。因此,数据湖整体体现,湖仓一体、流批一体、统一元数据、统一权限、数据ACID、向存储计算分离演进。
关海南接着讲到,LMS(Lake meta service)是数据湖核心,兼容Metastore协议,方便Spark/Presto/Flink/MPP等计算引擎使用SDK方式透明对接。同时,增加层级、namespace,方便引入不同源、不同存储,通过对不同存储格式/存储目录文件的抽象,为引擎提供统一元数据服务,能够避免多引擎独立使用元数据服务之间的不一致性。“存储层支持MySQL也支持DragonBase分布式数据库,同时支持联邦模式,方便LMS横向扩展;大数据云平台的元数据引擎可以升级为LMS,并通过级联方式对接数据湖LMS。”关海南表示。
与传统大数据系统分而治之、功能散乱、运维和使用不便等不同的是,金山云大数据云平台遵循“统一”思想,旨在打通大数据处理全流程,提供统一门户、统一调度、统一元数据管理、统一资源管理等服务。为了消除部门间数据壁垒,降低人员准入门槛,并打造成为构筑数据中台的基础平台能力。同时,降低混搭架构运营运维复杂度,提供资源弹性伸缩,并支持资源弹性伸缩、多租户管理、服务高可用等完善的云化特性。
90%容器化部署 助力新一代大数据PaaS平台建设
目前,金山云大数据平台支持90%的大数据服务运行在容器内。“我们考虑的初衷是,一方面统一在线和离线的资源调度,用k8s管理资源比yarn更专业,比如更多维度的资源隔离、更灵活的资源超卖与扩缩容策略;另一方面,考虑大数据云平台有很多场景是私有部署,除了支持部署在金山云外,也支持部署在其他云的厂商,所以用k8s作资源弹性扩缩容,比调用IaaS接口来说更为统一。”关海南表示,某国有银行使用的行业云版本,80%组件容器化部署,目前内部已有几十个大型项目使用。
大数据容器开放平台,通过对大数据组件与容器引擎深度结合,通过拖拽组件、技术元素等方式形成服务及大数据平台层,屏蔽容器化底层技术,提供应用商店的模块化策略,提升研发、测试、运维及实施效率。
面向研发人员,拖拽方式形成新的服务,屏蔽容器化技术,快速纳管到容器开放平台,通过微服务技术,减少重复造轮子;面向测试人员,便捷提供测试沙箱,自动运行用例,微服务故障注入等;面向运维人员,可以通过开放平台,看到整个大数据云平台运行实例的状态,异常监控可以迅速判断影响范围及上下游,运维操作方便;面向实施人员,通过大数据应用商店,迅速部署不同场景、版本的大数据云平台,减少部署的人力和时间成本;面向产品人员,通过拖拽大数据服务的不同组合,形成不同行业、不同版本、不同演示环境的平台组合。
关海南讲到,大数据容器开放平台的逻辑架构,主要分为组件定义、应用定义、集群管理、集成与部署、大数据商店等,侧重点在于如何稳定、高效的容器化运行大数据组件及服务。其中,Alluxio存储代理层,提供通用的分布式存储缓存,减少回源次数,提升存储存取效率;作为存储代理层,可以对接更多的存储介质、包括公有云存储,提高存储扩展性;与k8s结合,补充大数据应用在k8s上的存储短板,存储多样化、提升存储性能。Istio网格,用于解决多集群网络通信及精细化容器管理。
演讲最后,关海南表示作为面向企业级的新一代大数据PaaS平台,金山云大数据云平台打造为云而生的大数据生态,提供云端数据采集、数据集成、数据管理、数据开发、作业调度等一站式大数据处理环境。
平台提供全方位、多数据类型、可视化数据采集能力,其中数据传输层是金山云整个大数据平台的基石,经过了公司内部万台节点传输的打磨,支持多种传输模式;数据集成支持多种引擎间的理性同步,提供丰富数据检核和加工的算子,提供MPP及Hadoop的计算与集成能力;在开发过程中,因为很多 金融 公司,对开发、测试、生产完全隔离,所以金山云开发三态导入导出功能,便捷的满足隔离要求。
“数据资产管理和数据服务,是直接赋能业务,中台属性比较突出的两个点。数据资产管理平台,是我们目前投入比较多的一部分,包括统一元数据、数据标准建模、数据血缘、数据目录、数据安全等。数据服务包括提供统一查询引擎、提供服务总线、API管理等,大大减少数据重复建设。”关海南表示。
目前,金山云大数据云平台主要面向金融、公共服务、医疗等领域,通过构建AI驱动的大数据云平台,为智慧金融、智慧城市、智慧医疗等领域提供强大的智能化决策支持。面向未来,金山云大数据云平台将持续完善技术产品服务体系、优化数据处理性能,帮助客户快速构建全新的大数据落地能力,更高效地掘金万亿级大数据服务市场。