随着人口红利的消散,游戏市场进入存量竞争时代。大环境的变化为游戏行业的业务发展带来诸多挑战,「降本增效」已然成为近些年游戏厂商开展业务的关键词之一。加之玩家要求的不断攀升、竞争态势的愈演愈烈,游戏厂商正在深化各种数字化策略,挖掘海量数据价值,提高业务增长效率和创新能力,为玩家打造更精细化的游戏服务。
存算一体架构难以满足精细化运营
基于上述趋势,传统的存算一体架构逐渐在资源投入、运维等层面逐渐暴露出以下问题:
- 延迟数据对投放计划调整和活动优化等业务场景的价值不高
- 多业务共用同一查询集群,易造成不同业务间的资源抢夺、相互影响
- 存算一体化 1:1 扩容的方式对部分场景友好度不够,容易造成资源浪费
- 基于本地存储的分布式文件系统在成本、扩展性、资源弹性等方面优势不大
- 部署复杂,运维难度大,且较大程度上依赖运维人员能力
……
尤其是在数据爆发增长的当下,数据的处理能力和时效性,早已成为数据驱动业务增长的关键所在。基于延时数据分析出的市场策略,已经无法让企业在瞬息万变的市场环境和不断迭代的用户需求下斩获先机。
拥抱云原生 加速度过行业阵痛期
云原生高效部署、敏捷迭代、弹性扩容等优势,天然地突破了传统存算一体架构的瓶颈,也为数据驱动业务增长带来了新的转机。
云原生通过调度、资源隔离等技术手段,将在线和离线业务按优先级和类型部署在相同的物理机上,避免传统模式下高峰期资源占满、低谷期资源利用率较低的情况。且云原生的资源池也可以承载更丰富的集群类型,实现集群的按需拉起和释放。在集群部署和运维方面,配备统一的管理界面,可对其运行状态进行统一监控和管理。
云原生技术的出现,为企业的发展提供了一条降本增效的新思路。尤其是当前游戏进入精品化发展阶段,业务的高速发展对算力提出了更高的要求,云原生化对游戏行业而言势在必行。
为了帮助更多游戏厂商以更低的成本、更高的效率地开展精细化业务,数数科技利用云原生技术打造了存算分离的云原生弹性集群方案——TE 云原生方案(以下简称“方案”),助力游戏厂商在更丰富、复杂的应用场景下,都能够实时、高效、经济地开展复杂、多元的数据分析需求。
TE 云原生解决方案
打造性能与成本的卓越组合
TE 云原生解决方案基于云上的对象存储和容器化技术,实现 Trino 查询引擎的自定义弹性伸缩,资源自定义调度、隔离以及数据存储的按需使用和无限扩展能力。
TE 云原生解决方案架构图
在存储方面,支持跟云厂商的对象存储如 AWS S3 打通,能在完全不影响上层数据查询应用的情况下,将历史数据存放在云存储中。结合实际落地案例数据可知,方案的落地能够实现游戏厂商月度服务器硬件成本 30% 以上的缩减。
在计算方面,方案可以实现对云计算资源的管理,将云厂商的容器服务如 AWS EKS 集群加入整体计算资源池中,根据隔离需求动态安装对应的弹性和隔离策略。这种方式可以提供隔离的计算环境,满足不同请求类型的查询,并且根据计算复杂情况动态伸缩,既满足资源的按需分配,又能降本增效。
查询能力提升
游戏厂商的查询大多集中在每天上班的特定时段,如上午 09:00~11:30 、下午 14:00~17:00,这段时间内很可能会产生某个时刻的请求高并发和大查询。但因为服务器资源是固定的,一旦资源消耗完全,将造成查询卡顿等现象。
方案利用云原生资源可灵活调度和管理的特性,实现了资源在查询高峰时的自动化拉起。一旦高峰过去,将在空闲时段回收资源。此外,方案增强了 Kubernetes HPA 的弹性能力,可根据 Trino worker 查询到的负载压力和业务维度指标,灵活弹性地控制集群规模。集群规模越大,TE 系统的查询并发能力越高,吞吐量越大。
业务资源隔离
方案使用的容器技术有良好的资源隔离能力,每个 Trino 实例单独占用一个容器资源,容器与容器之间资源相互隔离。在架构层面按照业务拆分 Trino 集群,不同的业务使用独立的 Trino 集群。这样从架构层面和容器资源层面都做到了较好的资源隔离,避免业务之间的相互影响。
资源弹性伸缩
利用云原生 Kubernetes 和容器相关技术,实现资源快速的弹性伸缩以及灵活动态的按需分配。其中,资源的申请和回收都是 TE 云原生集群根据实际配置的弹性伸缩副本数(min,max)和弹性监控指标、阈值自动完成,整个过程无需人工参与。资源的按需分配,不仅减少了预采购冗余服务器的成本,还提高了资源利用率,保障了服务的响应速度。
为了提升资源的响应速度,数数采用了诸多措施,以 AWS 为例,通过 Bottlerocket 的 AMI 制作快照(提前将镜像缓存到快照),并使用 Karpenter 管理和控制节点的弹性伸缩,将原本分钟级的弹性节点速度优化到秒级。
资源灵活调度
云厂商提供了丰富的资源规格,不同规格资源的搭配使用,可能会在更小成本下产生更大的价值。如,一些常规应用可以使用 x86 服务器,一些查询应用可以使用 ARM 服务器,通常来说 ARM 服务器较 x86 成本低 10% 左右。方案中的节点组就对云平台中的多种实例类型进行了整合,并基于 Kubernetes 强大的兼容性和适配性,实现了根据应用特性对不同类型资源的调度。其中,所有节点组都会被统一管理,并根据业务场景、资源规模进行调整优化,以保证应用性能和服务器成本之间达成平衡。
架构灵活可扩展
方案结合了微服务的架构设计理念和云原生技术,极大地增加了架构的扩展性和灵活性,如:只需要简单的配置部署即可实现多个 Trino 集群同时、相互独立的运行。应用的调度和分配也都可以独立管控,相较于虚拟机的部署方式在灵活性和可移植性上有较大的改善。
“实时、高效、经济”已成为游戏企业精细化运营之路上的关键词。TE 云原生解决方案能够帮助游戏厂商实现更低成本下更低延时的数据分析,第一时间完成对市场和游戏状态的判断。
目前,数数已经携手 Habby、九九互动、青瓷、点点互动落地了计算和存储引擎云原生方案。未来,数数还将全面实现 TE 各组件的云原生化,打造分析业务的一键上云,为游戏厂商实现更优的分析体验和成本 ROI。