说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

滴滴打车CTO张博:生死战役,技术和时间赛跑

HTML文档下载 WORD文档下载 PDF文档下载
人称“博师傅”的滴滴打车CTO张博说:“三年来,基本天天都在‘打仗’。每天一睁眼就要想生和死的问题。而在生死时速之后,我们开心地发现沉淀了非常多的宝贵经验,培养了大批优秀的实战人才。”

2012年成立的滴滴打车,仅用了三年时间就书写了:覆盖300个城市,用户数从2200万增到1.5亿,月活跃用户增长了600多倍(2014年平安夜当天,全国用滴滴打车出行人数超过了3000万人),打车成功率高于90%……这些永远会被铭记在移动互联网历史中的神奇记录。而不为人知的是,支撑滴滴打车如此庞大用户数量的架构,以及那些曾无数次不眠不休应对挑战的技术伙伴们。

人称“博师傅”的滴滴打车CTO张博这样描述:“三年来,基本天天都在‘打仗’。每天一睁眼就要想生和死的问题。比谁能最先稳定,能将用户留住,谁就是胜利者。我们用技术和时间赛跑。而生死时速之后,我们开心地发现沉淀了非常多的宝贵经验,培养了大批优秀的实战人才。”


滴滴打车CTO张博往往被朋友们亲切地称为“博师傅”

三款产品背后的架构变迁

滴滴打车成立初衷是为了解决司机与乘客之间的信息不对称的问题,通过移动互联网和智能手机来打破信息的壁垒。从打车到专车再到顺风车,滴滴打车三款产品的背后是架构的挑战和系统的变迁。

CSDN:如果从产品角度来看,滴滴打车发展有几个阶段?作为CTO,你的工作重点有哪些?

张博:滴滴打车成立初衷就是为了解决司机与乘客之间的信息不对称的问题。乘客和司机通过传统手段往往无法实现信息对接,一方是打不到车或被拒载;另一方是空车行驶耗时耗力耗费资源。这是信息的壁垒,完全可以通过移动互联网和智能手机来打破。而在后续运营中,我们发现即使出租车空驶降低到O,也无法满足早晚高峰乘客出行需求。以北京为例,出租车10.6万辆,但人口却有2000万常住人口,1000万流动人口。要匹配这样的需求需要集中社会用力,调度社会资源,这就是滴滴打车的第二款产品——滴滴专车。目前专车订单量已经逼近出租车订单量,而车租车订单量没有下降,显然撬动的是新增量市场。第三款产品是顺风车,满足的场景很有代表性。通过滴滴大数据分析系统,发现很多人居住地和工作地都比较接近,收入水平相当,行业属性相近,这些人往往都会使用出租车或专车,如果能够将需求合并,显然无论是帮助乘客提供低成本出行,还是节省社会资源,都很有价值。更有趣的是,其上增加了社交属性,人们可以结交新的朋友,出行变得更有意思。作为CTO,我的工作主要有三部分:第一是产品,第二是工程技术,第三是大数据

CSDN:三款产品代表了滴滴打车的不同发展阶段。相信每个阶段背后的架构都有很明显的特征?

张博:2012年滴滴打车刚成立时,流量很小,不需要架构,2台服务器就能解决所有问题。随着快速的发展,第一次发现性能瓶颈是在2014年初“补贴大战”时,我们的订单量一周之内涨了50倍。而当时的预估是增加10%。500%对10%,结果可想而知。网络、存储等故障不断,Webserver和MySQL也频出问题。团队所面临的挑战非常大。更为紧张的是,靠传统采购机器来实现扩张,显然完全无法满足业务需要。通过分析比较,我们最终决定整体搬到腾讯云中。这是面对高并发、海量数据挑战时,架构的第一次非常大的调整。但搬迁也并非一帆风顺,代码需要做大量重构,来解决技术上的单点问题。

第二次架构变化是在第二款产品滴滴专车时,因为最初架构设计是为支撑一款产品,而今架构要同时支撑多款产品。产品之间,有相同也有不同。为此,我们特别成立了技术架构部,将通用型服务下沉到架构,避免重复造轮子,将个性化服务放到业务层,实现服务开发。举个例子,比如支付、账号体系、计算、存储等,都是通用型服务,可以放到架构中。这次架构重构是比较成功的,也正是这样的组织和技术变化,所以在第三款产品顺风车的时候,以及我们马上发布的更多新产品时,都可以得到很顺畅的支撑和服务。

CSDN:业内对滴滴打车当时遇到的挑战印象深刻。当时和腾讯云在技术方面有哪些合作?

张博:当时滴滴打车已经接受了腾讯的投资,和腾讯云自然比较亲近。而且腾讯云也已经历了QQ和微信海量用户高并发的考验,比如春节红包,稳定性和经验是毋庸置疑的。和腾讯云的合作,在技术方面有三个方向:首先是安全,在滴滴打车发展过程中,遭受了多次黑客攻击,所以安全对我们至关重要,而腾讯云的大禹安全体系可以很好地帮助我们;其次是CDN等网络服务,有些技术是创业公司很难实现的。比如网络层优化,用户手机发送订单时,需要接入最近的基站,需要找到最优质链路,这些只有投入巨大人力物力的企业才能实现。而这些服务对用户体验极为重要,所以初创企业通过云服务反而可以走的更快更好;第三是在基础平台构建等方面节省大量人力,如硬件采购、硬件运维等,不需要费心费力,而是可以将更多精力集中到应用层和业务层,以及其他更有价值的数据分析等新技术方面。实际上,当时在补贴大战时,作为一个当时仅1年半的初创企业,在如此大流量面前是根本顶不住的。也正是那时,腾讯高级架构师直接驻场,和我们建立了兄弟般的友谊。

CSDN:腾讯云新品发布速度很快。后续滴滴打车还会重点用到哪些新服务?

张博:滴滴打车和腾讯云是深度合作的,安全、网络、运维之外,还有优化整体系统,部分调优、新产品实践等。滴滴打车甚至会深入到腾讯新业务中,比如征信系统。通过滴滴打车平台收集的乘客/司机的爽约次数、爽约频率等都会成为一个数据源。再如未来顺风车中,基于大数据分析,如何为一个互联网的屌丝优先匹配一个互联网女神,这些有趣的场景在底层都需要数据交换的。需要应用到腾讯云更多的新技术,新服务。我们双方都非常开放,希望能够给社会创造更大价值。

CSDN:携程、艺龙事件之后,CTO们更加重视数据安全。滴滴打车在安全方面如何规划的?

张博:目前滴滴打车大部分服务都在云上,也有部分服务是通过租赁腾讯机房自己运维的。整体架构是混合云的模式。安全对每个公司而言都很私密。现在内部有严格的安全控制,外部主要是通过腾讯云,如防黑客攻击,如DDos攻击等。安全防护是没有止境的,我们需要做的工作还有很多。

开源优化构建技术核心竞争力

滴滴打车正在滴米系统、用户画像系统、精准营销、智能匹配、需求预测系统和运能预测系统等方面构建自己的技术核心竞争力。在研发的路上,大数据、机器学习不仅是滴滴打车产品的心脏,还是滴滴打车商业的心脏。

CSDN:2015年在滴米系统、用户画像系统、精准营销、智能匹配、需求预测系统和运能预测系统等方面,滴滴大数据技术逐步深入。那么研发的整体思路是怎么样的?

张博:是的。大数据是滴滴打车的心脏。不只是滴滴打车产品的心脏,还是滴滴打车商业的心脏。我们的研发的基本原则是想办法撮合乘客和司机,满足他们的需求,保证他们的体验。举个例子,某一个时刻在中关村,同时出现很多订单,周围有很多司机。我们要做的决策是:将订单发送给合适的司机。因为司机在任何时刻都只能听到同时爆发订单中的一个。所以匹配要准确,那么背后就是推荐算法要准确,匹配效率要高,计算要快,推送要及时。这还不够。我们在推送订单到这位司机之前,应该先预测他对订单感兴趣的程度,广告领域称为CTR,我们称为STR。在后验过程中,滴滴可以做到80%的准确度。其中,不仅要计算司机的个人特征,还要结合其决策体系,如喜好,是对小费敏感,长短途敏感,时间敏感,还是对方向敏感等静态特征和司机和订单之间的位置关系、时间关系等动态特征进行综合分析。除此以外,还有补贴,给乘客什么样的补贴,给司机什么样的补贴,谁更敏感,多少金额影响更积极,这些策略的背后都是大数据在起作用。我们希望用有限的资源最大化提升用户的质量和活跃度,这不可能通过人肉实现,只有技术才能实现这些。而实现的过程中,对架构、运营、产品等挑战都很大。

CSDN:滴滴打车在大数据方面是倾向于开源技术优化还是自主研发?

张博:我们业务分了几层。基本都是使用的开源技术。基础层面是数据平台,主要是大数据计算和存储,用的是业内比较成熟的开源系统,Hadoop。基础层上是自建的数据仓库,然后是策略架构,通过实验平台让策略迭代更加敏捷,如快速提取特征完成模型训练,并通过小流量测试验证模型,通过后迅速上线。这些都是工程方面的研发。再上面是机器学习,滴滴打车现在每天涌入的数据接近10TB,通过不断搜集用户标准数据特征,优化机器学习模型。比如推送给司机订单,司机是否抢单,这就是一个天然的标注。而通过这些标注,就可以优化学习体系。最上面就是整个大数据体系,支持新产品开发和策略决策。在我看来,目前很多开源项目演化的比较稳定,性能表现也不错,没有必要从头开始搭积木了,尽快将技术服务于应用最重要。而在不断实践中,通过对开源技术的改进和优化,在反馈给社区,我们是愿意这样做的。

CSDN:人工智能发展速度很快。滴滴在机器学习方面已经到了什么样的程度?

张博:我们马上会有重量级产品发布。滴滴大数据领域负责人是机器学习领域世界级顶尖学者何晓飞。我们在机器学习的投入是相当巨大的。

CSDN:哪些宝贵的经验可以分享出来?

张博:第一是如何应对大流量、高并发的挑战。比如每一个接口可能被访问频次如何设计,背后访问多少次缓存,数据库会读写多少次,后端每一个服务,瞬间并发量能到什么级别,每一层压力测试要扛住多大读写并发,10台机器能扛住多大读写并发等,都要做到心中有数。再比如每一次营销活动前,要对系统做一次体检,评估到底可以承接多大的量。第二是要有非常好的运维工具,要能实时监测线上每一个后端服务模块的负载,能够及时发现问题并报警。第三是设定多套应急预案,当问题发生时,团队可以尽快反应,做准备好的动作。第四是要有降级策略,在大流量冲击下,要优先保证主流层。对滴滴而言就是发单,用户发单、司机抢单是主流程,在这样的特殊情况中,积分商城等都是非主流层,可以被舍弃。

“我最开心的是,大家都飞速成长”

每一次生死战役,都是拼命在和时间赛跑。而每一次战役胜利之后,都为滴滴打车培养了优秀的实战人才。最让张博开心的是,团队成员在飞速的成长的同时,没有一个流失。

CSDN:滴滴打车成立只有三年,但对产业的影响有目共睹。作为技术负责人,你认为最大的挑战是什么?

张博:这三年,基本上每天都在打仗。每天都是一睁眼就要想生和死的问题。就像补贴大战时,一周数据涨了50倍,但我们完全无法应对。当时甚至出现了这样一幕,每到高峰,我们就宕机。我们宕机,对手就宕机。因为以用户都去他们那边了。当然,他们宕机,我们也宕机。当时比的是谁先稳定下来,谁能把用户留住。当时就是拼命在和时间赛跑,我们团队60多人曾7天7夜没有睡觉,吃住在公司。走过以后,回头看看,发现我们沉淀了非常多的宝贵经验,也用实战培养了更多的人才。也许,很难说一周之内就好像变了一个人,但三年来,平均每几个月就要闯一次生死关,过去了迎来新机会,过不去就死了。这样的压力下,你自己都会惊讶于自己的成长速度。一个快速成长的行业,一个快速发展的企业,你的快速成长是必然的。很多人都知道,在创业前,我在百度做搜索技术,那个时候只要在策略方面做好就可以,下面的基础设施层,如计算存储层都不要考虑。而在滴滴几乎负责各个层面,要搭建系统、要应对业务挑战、要做更多产品设计。基本没办法枚举更多了,所以最大的挑战就是应对挑战加速成长。

CSDN:如何评价和你“共生死”的团队?

张博:我的团队非常优秀,正因为经历了非常多的生死战役,他们每个人的成长速度会是大公司的2-3倍。也许2-3年前,他们还只是大公司技术团队的不知名的一员,但现在他们已经是滴滴打车的顶梁柱,承担了非常重要的工作。比如曾经一个iOS工程师如今负责滴滴公共产品和技术,已经成为全栈选手。这样的例子还有很多。我最开心的也是这一点,看到他们飞速的成长,而且从入职开始,没有一个流失。我们下一步会建立滴滴技术学院,每一个角色都有技术成长路线图,会有导师辅导,会有定期培训。我们也会引入高精尖人才,比如何教授等,请这些顶级专家带领大家走下去。

CSDN:滴滴快的合并后,实施联合CEO制度,人员架构不变。但在技术团队方面是否会有合并?

张博:技术平台和相应的架构正在做合并。我们希望变成不同的专业团队,将所负责领域做深,做精,帮助业务跑的更快。

CSDN:未来技术规划是如何考虑的?

张博:加大在大数据等方面的持续投入,加大在基础架构层面的投入。我们看到硅谷很多企业在大规模分布式计算、存储和机器学习的平台的投入是巨大的。比如谷歌通过对MapReduce的优化,使得其计算要远胜于其他平台。我们在这些方面也要继续学习,完善在技术方面的核心竞争力。

CSDN:你的转型很成功。对于从CIO到CTO或者从技术骨干到CTO,这两条不同的发展路径,有什么好建议么?

张博:从CIO到CTO,要清晰认识到技术为产品服务,产品为商业服务。CTO要有商业眼光。倒推回来,CIO要从技术入手,支撑产品发展,进而支撑公司现在和未来的商业计划。简单来说就是:从技术骨干到产品骨干,要懂互联网产品、明白用户需求,知道如何做出一款满足用户需求的产品、你要知道这些用户过来了以后,商业模式是什么,企业如何创造利润。而从技术骨干到CTO,难度更大。技术专家往往在某一领域精深,但要变成全能选手,就需要对每个领域都有所了解,找到这个领域真正的顶尖人才,然后组织起你的团队,驾驭团队实现目标。

写在最后:

成文之时,恰逢上海变成“海上”,朋友圈一片刷屏,呼唤“滴滴专船”。期待携手腾讯云已经完成架构优化的滴滴打车,能够更加快速地推出更多满足细分场景的创新产品。


【预告】更多技术实践尽在中国人工智能大会(CCAI 2015)。7月26-27日北京友谊宾馆,CCAI 2015包含机器学习与模式识别、大数据的机遇与挑战、人工智能与认知科学、智能机器人四个主题,专家云集。人工智能产品库将同步上线,预约咨询:QQ:1192936057。
Camera360开放SDK:拍照和滤镜一行代码搞定 一周消息树:计算机将拥有五感 人类面临威胁? 通晓数学的人就可以当程序员吗? 360发布企业版4.0 可自定义软件白名单 不要总是依赖机器 MongoDB扩展彰显分片功夫 Dell与HP的OpenStack的战略:渠道对抗SLA 路况电台王雷:未来车载系统会是Android的天下 移动周报:2012移动开发工具系列盘点 谷歌不愿错失机会 Android或不再成它人独享 黑客文化:Facebook公布2012年Hackathon大赛顶级“黑客作品” 中国移动音乐开放平台正式对外开放 GitLab 4.0发布 更好地支持PostgreSQL 傻瓜式移动应用开发平台:专访摩讯创始人赵健 日本DeNA进军中国智能电视,与海信战略合作 扎克伯格不仅为Poke编码,而且还“献声” Wordament:首款支持Xbox Live成就的iPhone游戏 使用Storm实现实时大数据分析! 孙博凯:微软日益开放,Windows Azure更加拥抱开源 大数据计算:如何仅用1.5KB内存计算十亿个不同的对象 我们为什么爱EC2和S3却彻底抛弃EBS 不畏Surface:诺基亚明年或推Windows平板 Linus Torvalds:用户程序被破坏永远是Kernel的问题! Python高效编程技巧 苹果加速硬件迭代 iPad5原型机曝光 宏碁推99美金平板 价格创历史新低 黑莓10全键盘版代号N系列,谍照泄露! 那些年我们用过的互联网产品 QQ亿级业务演变:从文件、音视频说起 少年企鹅的成长之旅:QQ体验设计发展史 全球超算Top 500:Linux已占93.8%,Windows或将消失 AWS东部地区再次发生宕机 Netflix等网站受影响 急!!! 一个烦人的问题 关于在应用程序中使用dll中资源的问题 關於並行執行的問題 也许你现在就会改变!! 看 http://Scjp.myrice.com 为什么要学Java 其实我们很封闭! 关于NT的小问题! 请问: 請問哪里有c++的書籍下載? 几个控件重叠在一起,怎样用代码的方式使其中的某个控件在运行时放至最上!?谢! 也许你现在就会改变!! 看 http://Scjp.myrice.com 其实我们很封闭! 如何发布我的网站? 怎样编程在Windows开始菜单的的“启动”栏中添加本程序的快捷方式? 谁有installshield 6.30的license注册文件? 请问:DataGrid在WebForm中明明有数据显示,但用浏览器看就没,为何? 显卡选择问题 ? 也许你现在就会改变!! 看http://Scjp.myrice.com 其实我们很封闭! 一个Acme .....???? 共计350分哟。急急。。。。我在PHP区有发言。但是还连不上SQL SERVER2000呀。。请进 boyqing(阿清):我的问题转到这了! 谁有installshield 6.30的license注册文件? 高手请进! 大家用java都来做什么????? 搞linux,unix底层的在中关村有没有搞头? 请问为什么我的CBuilder中在菜单项File/new下的无法找到RemoteDataModule?我是新手,请帮忙! 这几句TSQL有错?帮忙看看 请教关于网卡与声卡冲突的处理方法 谁有installshield 6.30的license注册文件? 请问如何在页面操作中保存dataset 怎样选定ListCtrl中的一行(包括subItem区域)? 类对象的实例和类的实例有什么区别?? 请问各位大虾,公文管理系统怎么做? 如何将TIF或TIFF文件转换成网页可以显示的JPG,或是GIF文件(最好给出JAR和例子) 这段程序应该怎么编? 各位老大,近来看看吧,一下午了也没有人来回答,苦命呀!加分...狂加....跳楼... TO net_lover(孟子E章) : 在datagrid中如何在获得当前字段内的内容? 高手都过来,这里有好几个问题!!! 安全队列问题?up有分! 如何在XML文件中獲得某個節點下重復的節點的個數﹐用IXMLNodeCollectionMA嗎? 谁解决了我的问题,我再送他100分一共200分!够吧! 滚屏公告栏滚动速度太快,如何调慢?帮帮忙 一个简单的问题? 需要紧急帮助!!!!!! 一个进制转换的问题? 刚开始看java,第一个hello,java程序 HELP ME!JAVA & XML的问题。。。 用过F1做报表的请进 在java里怎样创建自己指定目录,如不是文件? 关于C51串口通讯问题? Realplay的问题 RDS无法启动业务对象上的方法? 为什么蚂蚁等小昆虫可以在天花板上爬行?叫蚂蚁等小昆虫都可以爬到天花板上,就算天花板再光滑都可以,但是人不行(除非你是蜘蛛人大概还可以),好象也没有听说过它们的脚构造特殊,也 蜗牛到底属不属于昆虫科学本上有一道题说:野生的蜗牛是农业上的_______(填“害虫”或“益虫”).是填害虫吗?还是,这道题根本不对,蜗牛不属于昆虫.. 从哪里看出法布尔沉溺于昆虫世界 为何昆虫能反地心力,在天花板上爬行? 蜗牛算动物还是昆虫? 到底有没有红外线夜视望远镜呢? 请问蜗牛是昆虫么? 家里出现的蜗牛身上有没有寄生虫或者血吸虫我家潮湿的地方有时候好出现蜗牛,我听说蜗牛身上有寄生虫和血吸虫,请问是这样的吗?我们这是北方,河南.这样蜗牛到底有没有害 语文六年级上册的14课《狼与鹿的故事》要求全部的资料 关于描写大海的好句子20句OK 军用望远镜和民用望远镜的区别是什么? 法布尔的昆虫记 全文昆虫记全文出版社:哈尔滨页 数:219页目录蜘蛛黑肚皮的塔蓝图拉毒蛛虎纹园蛛狼蛛狼蛛的家庭生活天生攀岩家蜘蛛离乡记蟹蛛蟋蟀蟋蟀的住所蟋蟀的歌蝉蝉和蚁蝉的 描写大海的句子 如何辨别、认识军用望远镜九九式甲HJ8342是哪一个兵种使用的望远镜?是否有这一款望远镜?上标有50X50 168FT AT 1000YDS ,请内行人士给以解释. 夏天五种会叫的昆虫? 请问这是什么虫,好像蜗牛啊!可是比蜗牛大好多.可不可以吃? 军用望远镜和民用望远镜观测效果有什么不同,价格差别多少? 描写蓝天的比喻句 急呀.快!谁有好的句子,最好多写几句湖水的也行 这是什么虫子呀?像蜗牛!今天下雨了,我在冲凉的时候看见的,身体像蚂蝗,爬行想蜗牛,比蜗牛稍微快,行走像蛇一样S形,身体像个T字形. 这是什么蜗牛?昆虫鉴定 描写理想的比喻句快,我急用,最好是自己想的! 蜗牛是一种昆虫是什么说明方法 请问红外线夜视望远镜大约多少钱 是描写山的比喻句不是用山比喻什么是描写山的比喻句不是用山比喻什么,要五句 夏天会鸣叫的昆虫有哪些 望远镜红外线怎么开 夏天家里虫子多怎么办啊每次到夏天虫子就开始多起来了,那些虫子有点像蚊子,小小的可能纱窗都挡不住,也不知道是外面进来的还是屋里的,反正我的房间很久都不打扫卫生的在家光着膀子上 夏天会鸣叫的昆虫 谁有描写大海的现代诗歌要有 作者和 出处 用四个又是写一个比喻句 红外线望远镜价格 大概多少 天文望远镜与普通望远镜区别我有一台天文望远镜,请问与普通望远镜的区别,除了倍数和架子意外还有什么区别?可以用来进行户外观景吗? 如何把(√3)*3cosA-sinA表示成 r*cos(A+α) 红外线望远镜报价 好吗 极坐标:p(2cosA+5sinA)-4=0.化为直角坐标方程, 若存在a∈R,使sina≥1成立,则cos(a-π/6)的值为 红外线望远镜用电吗? 法布尔的《昆虫记》好像昆虫记里有一种虫子,走的路是前面虫子走过的,很小,白白的,我要用它写作,谁知道那是什么虫子,告诉我一声,谢啦 u=(1+sina)/cosa 用u表示sina 请问哪里有卖红外线望远镜 把极坐标方程化为直角坐标方程 (1)psina=2 (2)p=-10cosa (详解 法布尔的《昆虫记》被称为什么的史诗?法布尔的《昆虫记》被称为______的史诗? 描写海洋里面景物的句子 将极坐标方程化成直角坐标方程 p=2cosa+6sina 夏天夜里叫的昆虫 求5种在夏天鸣叫的昆虫答得好好的可以追加, 资料 夏天晚上叫声超大的昆虫,是什么虫子?前天晚上突然听到了!感觉好怪,声音很难听!而且很大!就像电锯的噪音一样.反正不是蝉/也不是青蛙!声音不同.好像还会飞!我上阳台打手电,就看到远处有 吃蜗牛 虫子种类黑色的 有3对腿 六年级上册语文第14课鹿和狼的资料 夏天夜里唱歌的昆虫有哪些 描写大海的优美句子 求5种在夏天会鸣叫的昆虫 r=acosθ 和r=asinθ 所围图形的公共部分的面积 蚂蚁是昆虫 还是动物谢谢了,大神帮忙啊 蜗牛属不属于昆虫 曲线r=a^2cosθ所围成的图形面积()A∫[0,π/2]((a^2cosθ)^2/2)dθB∫[0,π/2](a^2cosθ)^2dθC∫[-π,π]((a^2cosθ)/2)dθD∫[-π,π](a^2cosθ)^2dθ 描写大海的词语 五种在夏天会鸣叫的昆虫 在极坐标中 过圆P=6COSX的圆心且垂直于极轴的直线的极坐标方程是?圆那里是个(ROU) 不好打我就打成了P呵呵 我对极坐标那章记得不是很清楚了
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘