直播业务有类似“双 11”的时刻,本文简单聊聊直播业务系统保障的一些点。为降低写作成本,以陈列式展开。
直播的业务点非常的繁杂。其一是需要为用户 - 主播之间搭建足够丰富的互动桥梁,其二是需要为用户提供足够宽泛的方式释放存在感。有的是为试错,有的是为能覆盖更广泛的群体。总之言之,横向的业务面很广,这从很多直播平台花样百出的功能就可以感受到。
大部分情况下,特别是高速发展期,业务追求快速迭代,一般会牺牲技术质量。
这里可以拿电商的业务做对比,电商的基本核心对于用户来讲,无非是:选商品、下单、选优惠券、支付。但在简单的操作后面,还有非常复杂和冗长的业务流程,涉及类似订单、库存、支付、商户、物流、供应链等等。纵深长、技术挑战大,所以电商业务也是最早实施全链路压测的业务。
回到直播,虽然横向面广,但大部分业务纵深较浅,大多是重客户端逻辑,服务端接口调用层次一般不深。除了营收业务类似送礼、购买等业务,这部分和电商类似,但复杂度也要少一些。
直播业务繁多,不同的直播间其业务功能可能有差异,有些功能在特定的场景和条件下才会出现,这里特别容易出现疏漏或信息不对称。
同时,直播业务的流量波动很大,小房间或平常时间流量很小,但是一到重大节假日、重大赛事流量就会出现几十倍的突增,类似电商领域的双 11。典型的就是刚刚过去的 S11 总决赛。
基于上面的特点,在大型活动前夕,平台都需要做大型技术保障。技术团队需要保证业务系统在此期间能正常运转。其原因有:
假设三个月前刚刚做过一次大流量考验,但马上又要来一次,假设流量量级接近,那还需要做技术保障吗?
其实还是需要的,有几个原因:
这在横向业务繁多的情况下,是很难简单梳理下就能放心的。
技术保障的目标很简单,就是基于当前的 case,在流量可能大幅突增的情况下,保证技术系统能平稳度过。
整个过程分为两个阶段:一、前期准备;二、现场保障。需要思考下整个过程中,到底在做什么?
现场保障,往往在做几个事情:
应对问题时,极端情况下有可能会改代码、改数据,但如果临时做这些事,往往无法解决问题,还可能雪上加霜,因为人在临场会慌,时间也紧,叠加信息不对称一般都会闯祸。
换个视角,当按照预案扩容、降级或其他操作后,应对了挑战。实际上这些动作本质上算是结果,因为系统可以通过扩容解决问题、系统可降级、你知道该怎么操作。
人的注意力容易聚焦在现场的应对操作,关键点其实在准备阶段。
根据实际成功经验,准备阶段最本质的要点有几个:
将要点进一步升华,可以发现最本质的目标是:
到了现场保障时,关键点是决策和执行。保证信息、指令、动作有章法,即按照计划行事即可。
如果真实流量远超过预期,那将是难得的经历。
技术保障最直观的产物就是:
平时可以达到这些吗?我想很难,其一是平常难有对应的流量契机,其二是平常难以集中组织资源攻关,其三是人性是懒惰短时的,感觉没问题就不会动,也没有足够动力。
业务 (or 技术系统) 只能在持续的挑战下才能往更健康的方向发展。如果系统容量远超过需求,实际上是浪费。技术系统说到底是实现业务的工具,需要吃大量的资源,背后都是机会成本。资源有限需要放到更急迫的地方。
一个组织要往更好的方向发展,其实也是这样。如果你面临一个组织或团队,心里觉得破烂不堪,心里可能有抱怨或想要去改变它。但如果你能脱离个人视角,从公司运作的角度看,这个团队其实是以刚刚好的成本,满足了业务的需求,没有拖后腿,也没有浪费资源。
当业务或公司需要它更强大时,投入资源其自然会变得更好,只不过个体面临的可能是动荡甚至利益损失,但从产权方 (公司 or 老板) 的角度看,它一定可以变得更好。
它可以变得更好,只是当下还不需要。
如果个人想要变得更好怎么办?实际上是一样的道理。
其一,让自己面临更高的外部要求,其二,让自己有更多的资源投入。你在压力或推动下自然而然就会变得更好。离开了这两个条件你都不可能成长。
所以脱离环境谈走出舒适区是很难的,如果环境不需要你更强,你还会返回舒适区,只是扒上井沿看了一眼而已,最终还是会倦缩回去。人性如此,万不能对抗。
承担更大的责任、选择要求更高的环境、去资源投入更充足的地方。人是环境的产物,选择和自己同步伐的环境,让自己配得上环境,让环境带自己起飞。