免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

达达 CTO 谈众包物流系统的复杂性

  • 2015-10-25
  • 本文字数:2666 字

    阅读完需:约 9 分钟

达达是一个聚焦最后三公里物流的众包平台,连接兼职配送员和有配送需求的商户,目前已拥有 50 万兼职配送员,服务超过 15 万家商户,日订单量达 90 万单的庞大体量。

InfoQ 记者采访了达达 CTO 杨骏,一位来自硅谷的 growth hacker、Facebook 早期的华人工程师,与他探讨了众包物流平台。本文根据采访整理而成。

InfoQ:相对于其他业务,物流业务有哪些独特的地方?

杨骏:物流是一个很大的行业。这个行业中有很多细分,比如干线物流,同城物流,也有像我们专注的最后三公里物流。三公里并不是一个非常严格的数字,它指的是城市毛细血管的物流。从另外一个角度来看,伴随电商而兴起的传统物流往往是计划性的。即使淘宝、天猫、京东这样的电商平台上的配送速度越来越快,其订单还是计划性的。相比之下,达达配送的订单都是即时性的,是实时产生的外卖、水果、生鲜等商品的配送,而且往往要求在 1 个小时内完成。

因此,我们专注的物流业务具有很强的区域性和即时性。这样的物流需求随着各类 O2O 电商而爆炸性增长,但又无法被传统物流满足。我们用了众包的模式很好地解决了这个问题,在很短的时间内实现了业务的飞速发展。

InfoQ:这些独特的地方肯定有一些技术进行支撑的,业务的快速发展给技术带来一些什么样的挑战呢?

杨骏:首先我们是完全搭建在移动互联网上的。我们的模式跟滴滴很类似,商家通过 App 发出配送需求,配送员通过 APP 可以看到附近商家的需求,通过抢单的模式来匹配这个需求并完成配送。这一切都通过移动互联网来完成。

我们面临的挑战会有以下两方面:一方面是面对快速增长的业务,如何确保系统的稳定性和可用性。面对海量业务的增长,我们在后台架构上做了很多的升级改进,以和时间赛跑的速度去 Hold 住单量的飞速增长,这块是很大的挑战。另外一方面是效率的挑战,简单来说就是如何让配送员每小时完成更多的配送订单。我们的技术团队做了大量的合并订单(把取货地和目的地接近的单子合并在一起,由一个配送员来完成),订单的推荐和指派,路径规划等方面的工作,使配送的效率随着规模得以提高。

对于这两方面的挑战,首先保证的是稳定性,因为效率是节省和浪费的问题,但是稳定性是关系到是否可用的问题。当规模迅速发展的时候,我们首先用稳定性扛住规模,而规模又提供了效率上的优化空间,使我们建立起规模和效率的双重壁垒。

InfoQ:达达在构建技术架构方面有哪些探索?

杨骏:面对上述所说的挑战。首先是研发团队的构建,在面对挑战的时候,找到合适的人比选择某项技术更显得重要。

其次我们做了很多数据库架构方面的优化,包括数据库的主从分离,读写分离,垂直分库,以及正在进行中的水平分库 (sharding) 等。简单的说,就是当一台数据库无法支持巨大的访问量时,我们把数据库中不同的表,甚至是同一表中的不同数据,拆分到不同的逻辑数据库中,实现了数据的分布式读写。这也为后续的业务发展提供了可扩展性。

我们也对上层的调用代码做了很多修改,并且做了服务的隔离,以保证核心业务和不核心的业务完全隔离开,这样不核心业务出现的问题不会影响到核心业务。

还有就是缓存的服务。面对这么高的访问量,我们基于 Redis 搭建了缓存系统,把大部分原先通过数据库的访问都用缓存来解决,以减轻数据库的压力。

我们现在已着手建设灾备机房,以保证有任何不可抗拒因素出现时我们的服务还能够可用。

InfoQ:从达达的角度来说,移动技术带来的最大不同是什么?

杨骏:移动技术使达达的商业模式成为可能。正因为有了移动互联网,我们才能用众包的模式去解决最后三公里配送,来匹配数以十万计的配送员和他们身边不断涌现的即时性的配送需求。这一点和滴滴和 Uber 都是相似的。

InfoQ:从达达官网提供的信息我们可以知道,达达的业务已经分布在非常广的区域。请问达达是怎么做服务的本地化的?

杨骏:从两个方面看这件事情。首先,我们的模式具有非常强的复制性的。互联网公司飞速发展的一个关键能力是低成本的扩张,就是说你能用非常低的代价非常快地复制自己。达达的商业模式和产品都能被迅速复制到一个新的城市,也就是说我们的可复制性很好。

其次每个城市在经济、互联网普及程度都不一样。我们在后台有一套很好的运营系统,可以对包括定价、配送时效等各种运营参数按城市级别进行配置,符合对每个城市的特点。具体实施时我们会和每个城市的的团队沟通,明确所在城市特殊的地方,同时快速在系统中做出修改和配置。我们把整个运营中所有的参数都做成了工具,很容易的由一个非工程师做配置,而不需要一个工程师做配置。

InfoQ:我们知道服务的可用性对于达达的业务来说是非常重要的,在技术方面达达是如何保证服务的“全天候”可用?

杨骏:首先是我们在数据库架构上做了非常多的优化,上面已经提及了。除此之外我们还做了服务的可降级化,也就是说在服务压力非常大的时候,我们能够牺牲掉一些不是核心的服务,保证核心业务的可用性。另外,我们还大量使用缓存,尽可能的让重复读写操作在缓存中被消耗掉,而不影响数据库。

除了上述两方面,我们还会通过一定的激励政策使团队中的每一个成员都去关注后台的稳定性。

InfoQ:刚才你说你们的主要业务都是基于云的,那开放平台会带来哪些不同?

杨骏:为了满足不同规模的商户,我们很早就创建了开放式平台 (OpenAPI)。通过这个平台,各类 O2O 电商可以很方便的实现和达达的系统对接,通过系统发出配送的需求,并完成订单跟踪、反馈、结帐等一系列动作。OpenAPI 让我们把线下的配送服务变成了线上的一系列标准化的 API。对于一些比较大的 O2O 电商,我们还会做很多定制服务,比如通过出仓扫码可以把出仓的动作直接反馈到我们平台上去,使双方的效率都得到了很大的提高。

InfoQ:您对 12 月份开幕的 ArchSummit 北京 2015 有什么寄语?

杨骏:一直在关注这个大会,大会为技术人员提供了一个很好的学习交流的平台。如果时间允许的话,我希望有时间去大会向国内的很多同行学习,也做一个交流。我之前一直在美国工作,我觉得在美国这十多年看到的情况是中国和美国的差距在迅速被缩小,甚至在某些领域已经出现了反超的情况。在商业模式上,其实中国有非常多创新的地方,同时在技术上我觉得两边的距离已经很接近,或者说几乎不可分辨了。我以前在美国也待过不少创业公司,他们的技术架构,和我今天在达达以及我所知道的中国其他这些公司的架构上没有什么区别,大家用的都是非常先进的技术,每次有新技术出现时都会很快的去采用。甚至中国在某些领域上,对于新技术的采用其实走在了美国一些公司的前面,因为中国新的公司非常多。其实我是很希望去那儿跟同行有一个很好的交流,也学习一下国内的很多经验。

2015-10-25 19:004415

评论

发布
暂无评论
发现更多内容

【网络篇】- https

双木之林

玩遍博客网站,我整理了全套的建站技术栈

老魚

程序员 博客 网站搭建 建站

产品经理的大局观——

小匚

产品经理 产品经理训练营

面试加分项!Android项目开发如何设计整体架构?学习路线+知识点梳理

欢喜学安卓

android 程序员 面试 移动开发

第二章作业

白知之明

作业:挑一个你喜欢的产品平台,列出产品的利益相关方。

嫉妒的耗子

阿里发布2021年Redis“神级”手册:基础+原理+应用+集群+拓展+源码,六管齐下

Java架构追梦

Java redis 阿里巴巴 源码 架构

产品训练营-第二周-作业

邹小胖

产品经理训练营

如何做好一场技术分享,100%纯干货输出

架构精进之路

技术分享 七日更 28天写作

第四次工业革命与龙的故事

脑极体

《程序员修炼之道》- 务实的哲学(2)

石云升

读书笔记 程序员 28天写作 软件的熵

阿里工作6年,熬到P7就剩这份学习笔记了,已助朋友拿到7个Offer

Java 编程 面试 计算机

抽奖小助手——利益相关者

墨狂之逸才

面试学习!我们究竟还要学习哪些Android知识?讲的明明白白!

欢喜学安卓

android 程序员 面试 移动开发

「Android渲染」图像是怎样显示到屏幕上的?

李小四

Android渲染 AndroidUI RenderingPipeline

第二次作业提交

涅米丶

【并发编程的艺术】Java内存模型的顺序一致性

程序员架构进阶

架构 JMM Java内存模型 28天写作

维基百科技术架构演进分析

Andy

深入了解HashMap!

xcbeyond

Java hashmap HashMap底层原理 28天写作

产品经理训练营第二周作业

产品经理训练营

追根溯源的产品思维

产品经理训练营

产品0期-第二周作业

曾烧麦

产品经理训练营

Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

潘大壮

Java 后端 mybatis mybatis源码

Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

潘大壮

Java 后端 mybatis mybatis源码

阿里开始“拆”中台?!中台建设何去何从?

博文视点Broadview

Springboot使用jasypt需要注意的一个小地方

Sky彬

springboot jasypt

产品经理课程-第二周

novaln🍉

Flink 助力美团数仓增量生产

Apache Flink

flink 流计算

70 张图带你彻底掌握红黑树

Java 数据结构 红黑树

【百度官方技术分享】百度智能小程序框架性能优化实践

百度Geek说

百度智能小程序 小程序云开发 百度 大前端 技术宅

作业 - 第二周

eva

达达CTO谈众包物流系统的复杂性_移动_龙永昕_InfoQ精选文章