快狗打车的业务架构设计迭代实践

Posted 架构头条

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快狗打车的业务架构设计迭代实践相关的知识,希望对你有一定的参考价值。

作者 | 叶兰
嘉宾 | 沈剑
大家都在谈业务架构,那什么是业务架构?业务架构可以发挥哪些作用?做业务架构需要注意什么?...... 带着上述问题,InfoQ 记者采访了到家集团技术委员会主席、快狗打车 CTO 沈剑。
1何为业务架构

谈业务架构前,先来认识一下“架构是什么”。只有先理解架构,我们才能更好地认识业务架构。

“架构”的英文单词是“architecture”,它最初来自建筑领域,可以把它理解成房屋或一栋建筑的整体结构、框架。再来看一下“基础架构”,它其实是偏底层通用基础建设相关的架构,比如 K8s 集群建设、Service Mesh。而业务架构就是基于业务场景去设计架构。

在沈剑看来,系统本身是服务于业务的,脱离业务去谈系统,没有意义。并且,系统架构本身也是为了解决业务问题。而脱离业务问题和业务阶段谈系统架构同样没有意义。简言之,系统架构的设计不能脱离业务,因为业务既影响架构,架构又会赋能业务。

做系统架构的过程中,架构师一定要先了解业务特点,针对业务去做系统。同时,他也一定要了解业务的痛点,通过系统架构设计去解决业务痛点。

“因为我们置身于业务场景中,脱离业务去设计架构其实是有问题的。”他说。

2快狗打车的业务架构设计迭代实践

众所周知,快狗打车是中国知名的同城即时货运平台,其业务核心流程分为以下几个阶段:

快狗打车的业务架构设计迭代实践

同时在线司机数从万、十万到百万的过程中,不同阶段应该使用什么样的系统架构?

沈剑表示,“快狗打车在业务发展之初,业务形态并不稳定,业务对系统的要求是快速实现、快速响应、快速迭代。但随着业务形态逐步稳定,用户、司机与订单越来越多,业务对系统的要求是稳定以及具备一定的扩展性。”

“即使是相同的场景,早期和现在对系统架构的要求截然不同。”

他举了三个具体的场景案例来进行说明。

 场景 1:订单系统

早期,快狗打车有多个业务(2C、2B、直营城市、下沉城市等),每个业务更适合有自己独立的订单库,方便快速试错。而现在则需要统一订单中心,提升稳定性、保证扩展性,并维持较低水平的维护成本。

 场景 2:经纬度检索

司机的经纬度上报与检索是快狗打车的业务核心之一。早期,他们直接使用数据库来存储与检索经纬度,快速实现、快速迭代。如果现在还用数据库,那么肯定扛不住性能,所以现在抽离了单独的服务来实现。

 场景 3:消息中心

早期 GPS 上报,快速实现了一套消息通道;订单推送,快速实现了一套;用户与司机聊天,快速实现了一套。现在,他们把共性的需求抽象除了消息中心,以满足不同场景,在扩充业务场景的适合,能复用系统。

总结一下,在量级不同的阶段,因为对系统的需求不同,所以对应的系统架构也不会相同。

3遇到的问题和解决思路

沈剑说:“业务不同阶段对架构的要求不同,因此架构迭代或重构的过程会比较痛苦,一方面要完成架构升级与转型;另一方面又不能影响业务需求的开发与迭代。”

实际上,在架构迭代和重构过程中,既要保证架构升级迭代,又不能影响现有业务正常进行,这是有一定难度的。

以订单库从分开到订单中心合并为例:

  • 第一个业务(优配业务),闭环了自己的订单库;

  • 第二个业务(货旳业务),为了快速迭代,也闭环了自己的订单库;

  • 第三、第四个业务(车队业务、合伙人业务),发现情况不对,尝试统一订单库,尝试建立订单中心,但并不彻底;

  • 当有订单统一展现的需求时,要访问多个订单库,开始抓狂了,抱怨早期为何不统一,下决定要统一;

  • 然后开始数据收口,服务写收口,服务读收口,最终花了 1 年时间,才完成订单中心的统一。


随着业务的发展,对架构的需求不同,架构升级过渡期会比较痛苦,但又必须协同各个业务研发团队,往正确的方向走,做到架构的阶段性合理。

4业务中台的尝试

据沈剑介绍,在下一步的计划中,他们在业务中台方面做一些尝试。

他说:“首先,业务中台是与业务相结合的;其次,业务中台是多业务通用的。例如,快狗打车的用户、交易、订单、结算、营销等,不管是 2B、2C、自营业务还是下沉业务,都是通用的,就适合抽象成业务中台,统一来建设。”

任何脱离业务的中台都是蹭热度——快狗

5总结

从快狗打车的业务架构实践中,我们了解了不同阶段的业务架构设计目标是不同的。如果你正要做业务架构设计,沈剑提出了三点建议:

  • 贴近自己的业务场景,深入的了解业务逻辑,针对该业务阶段设计适合自身的框架;

  • 系统架构设计中必须要考虑的可用性、高性能、扩展性、一致性等常见要素;

  • 还需要考虑业务特性、业务痛点、业务需求,密切贴合业务做系统架构。

嘉宾介绍

在 2021 年 5 月 28-30 日举办的 QCon 全球软件开发大会(北京站)“业务架构演进”专题上,到家集团技术委员会主席、快狗打车 CTO沈剑老师将分享《百万司机在线打车平台架构演进》 期待大家面基。

https://qcon.infoq.cn/2021/beijing/presentation/3260?utm_source=web&utm_campaign=7&utm_medium=infoq&utm_content=shenjian

 今日文章推荐:


4 月 25-26 日,2021 年全球架构师峰会首站落地上海!顺丰、网易、阿里、平安、美团、腾讯、百度……哪些大厂案例是你最想了解的?哪些明星讲师将会出场带来精彩分享?哪些技术在你的全栈技能图谱上还需要加足马力?7 折倒计时遇上元宵节,2 人拼团还有更多优惠!扫描下图二维码或点击底部阅读原文,一窥 2021 年架构师峰会上海站最新动态!



点个在看少个 bug

以上是关于快狗打车的业务架构设计迭代实践的主要内容,如果未能解决你的问题,请参考以下文章

我们从来都反对“大中台,小前台”的架构设计!

十万,百万,千万,快狗打车架构是怎么演进的?

机房平滑迁移方案与多机房多活架构设计

基于电商业务中台最佳实践:总体架构介绍与交易业务中台核心设计

微服务与领域驱动设计,架构实践总结

百万年薪架构师必备能力:万亿级微服务架构设计实践!