京东大促备战思路2.0大揭秘
《京东大促备战思路2.0大揭秘》要点:
作者简介:
前言 提到备战,实际上不一定要到大型促销时,工作应该做到平时.京东已发展到了一个比较大的体量,无论是大促还是平时,都容不得出现大问题,我们的思路和方法是:积极预防、及时发现、快速处理,这正是本文前半部分要介绍的.但要做到这十二个字并不容易,本文后半部分会介绍背后的两个要素:日渐成熟稳定的团队、日趋完善的流程和规范. 下图是对本文内容的描绘: 1. 积极防预问题在预防措施上,需要遵循 PDCA 方法: P阶段: 1. 分析系统职责,确立系统备战的首要业务目标; 2. 依据业务量评估,对系统处理能力要求进行评估,根据评估结果和系统运行状况,找出系统瓶颈.*特别地,如果是大促备战,则要先给大促时的业务量评估. D阶段: 3. 针对系统瓶颈,进行系统改造; 4. 梳理系统间的依赖关系,各系统之间达成 SLA,以保证整体性能指标. C阶段: 5. 对系统进行压力测试,验证处理能力,确保达标.特别地,则可以考虑在线上进行跨系统军演; 6. 特别地,如果是大促前夕,则要对系统进行全面体检. A阶段: 7. 如果系统改造达不到评估要求,则需要修正方案. 1.1. 确定每个系统的首要备战目标每个系统都会有自己的边界,各系统负责人应该分析清楚系统的使命和职责是什么,分清主次,这同时也是制定应急预案的最重要依据,举例:
1.2. 系统性能评估总体思路:先进行需求评估,然后进行系统评估,找出差距. 1.2.1. 性能需求评估总体思路: 公司层面首先要给出一个业务量的初估,然后各个团队可以根据此值来把总的业务量评估分解到自己的系统的吞吐量指标上,接下来就是方案设计的问题了,目标就是将吞吐量指标提高到评估的水平,同时其它性能指标仍能满足业务要求.这样兼顾了性能和成本. 吞吐能力评估: 吞吐能力,指的是单位时间内处理请求的数量限制,一般用tps来衡量,指的是每秒处理请求的数量. 前面提到过要把总的业务量评估分解到自己的系统的吞吐量指标,可以把系统看成一个黑桶,看这个桶上边界输入的量和下面输出的量. 假设一个系统是客户订单处理系统,每一个订单向它输入2条处理请求,并向外界输出4条信息,如果一天的订单量是1000万,则这个系统要每天接收2000万个请求,输出4000万条信息. 对于直接面对客户的系统,输入的评估需要更多的维度(如促销、推广),但也有简单的评估办法,那把上一次大促作为参照,按业务量同比扩大. 当然,实际评估时,不能只看一天的业务量,还要看峰值,而且要高度重视峰值.前端系统的峰值评估需要考虑比较多的维度(如促销方式和力度等),后端相对简单,用于平均值乘以一个系数即可,这个系统可以根据系统以住大促时统计而来,如果是一个新系统,可以让上游系统协助评估. 并不是所有系统都要承担高峰值.如果一个业务处理流程比较长,则上游的系统可以平滑峰值,让下游系统享受一个平滑得多的请求流,这样可以大大减少系统的建设成本. 例如,在订单处理流程中,OFC 扮演了这一个稳压器的作用,OFC 把上游订单和峰值进行了平滑.所以吞吐能力的评估也需要团队合作.
吞吐量的提升,往往伴随着容量提升,需要做好容量规划,主要考虑的因素有:
有了上面这几个数据,就比较好评估了.特别是针对4进行说明,有一些过程数据,处理完就不必要在主系统中存留了,所以在评估时不必考虑,但当出现高峰值,且系统处理无法及时处理时,可以积压一部分数据慢慢处理.
吞吐量的提升,也往往伴随着流量的提升,这时主要考虑峰值时流量即可,评估时可以按峰值吞吐量同比扩大.如果这个值比较大,应该和运维同事一起评估并寻求解决办法.
响应速度,是衡量服务对请求响应时间的指标,一般用毫秒计量,通常用 tp999,tp99,tp90 这几个指标,其中 tp999 指 99.9% 的服务请求的响应时间不会高于这个值. 提高响应速度,可以提高系统吞吐量.假设一个服务的响应时间为100ms,允许的并发数是500,则理论上这个服务的吞吐量上限为 5000(500*1000/100)tps;如果响应时间降低到50ms,则理论上的吞吐量上限会降为 10000tps. 但是提高响应速度会增加成本,一般说来可以采用类似下面的标准: 前端系统: 后端系统: (编辑:ASP站长网) |