背景
快手数据服务化平台(代号Havok)是数据赋能业务的出口,当前服务于直播、电商、商业化等核心业务。数据服务面临着请求流量大、数据延迟低、稳定性高等挑战,尤其在大型活动面临的挑战更加突出。数据服务化平台从服务隔离、链路分级、容错建设、全面监控、流程预案等方面建设了全方位的服务保障体系,零故障支持了公司大型活动的数据服务化场景。本文重点介绍了两个方面:第一,快手数据服务化平台介绍;第二,数据服务保障体系建设方案。
快手数据服务化平台
传统数据服务开发痛点
数据是支撑业务发展的重要因素,而这其中数据赋能的主要方式之一是以服务的形式提供给业务。传统开发流程涉及多个步骤,包括业务提出数据诉求,DE(数据工程师)开发出对应数据资产表,以及将数据表包装成微服务提供给业务方来使用。

图1:数据开发流程
传统数据开发模式,存在多个问题:
1,开发门槛高:对于数据同学,不仅要求掌握使用大数据技术(Spark、Flink)来开发数据表,还要求熟悉高性能微服务建设;
2,开发成本高:开发微服务功能多,流程多,时间成本高;
3,烟囱式建设:不同业务间的数据诉求,容易演化出重复建设的情况;
4,运维保障难:数据服务在线变更,过程较为繁重,运维成本高;

图2:传统数据服务开发问题
一站式自助数据服务平台
基于上述问题,快手提出了 Havok 平台,它是一站式自助数据服务平台,以达到提效目的。该平台能够帮助用户零门槛创建、管理和运维API数据服务。它采用了“配置即开发”的设计理念,允许用户通过配置化方式生成API数据服务,用户只需根据自己业务逻辑配置API而无需编写任何代码,其他技术相关复杂实现,包括数据服务代码生成、数据服务部署、缓存管理、服务降级、服务权限管控等均由平台完成。Havok 平台真正实现了“数据复用而非复制”,也大大降低了API服务创建门槛,提升了API服务开发效率。

图3:一站式自助数据服务平台
Havok 平台包括了2个重要模块:1)服务生成引擎,自动化高效的生产数据服务并且进行热部署;2)服务调用模块,通过丰富接口、统一查询、高效异构存储等多方面支持高可用、高性能的数据服务。

图4:Havok平台技术架构
高可用保障体系建设
快手 Havok 平台,经历了多次春节、元旦、电商节等大型活动的考验,零故障达成预期结果,并且沉淀了一套高可用保障体系建设方案。
高可用保障挑战
Havok,相比于普通的服务保障,有较大差异,面临的挑战难点也大相径庭。Havok 作为生产服务的平台,面临的挑战点如下:
服务繁多:平台量级很大,本身承载了数以千计的、不同种类的服务,总QPS达到千万级;
业务重要:绝大部分业务是在线业务,直接影响直播、电商、广告等,这类场景对于服务本身可用性要求非常高;
外部依赖:外部依赖众多,整体风险指数倍增,容易因为依赖问题造成服务雪崩的情况;
特殊保障:业务保障要求存在“千人千面”的情况,需要平台提供定制化保障的能力;

图5:高可用保障体系建设挑战
高可用保障方案
鉴于上面所述的挑战,快手提出了整体解决方案,由事前积极预防问题、事中及时发现问题(故障)、事后迅速解决问题(止损)等多个维度组成:
积极预防问题:通过梳理 Havok 平台的能力矩阵图,系统风险,以及待保障的目标服务SLA,来达到知己知彼,从而百战不殆的目的;
及时发现问题:通过构建全方位的监控体系,不间断的监控上千服务的健康状态,从而做到及时发现风险,及时介入;
迅速解决问题:通过应急预案等方式梳理出各类紧急情况的处理措施,通过限流降级等多种方式保障平台整体可用性;

图6:保障体系建设方案
关键保障能力
分级隔离
快手数据服务业务要求不同业务之间不能互相影响,并且同一个业务内不同优先级的任务也不能互相影响。因此 Havok 按照业务+优先级(高中低)组合粒度进行划分服务舱位,进行硬隔离。此外同一个舱位内的多个服务可混合部署,即为软隔离,以提升服务资源整体使用率。

图7:分级隔离(硬隔离、软隔离)
弹性服务
Havok 平台,依托于容器云,可动态根据服务负载水位进行伸缩。此外数据服务都是轻量级“虚拟”服务,可动态进行热部署,以及动态热迁移,从而更加灵活控制整体服务舱位负载水位。

图8:弹性服务
链路分级
Havok 平台,对服务链路进行分级,划分为核心链路以及次要链路。核心链路要求高可用高保障,并且依赖要少,减少风险。次要链路则有较多外部依赖,可允许发生故障风险,但是要有完善的降级方案,并且不能影响核心链路。针对核心链路以及次要链路,Havok 平台沉淀了通用的容错策略,赋能给所有的API服务,其中通用策略包括指数退避重试、降级服务节点、托底数据等。

图9:链路分级
容灾能力
为了做到较好的容灾能力,Havok 平台引入了多种策略,分为服务容灾和数据容灾。服务容灾,确保服务本身一直可用,具体包括多机房建设、存储集群主备建设、异构存储集群冷备等手段。异构存储集群冷备,能做到某一种类型存储不可用的情况下,可将数据切换到其他类型存储介质中,从而提供降级的线上请求访问能力。数据容灾,包括引入数据质量检查,以及数据多版本(通过控制版本指针快速切换,以恢复到健康正确的数据版本),从而确保业务访问到的数据的正确性。

图10:容灾建设
限流降级
下图梳理了 Havok 平台全链路,并且在每个环节都设置了相应限流降级手段,来应对活动期间异常情况,如抢红包的瞬间流量冲击。客户端引入了可视化配置限流方案,支持多种限流策略。服务端引入请求采样和管控异常请求,提高可用性。外部依赖侧引入一键降级,不影响主调用流程。数据写降级,减少存储压力,从而使得存储更好处理线上实时读请求。

图11:限流降级
总结展望

图12:零故障支持大型活动
Havok 平台零故障支持了重要大型活动,包括春节、元旦、电商节等。保障的核心服务数达到100,QPS达到200W。平台已经沉淀了多种保障能力,不管是已经存在的数据服务,还是将来创建的API服务,都可复用平台能力,避免重复进行保障建设,为公司节省了大量人力成本。

图13:智能化高可用保障建设
未来 Havok 平台会朝着不断沉淀通用能力的方向前进,未来活动保障也会基于日益丰富的平台来开展,能够以更小的付出获得更大的成效;活动中涉及的临时保障手段也会不断提炼、抽象、并且沉淀到平台本身。未来平台保障体系建设会更加智能化、自动化,从而将平台本身可用性带到新高度。
作者简介:倪顺,曾就职于Hulu,从事视频领域大数据研发工作,包括视频播放质量的数据建设以及基于数据驱动的播放体验提升。目前就职于快手,从事数据中台领域工作,主要负责大数据服务化基础平台建设。
快手数据工厂团队介绍:
快手核心大数据中台团队,为全公司构建业界领先的智能大数据生产和服务平台,赋能全业务线提升公司数据创新效率。目前涉及方向包括数据开发工具链(数据开发平台、大规模工作流调度、全链路质检平台)、数据流工具链(异构数据交换和同步、实时开发平台)、数据服务工具链(智能指标模型平台、百万级并发数据服务化平台)、数据管治工具链(全链路元数据平台、数据治理平台、数据地图、数据安全平台)。欢迎大家联系我们!




