本文整理自37手游大数据平台资深开发工程师史飞翔在实时数仓Workshop · 广州站的演讲。主要内容包括:
- 37云平台大数据建设背景
- 37云平台大数据建设方案
- 应用实践
- 未来规划
作者:史飞翔 37手游大数据平台资深开发工程师
公司介绍
37手游是37互娱的子公司,主要负责运营,也就是发行业务。在中国大陆地区37手游以10%占有率仅次于腾讯和网易排第三。现在在非中国大陆地区也已经进入月收入过亿的俱乐部,成功发行了包括《永恒纪元》、《一刀传世》、《斗罗大陆》这几款游戏,当前已经累计4亿用户。
37手游之前是自建的大数据集群,考虑到集群未来的扩展性、稳定性以及成本问题,决定大数据全部上云,本次workshop的分享就是基于IDC集群上云的建设实践。
37手游云平台大数据建设背景
痛点:自建集群组件多,架构复杂,成本高
首先看一下这张图,做大数据的同学对这些组件应该都很熟悉,刚开始我们也一样,像动物园一样,管理了很多 “小动物”。
- 2019 年,我们的很多离线作业是基于Hadoop集群做的。基于这个集群之上,我们有一些OLAP查询场景,当时可选的组件不多,于是我们用了Kylin、Druid。但是这只能应对一些简单的场景,复杂的场景还是没办法直接基于这些组件对外提供服务。
- 2020 年,引入了实时计算,当时用的是社区版Flink,其中ClickHouse跟ADB主要是做OLAP的查询,另外的ElasticSearch是用来存储画像的数据。
- 2021 年,随着业务场景的需要,我们用到的组件也越来越多,所以不得不选用基于多数据源的查询引擎,于是引入了 Presto,这个时候可以基于Presto做一些联邦查询 ,Hive、MySQL、ADB、ClickHouse等做一个打通关联。基于Presto,我们会在上层做一个报表的查询。
- 2022 年,我们大数据全部上云了,只需要用到三个重要组件:MaxCompute、Hologres、Flink。
以上是我们大数据演进的过程,下面先分析一下IDC集群的情况。
- 资源成本:
- 机器成本高;
- 机房成本高,因为有一百台机器要有单独的机房;
- 空闲时间多。我们的离线作业大部分在晚上运作,白天的时间基本上是比较浪费的。
- 人力成本:
- 组件多,运维成本高。一个人要负责三四个组件的维护;
- 组件学习成本高,一些业务开发的同学会使用我们提供的组件,对于他们来说,会有一定的学习成本;
- 开发成本高。
- 稳定性、扩展性。
- IDC 集群做扩容时流程很复杂,从申请,到机器的采购,再到部署、上线等,至少要一个月的时间,扩展性很差;
- 机房部署周期长;
- 故障率较高。
上云需求:低成本、运维简单、可扩展
基于IDC集群的综合评估,跟上云在技术和业务做了综合对比。下图是随着节点数的增加自建机房与基于阿里云的对比。在集群节点不断扩大的情况下,可以看到自建机房的单位成本逐渐增高,基于阿里云的单位成本基本稳定不变。
从技术上:
- 上云后用到的组件很少,维护成本低。
- 统一套件,统一开发