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

滴滴打车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。
Delphi中多库关联查询 Delphi中建表 Delphi中数据文件路径的管理 ODBC中的同步与异步执行模式-Delphi资料 SQL编程常见问题-Delphi资料 第11章 中级SQL-Delphi资料 第10章 SQL基础-Delphi资料 SQL语句中的删除和改变-Delphi资料 TDataLink类别的说明-Delphi资料 TDBGrid控件中对多个记录的处理-Delphi资料 安装BDE需要的东东-Delphi资料 保存DBGrid中栏的字段名及尺寸-Delphi资料 动态生成定义数据库-Delphi资料 动态组成SQL速句-Delphi资料 多层C/S的客户端调用服务器端的方法-Delphi资料 关于dephi数据库的动态建立-Delphi资料 基 于WEB 的 数 据 库 查 询-Delphi资料 计算数据库某字段的值-Delphi资料 计算字段值-Delphi资料 建立应用软件注册安全机制-Delphi资料 建立自己的数据字典库-Delphi资料 将BLOB字段的BMP图显示出来-Delphi资料 将图像放入数据库中-Delphi资料 解 决sybase 用 户 数 据 库 不 能 进 入 故 障 的 一 种 方 法-Delphi资 解决sybase用户数据库不能进入故障的一种方法-Delphi资料 解决一个DBF表时的"Index not found.."错误-Delphi资料 精简Delphi数据库应用系统 精简Delphi数据库应用系统-定制BDE驱动程序 精简数据库应用系统-Delphi资料 开 发 基 于ORACLE7 数 据 库 的 管 理 信 息 系 统-Delphi资料 开 发AS/400 应 用 系 统: PB5 与Delphi3 的 比 较 求OA设计方案 请 ychuiming(飞天),hkbarton(宁静至远||淡泊明志) 进来接分 在ASP.Net中,用VB.net写代码,怎么取得到的记录集中的记录个数啊? pb中有没有与或操作符?就象VB中的Xor这类操作符? 如何从一个单一的JSP程序员迈进J2EE的世界--请高手指点迷津 第一次来csdn,请各位多多关照。随便问一个巨傻的关于BDE的问题。 离职,却被原来公司经理阴了一下 求AutoResize控件(分不够可加) 谁做过远程代理的程序(急,100分求助,不够再给) mm不让我去接她 树形菜单的问题 如何限制对SQLSERVER的请求访问数? 各位,跪谢了!不能见死不救啊! session 问题 我的服务器 无法更改 session值了 有没有好的远程服务器监控软件 主细表类型的报表问题,希望有人帮我!先谢谢了!(急) 大家救救我得机子吧~~ 极度深奥的问题!!有没有谁知道“xp_logattach ”这个存储过程的实际作用与用法。 ADO 错误代码 (能否置顶啊..斑主) ini文件的保存 智能卡读写设备(成熟技术)== 想借鉴请进 提问?关于用DreamweaverMX处理网页参数问题? ping命令的奇怪问题,你遇到过没? 有谁知道windows一共出了多少版本(包括不同语言,不同版本) 有谁知道windows一共出了多少版本(包括不同语言,不同版本) 初学者,请教小问题~~~ 用opengl写的一个屏保,有些问题想和大家讨论 帮我看看 有谁知道windows一共出了多少版本(包括不同语言,不同版本) 想暴力解决点问题,大家给点意见! 熟悉J2EE和Web,但是英语四级没过,郁闷呀!散分讨论 怎样使用一个窗体总是显示在最后面和怎样在windows桌面上写上文字。 如果全世界只有一个男人... .net组件有没有对象池的功能? 编程男友和淘气女友!绝配!!!! 企业管理器很慢? 关于窗体的问题 我明年打算考中程,到底难吗? 网络编程 为什么我的mdb数据库不能设置对象指针可以移动啊? 急啊!!!有没有做过论坛发帖机啊能否帮我一下就是怎样提交CSDN论坛的注册信息然后得到左边的树列表和右边的列表 本人做系统时有一个操作员列表,为使每个操作员的密码保密,想在数据表据中将密码用*号代替,怎么办? 怎么檢測一個線程是否已經創建? 解密软件,哪里找 美萍VOD是怎么实现不用网络共享而完成点播的呢? com入门问题2 jb8+Weblogic配置后,在jb8中不能编译jsp文件,但java文件可以编译 哪里有好的控件下载,介绍几个好的网站!!! 一个很久没有解决的问题,请各位指教。 高分求救程序 我装RASPPP软件的时候,他要我的数字签名怎么办? 找个和公司名近音的英文单词!公司叫锐捷计算机网络工程请大家帮忙想一个发音相近的英文单词不要:REJECET(拒绝)这个词!或者没有意思但是看上去简单点,元音辅音匹配,好发音的也行,词 she is a careful girl so she seldom makes m----in her homework.a---he is over sixty ,he runs as fast as young people.she will be a mother as s---as her baby is born.nothing is more i---than life. 英语翻译I went to the woods.Because I want to live deli bevately .I want to live deep and suck out all the mavvow of oife.To put tovut all that was ont life.And ont when I came to die.Discovev that I had not lived. laugh,laugher和laughing作名词时的区别?请不要复制字典的内容! 意外死亡,死亡证明该怎么开麻烦告诉我 hammer3.5转换实体时出现there are no eligible selected objects 3d 渲染时弹出对话框 you must have objects selected点击茶壶渲染时 出现的对话框 he hit the bell rope with heavy blows.请帮我分析这句的结构,还有为什么有hit和blow两个打击? 给我一篇有文笔有内涵的文章 intervene和interfere的区别? 英语翻译Water-using SchemesIn the case of regeneration reuse,the relationships between the three flow rates FF,FR and FD and xPR may be defined for two extreme water-using scheme:minimum freshwater scheme and maximum water-reuse scheme.The minimu 媒体曝美全球监听地图 澳大利亚是美监近3成日本大学毕业生3年内离职 疑被小狗被饿三周吃伞充饥 其主人不愿救治研究证明蝙蝠系非典传播源 病毒可由动西班牙首相关注美监听行动 称将听取情田中角荣之女真纪子拟参加下一届日本众科学家研制出人造血液 目前已可在老鼠新10英镑钞票印简 奥斯丁头像 被批出差“一夜情”伤脸 澳最高法:不算工纽约提高香烟禁售最低年龄 未满21不韩美启动第六轮防卫费分担会谈 意见分究竟何为人文精神?银行职员:我对存款消失案的看法怎样才能把10万的汽车开出100万的学会四个字,让你月薪过万天梭保修点千万别在喝茶的时候失礼!喝茶暗语,你跳槽穷半年,改行穷三年!献给坚持不下德国孩子学前必做的两份清单济南国华东方美郡173平欧式奢华风格【推荐】学的更多,你才能离成功更近一黄逸尘:股市大涨白银受捧,风险回暖油寂静王冠滇东诡事武侠世界臣服情动三国动物世界赶尸先生仙劫悍匪的巅峰修神至尊此间少年八仙过海景区旅游达古冰川旅游宰相府第风情街旅游世纪欢乐园旅游金河寺旅游金河口旅游安徽省博物馆新馆旅游小悬空寺旅游帽儿胡同旅游鹅尾山神石园旅游惠州哈斯塔特村旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘