NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

达达 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:004197

评论

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

Numpy 常用数据结构和清理函数

若尘

Numpy 数据清洗 Python编程 8月日更

01-架构的定义

Lane

中大型组织 DevOps 成熟度模型设计

Phodal

DevOps thoughtworks phodal

Python 数值中的下划线是怎么回事?

Python猫

Python

🏆【Java技术之旅】教你如何使用异步神器CompletableFuture

洛神灬殇

Java 异步编程 8月日更 CompetableFuture

Cobra 快速入门 - 专为命令行程序而生

xcbeyond

cobra Go 语言 8月日更

34岁Java开发大叔感慨,100%好评!

策划Java工程师

Java 程序员 面试 后端

35岁的程序员被裁,90%的人看完都说好

策划Java工程师

Java 程序员 面试 后端

35岁程序员半月4轮面试,HR的话扎心了

策划Java工程师

Java 程序员 面试 后端

【Flutter 专题】131 图解 AnimatedList 动画列表

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Vue进阶(幺柒幺):前端用户体验提升(五)Flex实现弹性布局

No Silver Bullet

Vue Flex 8月日更

如何做分库分表,常见方案汇总

架构精进之路

MySQL 分库分表 8月日更

kubernetes/k8s CRI 分析 - 容器运行时接口分析

良凯尔

Kubernetes 源码分析 Kubernetes Plugin #Kubernetes# cri-o

互相讨厌的奥运与气候

脑极体

35岁以后的Java程序员出路在哪里?最全的BAT大厂面试题整理

策划Java工程师

Java 程序员 面试 后端

35岁的程序员被裁,电子版已问世

策划Java工程师

Java 程序员 面试 后端

来自跨越边界的急件,我推荐你用这三步,走出锁住你的圈套。

叶小鍵

25K大牛甩出的超详细面试总结,已获万赞

策划Java工程师

Java 程序员 面试 后端

渣男已经预订大碗牢饭,“科技渣男”怎么还在疯狂套路?

白洞计划

使用PSI(Pressure Stall Information)监控服务器资源

swordholder

Linux DevOps Linux Kenel linux运维

恐惧和自我偏见 -- 成长的最大障碍

俞凡

认知

异常机制的概述

程序员阿杜

Java 8月日更

Spring 源码解析 -- SpringWeb过滤器Filter解析

Java spring 源码阅读

Vue进阶(幺捌零):JS 向 Vue 传值

No Silver Bullet

Vue 8月日更

爱你的人,会管着你。而不是惯着你。

石云升

娱乐圈 8月日更 刑法

十大排序算法--冒泡排序

Ayue、

排序算法 8月日更

25K大牛甩出的超详细面试总结,砥砺前行!

策划Java工程师

Java 程序员 面试 后端

350道Java面试真题分享,王者笔记!

策划Java工程师

Java 程序员 面试 后端

Web 身份验证:Cookie 与 令牌

devpoint

Cookie 8月日更

35岁程序员半月4轮面试,项目实战

策划Java工程师

Java 程序员 面试 后端

架构实战营-毕业总结

大可

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