打车的江山 马蹄声狂乱 ——帝都滴滴抢修记

锲子

和滴滴团队一起战斗的日子已经过去半年了,但那场没有硝烟的战争,至今仍记忆深刻。特作余作文以记之,权作回忆,也当是滴滴打车系统优化经历的一个见证。

那时“滴滴”还叫“嘀嘀”,那时打车竟然有土豪请客。

正好在北京出差。小雪初晴,北大未明,几个乡下人装模作样在这百年学府里感慨着,感叹着,然后转身去了王府井,蘸着酱料吃着鸭,喝着啤酒吹着牛。然后电话响了,一看是BOSS的BOSS,再然后,就有了后面的故事。

“月圆之夜,紫禁之巅,一剑西来,天外飞仙。”——《陆小凤传奇》

曾传说阿里巴巴与四十大盗广发檄文,鼓励大伙们一起打到南极企鹅帝国去。然而未等大军开拔,滴滴和快的已经率先攻进对方的地盘里。你拍一,我拍一,你五块、我十块,你加一、我随机,相当热闹。爽了司机、爽了乘客、苦了老人、苦了一小撮攻城狮。

从王府井出来,坐着去中关村的的士上,边听着拥有价值上亿的四合院却仍有追求并勤勤勉勉开出租车的师傅说着紫禁城的故事,边下载快的和滴滴试用。快的,正常。滴滴,进入失败,再试,定位失败。一直试到小桔科技公司。

2月18日,下午4点,在小桔唯一的小会议室里,见到了一群据说已经救火多天,仍在继续灭火的团队和老板。初步交流后,知道从推广以来,滴滴的订单量,每天都保持一个高速增长,订单从十万的量,快速增加到百万级别,每到早晚高峰,系统就被折磨的死去活来,攻城狮们同样也是活来死去。这不,刚过两点,还没到高峰,系统就抽风了,正赶上我在的士上不停的尝试。后来定位是LVS高负载导致,很多请求已经进不来,团队进行紧急扩容LVS,就在我踏进小桔公司的那一刻,系统扩容完毕,可以叫车用了。

如果以为就这么简单的搞定,那也就没有了以后的事情。

下午五点,滴滴的同学们,依然很忙,准备迎接晚高峰。我这个闯进帝都冒充救火专家的企鹅,却无所事事。跟程老板寒暄之余,好不容易让他安排了个同学给我介绍下滴滴整个使用的流程。

于是知道了滴滴的核心流程围绕着:乘客下单(单,订单也,后同)、司机抢单、系统分单三部分,也了解到乘客下单后,会不停的刷单;司机抢单后,会时刻上报坐标;系统分单时做了一大堆计算……,所有的请求都有一个共同点,多次读写数据库操作,数据库用mysql,mysql需要读磁盘。

“那都是很好很好的,可是我偏不喜欢。”——《白马啸西风》

不是不喜欢,而是某些时候不合适。

滴滴这些设计的愿景是好的,是为了给乘客,给司机最好的用户体验。可是并不是所有时刻都合适。所以当晚高峰还没到时,滴滴系统一如既往的垮了,那时,唯一的好消息就是快的也一如既往的挂了。

“做柔性策略吧!”

“柔性?”

“哦,就是把某些不重要的请求弄掉点,保障核心交易。”

“这怎么能行!”

“不行吗?”

“行吗?”

“……”,“……”

最后博哥拍板,用户反正都用不了,不如试试。然后,当天的晚上的数据曲线图,虽然像犬牙一样交错,但终究挺了过去,数据继续新高。这样和滴滴团队间的信任也就慢慢建立起来。后面几日,到了高峰系统扛不住时,滴滴的小伙伴们都很自动的提议:“降级吧”。

夜,九点,汤姆、威尔森、一灯大师的正规救火部队抵达,直接拉着行李来到公司,立马投入战斗,做各种详细的系统分析和调整。

“烟?”。

“狗。”

凌晨三点,楼梯口,我和汤姆喷云吐雾。

“快马在江湖里厮杀,无非是名跟利放不下。心中有江山的人岂能快意潇洒” ——《红尘客栈》

睡觉,在那些天来说,是一个奢侈。正月二十,雨水,咋暖还寒。早六点,大家都已趴在了电脑前。

早高峰相对安稳,曲线掉了几个坑,一群睡意迷糊攻城狮也没能发现太多问题。订单上升,司机在线上升,交易上升。所以就只梳理并安排了后面要做的事情:扩容机器,减少数据库访问,CGI柔性。我跟汤姆哥就回去补觉去了。

下午,BOSS从海南直接飞过来。

因会议室较小,转战到3W咖啡馆。那里见到了更多追逐理想的团队和追逐梦想的人。

原计划下午可以扩容12台机器,迎接晚高峰。但是计划是美好的,直到晚高峰快过,才知道今天是指望不上了。

“沛沛呀,扩容的机器什么时候才能上?”

“哎呀,林林,不好意思,刚才踢掉电源了。”

“……”“……”

订单量,依旧比昨日多。随着LVS扩容、柔性降级后,更多的问题逐层暴露出来:交易表庞大且订单量暴增,mysql性能已跟不上;司机在线量上不去,管理在线的pushserver是用java编写,没人熟悉;定位服务(查找周边订单/司机)使用的数据库,没人能懂这货。

”烟?”

“狗。”

楼梯间,寒风瑟瑟,还是那两个烟鬼。

然后,决定重写pushserver和定位系统(LBS)。于是,又陆续有南极企鹅们在未来几天奔赴前线。还有,第二天,从外地机房专车派送了3台Z3机器,先用来部署数据库,缓解压力。

谢老板的指挥下,对交易系统进行了一次详细的梳理和建模。同时画了一条线——在未扩容和优化前,读写请求不能超过这条deadline。

同时因机房条件比较艰苦,中间发生疑是攻击的情况,一点小小的流量,就将整个系统弄垮。所以决定将滴滴的整个系统,平迁到腾讯内部机房。这是一个艰难的决定,也是一个艰巨的过程。兵分两路,深圳的同学连夜准备资源。

“谁的江山,马蹄声狂乱,我一身的戎装,呼啸沧桑”——《菊花台》 

南极企鹅们来到小桔公司的第三天,听说阿里的团队也进驻了快的。箭弩拔张,似乎要在这个战场一决生死。

2月20日,团队再次挪窝。搬到银科大厦21F(腾讯公司)。后面几天,又2次搬迁。昔孟母三迁,为子择邻处。我们陆续六迁,只想找个安静且不影响别人,同时能有个稳定网络的地方。这里特别感谢北分负责协调工作环境的美眉,负责部署专有WIFI“DDbi”的sun同学。

SNG(腾讯内的社交网络事业群)的索罗带着几个兄弟,来到北京,跟滴滴谈手机QQ上的合作,来到小桔公司后,傻了,后台开发全在银科待着。RTX上问我:

“哥,你们把后台开发全部拐到银科了,什么时候给我一、两个呀?”

“明天吧”。

第二天追到银科:“哥……”。“明天吧”。

明日复明日。

闲云,野鹤,古刹。

主持曰:“施主,天色已晚,我给你叫辆车回去吧。”

施主曰:“大师,出家人不打诳语。这深山古刹,哪来的士?”

主持拿出手机,打开滴滴:“你看,山顶有168辆出租车。”

施主:“……”

我:“罪过罪过,降级太狠,这个不可当真。”

这段有点散。跟这两天的事情一样,琐碎而忙碌。

“多年后史书页 ,还把这夜撰写。”——《风起天阑》

几个月后的腾讯战略大会,邀请到创业伙伴现场分享。程老板分享滴滴打车经历多少次的九死一生时,眼圈红红的。梦想不易,坚持更不易。最后特别提到了那一夜:2014年2月23日凌晨,滴滴打车的服务,成功的从滴滴自运营机房,迁移到腾讯深圳机房。几天几夜的不眠抢修,这一刻终可绽开笑颜。

之前已经说过,搬迁,这是一个艰巨的工作。详细评估后,更是觉得困难重重。两天里,团队多次评估,细分,一遍又一遍的验证。最后,小桔公司的测试、QA、前后台开发、运维、老板,大老板,几乎所有的成员都来到了银科。

让我们铭记这一刻——2014年2月23日凌晨6点。

那一键按下后,所有人都屏息观察着,一项项数据跳出:司机在线,正常;乘客呼叫,正常;订单交易,正常。一切服务正常……

我和汤姆又跑去楼梯口抽烟去了。

等回来时,发现大家已在拍照合影纪念,然后我们又霸占了最前排的位置,要求重拍。两个无耻的胖子。

这是一群有梦想的青年,这是一张张欢乐的笑脸。困难时刻,他们能抗住压力,多少个不眠之夜,无怨无悔。跟随滴滴,多少次生生死死,永不言败。他们年轻,他们经验不足,然而他们勇往直前,他们坚信:“滴滴必胜”,所有的人一起呐喊,一起守望相助。

系统迁移成功后,从小米加步枪环境,升级到飞机坦克大炮腾讯内部云。然而事情并没结束,打车的江湖,仍在兵锋相争,团队的优化也在一步步开展着。

2月23日,定位服务链接满,实施请求分离,严格控制连接数。

2月24日,调整分单参数时,发现计算量暴增,修改并控制分单策略。

2月25日,上线新pushserver,司机在线突破瓶颈。

2月26日,数据库高负载。梳理CGI代码,整理交易流程,控制DB访问。

2月27日,上线新定位系统(LBS),连接的瓶颈拜拜去吧。

2月28日,系统全天正常

……

“兵器谱排名——第三名,唐家霸王枪;第二名,小李飞刀;第一名,小李他妈的飞刀。” ——《唐伯虎点秋香》

有人的地方就有江湖,有江湖的地方就有纷争。滴滴、快的的斗争,依然刀光剑影,持续了20来天,似乎还看不尽头。然而,谁也没想到,止戈这场战争的是这样一位人物。

扎堆里,武林霸主自曝,被老妈唠叨了。于是邀请对手坐下来喝茶。也是,老师从小就教导我们,要听妈妈的话,否则倾尽了天下又能如何?

最终滴滴打车和快的打车,谁也没能把谁干掉。斗争也许会继续。然而不知是否明白,彼此最大的敌人不是对手,也不是幕后的霸主,因为

“江湖乃是江山一隅。”——《江山如此多娇》

”天青色等烟雨,而我在等你。“——《青花瓷》

算算日子,离家出来已经将近20天了。几年来几乎没离开妻儿这么久。

”与非早上起来已经抱怨了,说很想爸爸,昨晚梦到爸爸了,怎么爸爸还不回来?“老婆如是留言。

”汤姆哥,狗。”

然后,汤姆继续留守,我跟谢老板踏上回程。

后记一

真的没想到,滴滴打车,一个简单的APP,有着这么多复杂的逻辑。那几天,系统一直会碰到这样或那样的问题,始终稳定不下来。可以说,滴滴和快的,这次谁的系统扛不住,谁就退出了竞争。然而,双方的准备都显不足,兵马已行,粮草却未动。

老板们在后方时刻关注着支付的曲线,估计会对那些常常掉底的巨坑感到巨气愤和巨无奈,但并没有把压力太多的传递给前线,只是在后方帮忙协调一切资源,并根据自己的阅历和经验,给予指导和建议。

后记二

还未结束,以上都是废话,感谢大家能耐着性子看到这里。下面才是正文,才是适合系统优化的八股文。

1. 陌生团队的合作,从建立信任开始。陌生系统的优化,从使用产品开始。

2. 了解业务逻辑。找不到问题根源时,先抗住再优化,可适当实施柔性,通过扩容硬抗。

3. 为系统建模。严格控制每个模型的输入输出,做到一切皆可掌控,明确知道多余的请求会对每个模块造成什么影响。这样也会更容易找出问题根源所在。

4. 系统要干干净净。请求和数据,轻重分离。方便运营。腾讯多年沉淀下来的海量服务之道价值观值得每位互联网开发者好好学习。

5. 合作过程中,有争议时,需要有一锤定音来拍板的人。比如当时滴滴团队和腾讯团队在是否重写pushserver、LBS定位服务上有分歧,谢老板直接拍话:优化的事情交给腾讯团队,其余事情滴滴来做。否则真是要优化无止境。

6. 创业团队最容易碰到的问题是,找各种组件使用,哪个好用用哪个。但真的出了问题时,只能干瞪眼,不知道如何解决。所以,当产品成熟时,对系统要能尽早梳理,请使用云,总有一款最适合你的。

7. 不能将攻克难关认为全都是大牛们的事情。也不是说一定得要调整架构,重写代码。每个人,无论老手还是初学者,只要用心,都能够给优化提供很多思路和帮助。比如滴滴优化后期,仍经常遇到DB的繁忙,几个同学通读所有PHP代码,认真梳理流程,成功控制住了对DB的合理使用。

谨以此文纪念滴滴打车优化的那段日子,跟所有参与优化项目的企鹅和滴滴同学共勉。

原文发布于微信公众号 - 腾讯大讲堂(TX_DJT)

原文发表时间:2014-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SAP梦心的SAP分享

从《致加西亚的信》看项目管理

很多领导者或者成功学大师很喜欢在不同的场合引用《致加西亚的信》的内容,以此来激励和教育别人怎样做事才是好员工,他们对文中的主人公罗文的做事风格钦佩不已。

36140
来自专栏腾讯高校合作

打车的江山 马蹄声狂乱 ——帝都滴滴抢修记

锲子 和滴滴团队一起战斗的日子已经过去半年了,但那场没有硝烟的战争,至今仍记忆深刻。特作余作文以记之,权作回忆,也当是滴滴打车系统优化经历的一个见证。 那时“...

39140
来自专栏JAVA高级架构开发

IT公司老板落水,各部门员工怎么救?

公司专聘高级管理专家:作为公司高管,听到公司老板落水,第一时间电话秘书部预定会议室,紧急召集公司全体会议。会上先摆明问题,说明事情严重性,要求大家集思广益,头脑...

6400
来自专栏大数据文摘

渐近永生:两种意识上传的技术实现手段

315100
来自专栏玉树芝兰

小程序的大威力

吃过晚饭,带儿子下楼玩。他说跟小朋友约好了,一起到对方楼下的沙坑集合。可是到了人家楼下,却没见到人影。给家长发微信,没有回,估计在忙。

9020
来自专栏java一日一条

一个五年 Android 开发者百度、阿里、聚美、映客的面试心经

先简单说说我最近的面试经历吧。面试的公司很多,其中有让我心血沸腾的经历,也有让我感到失望到无助的经历,我将这些体会都记录下来,细想之后很值得,面了这么多公司,要...

20110
来自专栏北京马哥教育

10年前鸟哥带我们进了Linux殿堂,今天你能在现场和他对话了

22540
来自专栏VRPinea

为了玩独占游戏的我,硬是凑齐了三款VR头显,难道还能召唤神龙?

41860
来自专栏IT派

作为程序员,我到底在恐慌什么

IT派 - {技术青年圈} 持续关注互联网、区块链、人工智能领域 程序员们会觉得恐慌么?有时候我会。 或者说,现在也会。 这种恐慌大概是在上学的时候就有了...

46750
来自专栏PPV课数据科学社区

利用人性弱点的互联网产品(五)懒惰

就像之前所说的那样,懒惰是人的天性,一切让事情变得更加简单快捷的产品或服务都在或多或少的都在利用这个天性,因为凡是优秀的用户体验,必定是满足人性懒惰的。 而在三...

29730

扫码关注云+社区

领取腾讯云代金券