618&&双11
作为研发,尤其是后端研发,每年在618或者双11的时候压力特别大,他们祈求服务不要出故障,交易能正常进行,而且期望用户体验非常棒而不是卡顿404等。
但是有时候就是事与愿违,比如在2015年11月11日傍晚,大部分用户反馈购物失败的情况,负责双11技术保障的阿里云计算总裁胡晓明回应称,零点开始5分钟内巨量的访问涌入,并创建交易、支付,这相当于一次黑客攻击,对全世界任何公司都是挑战。双11前,公司做过大量压力测试,网络繁忙的情况是在预料之内,好在很快就修复了这个问题,后面交易亦十分平滑、流畅。
这次快速修复问题的时间是1小时不等。
2015年,是移动端爆发的一年,移动端数量猛增,而阿里的技术团队没有意识到这一点,在移动APP上没有进行很大程度上的技术优化,因此在双11这一天,移动端入口流量大大超过预期,10%物流机器宕机,无法响应。是否要果断直接删除这批机器,将宝押在剩下90%的机器上?技术团队再度面临两难抉择。
除了这些之外,还有一些潜在的bug,虽然对整个系统没有造成很大损失,但是给用户造成了很大不便,如:
现象:1.成功拍下来的单个订单都无法付款,出现如图的提示,无法付款,但是重新进店拍却可以购买成功。
2.按上图提示,选择全部,合并付款,结果发现各个订单的小框框无法选中,即使单个去点也无法选中小框。
分析:因为被动参加了“跨店铺优惠”,因为某个内在的bug,各种原因,导致进入这个无法理解的分枝
还有就是用户评价莫名其妙的消息。
这些都是阿里在双11期间遇到的问题,当然还有很多我们不曾知道的问题,每一个技术都是成长的,在经过几年之后,这个技术已经相当成熟,从一个婴儿期走向成人期,越来越健壮。
修复之后再看下那天的交易数据:
数据亮眼的背后就是研发和运维在不惜一切代价找出问题并快速修复它,不然你是看不到这个数字的。
既然服务的稳定性这么重要,那要怎样去做才能保证呢?
SLA服务等级协议
SLA (服务等级协议,全称:service level agreement)来衡量系统的稳定性,对互联网公司来说就是网站服务可用性的一个保证。
一般我们会用4个9或者5个9代表全年服务的稳定性,比如99.99%或者99.999%这样,我们以99.99%为例,停机时间52.6分钟,平均到每周也就是只能有差不多1分钟的停机时间,也就是说网络抖动这个时间可能就没了,服务状况良好。
那么有了这个概念之后我们在回头看下2015年阿里双十一那次修复问题,他们耗时1h,那基本上他们的服务在当时可以粗略判断是4个9即99.99%。
为什么会说到这个概念呢?因为我们接下来所说的所有都是为了它。
单个服务稳定性
- 具备开关功能,核心功能或者非核心功能在遇到故障的时候通过开关操作可以快速下线,保证整体服务可用。
- 缓存设计,尽量用缓存提高系统吞吐量。
- 接口无状态,接口应该是无状态的,当前接口不应该依赖上层接口的状态。
- 接口单一职责,对于核心接口不应该过多耦合别的功能。
- 第三方服务,做到0信任,即要考虑熔断降级限流。
- 兜底方案,核心业务必须有兜底方案。
- 监控与响应,做好服务监控和及时响应。
集群稳定性
- 系统架构,必须合理设计。
- 代码研判,代码要review,review再review。
- 集群部署,集群部署应对高并发大流量。
- 限流熔断,这是应对高并发的必要手段。
- 监控体系,它是你的医生,你得好好利用起来。
- 压测机制,没有压测,你无法预判高并发来临时系统能否扛得住。
专项测试
- 预案,把你的开关降级等都统统过一遍。
- 预热,存储常态化流量或者热点流量进行回放来提前预热。
- 监控,基础/业务/其他MQ监控等都看一遍确认准确无误。
- 追踪,链路追踪必不可少,排查问题利器。
稳定性建设
- 容量规划,先拍脑袋决定几台机器,压测不够再加。
- Chaos Monkey,找人专门搞破坏,看系统是否出错。
- 流量调度,API网关或者Ingress网关能力。
- 容灾/异地多活,不怕地震,就怕地震搞破坏把线路掐断。
小结
上面的总结拿出任何一个概念都是一个复杂的工程,尤其在落地的时候。其实很多公司都做不到,那为什么还需要了解呢?因为某人说过一句话,梦想还是要有的,万一实现了呢,就是公司再小它也有壮大的时候,所以从一开始你就去思考,去慢慢建设,等公司真正成长起来之后(比如像某宝,某东或者某多)你就可以开始你的表演了。
2015年11月13日,在2015天猫双十一取得912.17亿的创纪录交易额之际,阿里巴巴集团CEO逍遥子(真名:张勇)向全体员工发出公开信,向员工表示祝贺,总结了2015年双11诸多亮点,并提出新的要求和目标:坚定变革创新;让更多的年轻人成为主角;利用大数据赋能商家;直面竞争,继续地打大仗、打硬仗。
各位阿里人:
刚过去的双十一,我和大家一起经历了激动人心的24小时。双十一的成果,再一次震动了世界,向世界展示了中国经济中国消费者的巨大力量,展示了互联网的力量,展示了电商生态体系的力量。我知道当午夜时分双十一大幕合上的时候,我们很多的团队和小二都举行了各种各样的庆祝活动。是的,我们有理由为自己欢庆喝彩!为了准备这次双十一,阿里全集团的很多部门都全体动员起来,目标清晰一致地打了一场漂亮仗!在此,向大家表示祝贺,为大家骄傲!事实再一次证明,阿里人,好样的!我也非常高兴地宣布,集团会在近期对在本次双十一中有突出贡献的团队和个人予以嘉奖。
同时,我也想利用这个机会,和大家分享一下这次双十一对集团未来发展的几点启示:
鼓励创新,主动变革
这是我们第七次举办双十一,而且2015年我们又创造了很多个“第一次”,使我们成功度过了“七年之痒”:第一次北京主场;第一次办晚会;第一次全球化的主题;第一次进入农村;第一次大规模个性化的无线产品运营等等。
所有这些第一次,都让2015年的双十一变得多了一点新鲜和不同。也许,变革会有风险,但是,不变风险更大。因为市场不断在改变,技术不断在进步,用户的生活方式、商家做生意的方式不断地发生改变。我们只有去顺应这种变化,去引领这些变化,愿意为变革付出一些成本甚至代价,我们才能一直走在时代的前列。也许有人会问,我们好不容易变化成功了,被别人抄去了不是很心塞?我想说,如果我们的新变化,有人愿意去模仿,那是好事,那证明了我们变化是变对了,我们应该更坚定地“变”下去。
双十一是年轻人的舞台,让年轻人承担更大的责任
双十一2015年是第七年,全集团完整参加过这七次双十一的,只有四位同事。每一年,我们都有很多新同事加入到双十一的策划和组织中来,2015年在一线担任重任的都是我们的八零后、八五后、九零后,这些新面孔让双十一变得和以往不一样。他们很多的“奇思怪想”也许经不起理性的分析和严谨的逻辑推理。但是年轻人一定更懂得年轻人,只要给多一点自由的空间,少一些自上而下的简单否定,我们也许就会多了不少惊喜。未来,我们会把更多的机会留给年轻人,让更多的年轻人成为主角,在关键的岗位、关键的战斗中承担更为重要的责任。
利用大数据,从赋能自己,到赋能商家
这次双十一的一大亮点是,我们基于大数据的无线产品和技术的创新,使得整个运营效率有了大幅度提升。在双十一期间,淘系的活跃用户得到了充分的引导和互动,得到了大量个性化的展示和推荐,事实证明了大数据的巨大威力。我们用大数据赋能了双十一,赋能了我们自己的运营能力。我们还要更上一层楼,利用大数据赋能给所有的商家,帮助他们运营好消费者,这样才能让我们在大数据时代践行“让天下没有难做的生意”的使命。
直面竞争,勇于挑战
2015年的双十一之前,市场很不平静。有一些一年发作一回的噪音又如期而至。阿里人从来不惧怕竞争,阿里人不怕阳谋,更鄙视阴谋。我们的团队真得很争气,扛住了压力,赢得了消费者,赢得了双十一的胜利。而且,因为竞争和挑战,我们的团队变得更强大、更有战斗力。双十一过去了,战斗力不能过去,我们要继续地打大仗、打硬仗,让炮火来得更猛烈些吧。
最后,围绕2015年的双十一的后续工作,我对大家有几个要求:
– 做好物流、售后服务:双十一这一天过去了,912亿销售额带来的物流、售后服务才刚刚要进入高潮。 请我们的菜鸟、客户服务部门的同学们积极地行动起来,不仅让消费者买的爽,还要收包裹收得更爽!
– 认真复盘,总结沉淀:靓丽的数字不能说明一切,认真地研究复盘找到问题。没有最好,只有更好。
– 主动对我们的商家、合作伙伴、快递小哥说一声感谢:只因有“您”,才成就了这个全社会消费者的节日。
2015年的双十一已经过去,生活还要继续。各位阿里人,让我们迅速恢复平静,回到平凡,在平凡中积攒能量,孕育下一个辉煌!
逍遥子
阿里巴巴集团CEO