京东数科为了筹备此次双十一,共有19支团队参与备战,包括支付、中台、消金、运维及客服等,并继续由开放中台侧质量管理部组织各方开展备战工作。中台侧负责人施李荣在备战会中指出:
“此次大促,我们坚持科学备战,按照系统梳理→容量规划→容灾备案→降级预案→军演压测→实时监测的筹备过程,集合各方菁英,包括技术、业务、运营及客服团队,彼此协同,通过细致的排查、严密的演练、完备的预案,将系统调整到最佳状态应对大促,确保数科系统安全、稳定、可靠,为用户提供最佳体验。”
针对此次备战,各支协同作战的团队梳理了5大核心链路,包括包括支付链路,金融APP链路、AI链路以及以机房、网络、基础中间件基础环境链路等等。各部门先后完成数千次内部压测、3次支付全链路压测及5次集团全链路压测。除此之外,去年11.11后复盘出的40项待优化项目前已全部改进完成,最大限度降低风险,确保万无一失。
本次大促遇到了较往年更为艰巨的挑战,在备战前期网络安全攻防演练尚未结束,面对迫在眉睫的扩容压测,备战团队从容应对,备战组织小组协同各部门全面梳理系统薄弱环节,进行系统优化,并与运维侧提前做好扩容及机器上架的准备,演练结束后第一时间启动扩容,确保与商城侧的全链路压测保持同步。
另外,不同于底层交易,前端系统处于流量洪峰的前线,且一直都处于高频迭代的状态,前端系统的性能与安全性保障面临严峻的挑战。以支付为例,原有加密算法对CPU的高消耗已经严重影响了服务性能,因此在进行原生加解密算法、对称与非对称加密相结合等多种尝试后,支付侧最终确认了AKS信道密钥加密+全报文对称加密的方式,将整个服务性能提升了2倍以上,并同时具备各版本加密方式实时监控与降级能力。
除此之外,今年微信支付、ApplePay支付链路由零售侧转为数科侧承接,支付侧在短时间内完成系统重构。在网络层面,外网防火墙与其他业务进行隔离,避免被其他业务影响;其次应用层面,非核心流程进行了异步化改造,HTTP请求完成池化处理,核心JMQ迁移至支付交易独享的Broker集群,优化后微信下单性能明显提升,Max耗时提升70%,TP999毫秒水平提升50%;此外,支付侧还对微信支付链路进行了机房隔离改造,实现了核心链路的同机房调用,继而网络延迟与系统抖动的几率大大降低。
备战团队协同支付侧完成系统压测,并基于制定的应急预案顺利进行了演练;且运维侧并行梳理了所需机器与网络的支持事项,最大程度满足了硬件资源的需求。
此次备战,数科侧与商城侧于前期进行了多次备战经验分享,针对亿级订单系统与营销优惠券的高可用架构设计深入交流,从技术创新的角度提升系统性能。“用户实名”模板批量查询接口,涉及热点模板数4个,此次除通过R2M缓存预热了全量模板外,还增加了Caffeine本地缓存,预热模板200个,进一步提升了Java缓存库性能;另外,“客户中心”通过全链路梳理,与支付、营销侧合作,黄金链路减少了20W TPS实名调用,从而减轻了服务器压力。各个系统通过不断的系统梳理及架构优化,大大减少了大促期间的资源占用,以相对较低的运维成本完成备战目标。
每年大促之际,业务侧的营销活动形式多样,“营销中台”不断沉淀往年备战的经验,在满足业务业务发奖、放券、发红包等营销需求的同时,不断进行架构优化。此次大促,“营销中台”完善调用链路,并进行了应用重组,去掉了无用层级以减少不必要的RPC;并且,部分规则改为前置校验,加大过滤范围,进而实现了对下游最大程度的保护。除此之外,营销系统采用二级本地缓存方式加载活动数据,使查库与主流程分离,从而降低Max耗时。
今年备战初期,为兼顾网络安全的重要任务与备战扩容的迫切需求,备战团队采用交叉评审的方式,发掘备战盲区,确定协同方案,逐一链路梳理各系统之间的血缘关系,从而整体协调扩容及压测计划。运维侧郑灏总团队动态调配扩容所需服务器资源,以合理提升利用率,同时多次面向内部进行压测平台的宣讲及培训,为备战提供坚实保障。
在确保系统高可用性的同时,为预防黑产恶意攻击,运维侧协同开放中台侧开展了DDoS攻击演练,并由专业安全团队提供7*24小时安全重保,以监控业务健康状况,实时调整防护策略,在维稳大促的同时,降低了相应的运营成本。
这样主动沟通,协同作战的案例太多太多,大促从不是一个人或者一个部门战斗在一线,是数科19支兄弟团队组成的特战队,为共同的目标携手向前。回顾最近几次大促数据,各系统抗流量峰值在短短几年间,已实现数倍增长。这些数字的背后,是数科备战全员智慧与汗水的沉淀——科学备战,敢为人先;技术创新,驱动增长;精益管理,诚至金开。