【IT168 技术】每年双十一,不仅是剁手族的狂欢节,更是各大电商技术团队技术水平与技术创新实践检验的舞台,不断创新高的销售额、交易峰值、支付峰值,这些惊人数字的背后都离不开强力的技术支撑。IT168希望通过技术报道的形式向读者揭秘各大电商平台在双十一这一“超级工程”背后的巨额投入与技术创新,让更多人了解技术,尊重技术,促进同行业之间的技术交流分享,推动提高行业整体技术水平。
本文摘要
几年前,一场秒杀让服务器宕机是常态,现在,一秒数十万的订单,服务器依然坚挺。毫无疑问,支撑起这一切的是强有力的技术和运维人一个个不眠的夜晚。18年以来,当当网累计销售书籍已超25亿册,服务超过两亿读者,占据中国图书零售38%以上的市场份额。截至2016年,当当网注册用户达到2亿,年活跃用户超过4000万,位列中国电商前三,仅次于天猫和京东。
面对双十一的巨大流量压力,在高频、高额、高密度的交易场景下,如何为用户提供稳定而流畅的购物体验?如何保证核心关键业务的高可用?如何应对流量高峰期的各种突发情况?当当网运维总监徐莹向我们揭秘了“运维人的双十一备战状态”!
作者:徐莹
编辑整理:赵钰莹
▲当当网运维总监 徐莹
简介:2012年加入当当网,一直从事运维工作。现职务运维总监。
正文
每年双十一对互联网电商行业和所有用户而言,是一场盛大的购物狂欢节。对于当当网的技术团队而言,这却是一场检验一年工作成果的期末大考。所谓细节决定成败,随着核心架构体系的不断稳定,运维的重要性日益凸显,各种突发故障随时可能让业务成交失败。
作为国内领先的综合性文化电商,为了应对双十一巨大流量的冲击,当当网的运维团队早已提前进入了备战状态,来看看我们为这场硬仗做了哪些准备吧!
备战步骤一:解决双十一资源配置问题:从数据收集开始
早期的双十一,团队既没经验又没数据,无法准确预估访问量和订单数量。只能采取简单预估的方式,按照现有系统承载压力的3到5倍申请带宽、CDN、服务器等各种资源。最后的结果要么浪费、要么不足。等待促销过后,多数资源呈现空闲状态,无法与日常工作所需资源有效平衡。经历了早期双十一的洗礼,我们开始过渡到用数据收集解决这些问题的阶段。
1、业务数据收集
业务数据收集从业务角度出发,主要涉及事业部销售计划、促销活动类型、市场部预估流量以及仓店生产计划几大方面:
事业部销售计划:用事业部的预估销售金额、大数据提供的历史客单价、各环节的历史转化率(大促时转化率会升高)就可推算出订单总数、各页面的UV和PV,但最终结果需要结合促销活动类型来做微调。
▲图一:业务数据转化为技术可用指标
促销活动类型:需要提前掌握促销活动的类型,不同类型的活动对系统造成的压力是不同的。例如全场打折,顾客的行为是小件商品只要满足包邮条件,即可结算。结算系统的压力最大。如果是满额减类型,顾客会因为凑单而产生“逛”的行为,这时单品系统和购物车系统的压力会比较大,以及爆款秒杀等各种信息。
市场部预估流量:市场部会在活动之前,通过预估流量得出增量UV。虽然市场投入效果无法预见,但可以作为部分参考。
仓店生产计划:了解各时段全国仓店生产指标、分解到各仓店的包裹数,挑选出高峰时期重点保障现场技术、网络、后台应用、ERP以及快递等支持。
2、技术数据收集
技术数据收集主要涉及历史促销数据和监控数据两部分。
历史促销数据:技术部拥有历史促销数据,可以将业务系统的PV、UV,PC端和移动端数据,购物车加购数量,收藏夹商品数量,注册登录等各维度数据清晰展现在报表内。我们根据历年双十一的历史数据推算可能的流量峰值。
系统监控数据:历史监控数据,比如各系统的CPU、load、连接数、I/O、响应时间、错误率、带宽使用率等也将呈现在报表中。
3、系统分级数据
按标准对线上系统进行分级,提高关键业务的优先级,保障用户体验。
▲图二:按影响用户购物行为的系统分级标准
按照分级标准对线上系统进行划分,制定限流、降级方案。
▲图三:当当网线上系统分级图示
备战步骤二:针对数据收集结果进行数据应用
对上一步收集到的业务数据和技术数据进行分析,用于预测线上全链路压测指标和系统扩容指标。
线上全链路压测指标主要包括交易系统的订单数,购物车内商品数量分布,各页面和系统预估UV、PV数。
系统扩容指标主要指根据历史监控数据和实际业务数据比对,评估双十一各系统的压力表现。结合线上全链路压测结果,确定线上系统扩容数量。历史监控数据还决定着扩容介质,哪些应用可用私有云、docker、公有云,哪些只能用物理服务器等。
备战步骤三:根据预估指标,所有运维团队立即投入预演阶段
运维是一个多类型、多技能的综合部门。每个团队都有不同的准备工作,但基本都会涉及巡检、演练、优化等方面。
1、基础架构团队:基础架构涉及的系统是公用服务层,所以从硬件状态到集群冗余,再到灾备预案都要提前进行准备。首先要巡检所有的网络设备、网络链路、安全设备、负载均衡集群、DNS集群、日志集群、私有云集群的所有硬件状态、日志信息、端口速率、电源、风扇、温度等一切硬件相关内容。
其次,切换演练所有主备系统,BGP出口主备切换,多IDC出口切换,全国各地仓店专线和备份VPN线路切换,安全设备主备切换,DNS、负载均衡集群灾备切换,私有云和公有云物理宿主机宕机演练等。所有演练都要做到事前有方案、演练有记录,结果有追踪。
最后是优化方面,集群系统根据压测结果做水平扩容,线路做流量调度优化,私有云上运行的应用做冗余调整等工作。监控系统优化,验证是否可正常监控,可正常发出报警邮件和短信等。
2、应用运维团队:该团队主要针对大促期间的各种应用突发情况,因此,前期准备工作主要围绕快速恢复服务和快速扩容服务两方面展开。
快速恢复服务方面,所有业务系统要有自动无损重启和快速重启功能,每个业务系统根据各自特点部署恢复服务的顺序,例如限流之后重启web层、API层和缓存层之间的先后顺序;DNS调度流量一键化,负载均衡层调度一键化等。所有内容都要事先演练,并记录服务恢复时间和问题。
快速扩容方面,充分利用新技术对所有一级系统docker化,不适用docker的系统在混合云上模板化;对硬件配置要求高的服务,需要预装物理服务器。所有系统均需具备自动化验证脚本,验证后快速推到负载均衡层的能力。
除此之外,该团队会对每个IDC服务能力进行评估,做好灾备预演。在单个IDC失去服务能力后,快速切换到其他IDC提供服务。与平时不同的是,双十一各系统的压力会远大于日常,要事先充分评估各IDC的服务力,做好一键调整的预案,在最短的时间内恢复服务。
3、DBA团队:DBA团队主要负责数据库运维。对数据库而言,主要工作在于优化,而且是长期优化。如果大促期间出现数据库异常,数据库很难在短时间内进行扩容调整,把冷数据变热,因此数据库的长期优化十分重要。
频繁报警的数据库调优方面,优先调整频繁报警的核心数据库,主要工作是数据库层面的索引增加,SQL调优,升级版本,分库分表;硬件层面进行扩容,硬件升级。大表的清理工作方面,同样优先对核心数据库的大表做清理,保障在合理的大小范围内。巡检和演练方面,对所有核心数据库服务器做巡检,不在维保范围内的服务器立即替换,对所有数据归档备份计划任务做调整,数据库主从进行切换演练。
4、基础设施团队:主要负责IDC、服务器、客服CC系统相关准备工作。IDC的基础环境巡检,服务器所有硬件巡检,语音服务器、语音交换机巡检;IDC演练方面,进行电力系统演练,单机柜单路断电处理演练以及列头柜电力系统切换演练等。
除去上述工作,所有运维团队还需要提前制定值班计划,对双十一当天可能发生的各种突发情况预案,双十一各时段应该关注的关键点进行详尽计划。总之,每年双十一都是一次检验,一次大考。细节决定成败,对全体运维人而言,必须所有细节都关注到,演练到,准备到,才足以从容应对每一年的双十一大促。
正因为有了当当网所有运维人的集体备战,用户才得以享受到流畅的购物体验。纵观国内各大电商平台,火拼技术实力的背后无非就是为了让用户尽量享受到与平日无异的购物体验。作为新一代B2C网上购物平台,苏宁也为着这个目标不断努力着。随着业务需求的不断增长,苏宁核心会员系统进行了多次升级转型。从线下到线上,苏宁会员系统经历了几次变迁?系统架构又发生了哪些变化呢?且看下一篇苏宁一线技术人孙迁与龚钢关于《苏宁双十一“超级工程”排头兵——会员系统架构的演进》的分享。