zoukankan      html  css  js  c++  java
  • 这些年,我们一起经历的那些双11(转自蘑菇街赵成公众号)

    原文:https://mp.weixin.qq.com/s/iYxVo_6AzHuDA8SXZ7IMiQ

    本文是来自InfoQ对我们团队双11保障的采访,部分内容今天也已经在InfoQ头条首发。接受采访的是我们的架构师普智,这里将当时采访的全文分享出来,虽然只是一个个的片段,但仍然可以感受到一个真实的双11保障过程。今年已经是我们在一起的第5个年头,有成长,有成就,但最难得的是这份共同奋战所带来的友谊和回忆。


    InfoQ1:您(及团队)经历了几次双十一?主要支撑了双11的哪些工作(运维、推荐、实时计算等)?提前多久开始进行技术准备? 
    答:我是2015年加入蘑菇街运维团队,到今年为止已经参加五次双十一。我们团队主要负责支撑及保障全站业务在双十一期间稳定运行,主要工作分为四块:
    1.与业务团队一起梳理链路依赖,预估活动高峰期的业务流量;2.根据业务预估流量,评估相应集群容量,准备服务器及网络资源;3.配合业务团队扩容部署服务集群,参与全链路压测,协助业务团队定位和排查链路的瓶颈点,推动性能优化;4.制定推动基础服务的容灾应急方案,确保在突发异常场景下,最大程序保障系统的正常运行;技术及运维保障方案我们一直会随着业务的发展变化而持续改进、优化。双十一准备工作我们跟着业务规划走,一般提前2个月参与评估讨论,服务器资源准备上,我们根据业务预估流量评估出总体服务器需求量,提前知会到云厂商准备相应服务器资源。另外一方面,我们会综合考虑业务的需求场景、全链路压测需求和成本,在适当的时机将采购服务器部署到生产环境上,最大程度保障业务需求与成本之间的平衡。InfoQ2:在您参加双十一的历程中,分别讲述一个至暗或高光时刻,能具体描述下这件事情吗?答:作为运维保障部门,如果我们在双十一当晚“万众瞩目”的话,那一般场景下都不会有什么好事情发生(除了抽奖环节),因此我们不希望在双十一当晚出现在聚光灯下,更愿意在那个时刻安静坐在工位下享受购物的乐趣。
    记得在2016年,第一次参加蘑菇街的双十一大促活动。当晚0点高峰时就发生部分业务容量不够,服务器网卡被打爆的情况。当时我们团队慌了神,做了对节点进行紧急扩容的决定,但扩容上去后发现新的节点又发现引爆其他的问题,反反复复折腾了一天,用户体验也不太好。现在回想起来还心有余悸。当业务现实流量大于预估容量时,我们从内心是希望系统能处理每一个请求,不希望让用户出现不可访问的场景,但实现场景下,我们必须拒绝这种幻想。业务限流是应对超出预估流量合理处理方案。InfoQ3:这次双十一,您最怕遇到什么问题?你们做了哪些准备?答:今年双十一是蘑菇街全面云化的第一次大促,对我们服务的稳定和性能挑战相当大。
    举个例子,原来我们生产环境在自建机房或托管机房内,机房内的网络时延相对于云机房内部时延都比较小,即使两者相差0.1ms,但对于我们这种分布式系统来说,影响还是比较大。业务要完成一次请求,需要从不同系统之间调用,响应时间RT会被指数级放大。随之带来的业务之间的超时时间设置都需要调整和优化,单机服务能力也会降低。当然大部业务系统是可以通过扩容节点来增加集群能力,但毕竟还有一些服务是无法做到水平扩容来实现的,因此需要从架构或技术引入新的变革来解决这个时延带来的风险;另外一个担忧点,我们蘑菇街在IAAS层与PAAS层已经全面云化,这也是我们第一次100%云上的大促,数据库、缓存和大数据等服务都已切换成相应的云产品。虽然前期也经历过其他大促活动历练,但相对于双十一的流量来说,这些云服务会有较大的挑战,云产品内部实现对于客户来说都是透明,对于不知的东西人们总是会充满恐慌,因双十一也是对云厂商的能力和信任的挑战。应对本次双十一,我们团队和业务同学一起共组织七次全链路压测。通过每次压测检查去发现每条链路的问题,不断核对各个接口量和响应时间是否符合预期。如果不满足,就针对该节点进行优化或扩容;通过一次次加量压测,确保服务可靠稳定;如果按100%预估容量压测通过后,我们还会组织120%,140%的流量压测,确保流量大于预期情况下业务系统限流是有效的。同时,我们与云厂商组建双十一保障组,要求云产品的技术专家全程参与全链路压测,通过压测发现云产品容量或性能问题,督促其进行优化改进,以满足我们业务要求。在双十一准备阶段及活动期间,各云厂家也会派人来现场办公,全力保障双十一活动;除此之外,我们针对部分服务实现多云容灾方案,如CDN,直播,点播等,日常情况下保持多云服务能同时提供服务。若在双十一时期间某云厂商服务异常情况下,我们可以实现快速实时切换。做到主动权在我,不行我“走”。InfoQ4:筹备双十一期间,您的作息时间是怎样安排的,与平常有变化吗?在压力大的时候会采用什么方法减压?双十一当天睡几个小时?答:筹备期间,我们团队大部分作息时间还是根据公司日常走。全链路压测时我们全体轮流参与值班,轮流的目的是为了团队的人通过压测更加了解熟悉业务各个系统情况,能把日常工作互备起来。总体来说我们团队的工作压力还好,如果压力大的话,我们会搞搞聚餐,楼下运动运动啥的。
    双十一当天能睡几个小时?这个就不好说了,一切视业务系统情况而定。根据以往经验,睡眠还是能保障充足的,毕竟我们是团队作战,不是一个人!InfoQ5:团队有人员因为双十一离职的吗?原因是什么?答:没有!双十一是我们锻炼成长的机会,通过与业务一起深入分析业务出现的问题,自身的理论与实践不断的结合,提升不断自我能力和实现价值,这个过程是相当有益的。

    当然我们也不会因双十一出现的问题就一定要与人员绩效挂勾。毕竟成长的路上允许出现错误,错误才能积累经验。我们大佬带团队原则:尽量避免出现低级的人为故障;同类故障避免出现重复出现;重在问题的解决,而不是在于责罚。InfoQ6:参与双十一以来,你们都说过哪些“狠话”?答:“狠话”说了就能保平安吗?感觉精神压力会更大了。空吼无益,实干维稳!InfoQ7:双十一当天技术团队会受到公司HR部门或者管理团队的特殊关照吗?答:双十一是公司级的项目,不仅仅是HR,我们的行政、HR、组织发展等等,所有部门都会做好支持和投入。在双11之前HR已经开始送福利了,满满一袋枸杞已发到各个值班同学手上了。双十一当晚按惯例HR部门都是准备,会全力保障值班同学的需求。
    InfoQ8:成功保障双十一顺利进行,你们对自己的最佳奖励是什么?答:下个大单采购一把?还是调休好好休息一下。InfoQ9:如果以后不做双十一的保障人员了,您会怎么过双十一?答:我们团队是保障部门,貌似躲不过。除非换一个工种?当一个产品如何?让业务开发抓狂一下:)。

  • 相关阅读:
    PHP调用WCF提供的方法
    关于git报 warning: LF will be replaced by CRLF in README.md.的警告的解决办法
    vue中引入mui报Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them的错误
    微信小程序报Cannot read property 'setData' of undefined的错误
    Vue那些事儿之用visual stuido code编写vue报的错误Elements in iteration expect to have 'v-bind:key' directives.
    关于xampp中无法启动mysql,Attempting to start MySQL service...的解决办法!!
    PHP的环境搭建
    新手PHP连接MySQL数据库出问题(Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES))
    手机号码、获得当前时间,下拉框,填写限制
    团队作业(五):冲刺总结
  • 原文地址:https://www.cnblogs.com/robinunix/p/11836808.html
Copyright © 2011-2022 走看看