《美团配送系统架构演进实践》读后感
《美团配送系统架构演进实践》对美团配送面临的技术挑战和美团配送系统架构之路进行了详细的讲解。
一、技术挑战
同城即时配送业务的发展迅速,但是配送系统面临的技术挑战也非常大。
美团配送系统的本质——机器与海量骑手协作,服务于全国用户和商家的大规模协作系统。技术的挑战本质上源于业务的痛点,具体体现为线上的强履约能力要求与线下的强运营能力要求。技术上的挑战也同样来源于线上和线下两个方面:
(1)线上履约的SLA要求更高。配送业务需要兼顾用户、商家、骑手三端利益,任何一次宕机的影响都可能是灾难性的。如果体验不好,用户会说,为什么我付了钱,却还饿肚子?商家会说,这是因为出了餐没人取;但是对骑手来说,会觉得自己付出了时间与劳动,却没有获得足够的收益。
(2)线下的业务复杂性更高。多条业务线管理模式不同,对于如何兼顾系统在共性和差异化上有很大挑战。
二、系统架构演进
美团配送系统架构的演进过程可以分为三个阶段:
MVP阶段:业务模式探索,快速试错,如何具备快速迭代能力。
规模化阶段:业务成指数级增长,如何既保证业务发展,又解决系统可用性、扩展性、研发效率等问题。
精细化阶段:业务模式逐步成熟,运营逐步精细化,如何通过产品技术创新驱动业务发展。
1、MVP阶段
试错阶段,需要快速探索业务模式到底是不是一个方向,这个阶段不要期望很多事情都想得很清楚,用户和市场会快速反馈结果。所以,对于技术团队而言,这个阶段最主要的能力是快。抢夺市场,唯快不破。
从系统架构角度,MVP阶段只需要做粗粒拆解,我们按照人、财、物三大领域将系统做了初步服务划分,以保证后续的业务领域都可以从这三个主领域中分离、继承。
顺便提一下当时团队的组织形式,研发团队按项目制组织,大家共同维护一套系统。当时团队中无QA岗位,由PM、RD共同保证开发质量,一天发布二十几次是常态。
2、规模化阶段
进入这个阶段,业务和产品已经得到了市场的初步验证,的确找到了正确的方向。同时,业务发展增速也对研发团队的能力提出了更高的要求,因为这个阶段会有大量紧急且重要的事情涌现,且系统可用性、扩展性方面的问题会逐步凸显,如果处理不当,就会导致系统故障频发、研发效率低下等问题,使研发疲于奔命。
这个阶段从架构层面我们重点在思考三个方面的问题:
(1)整体架构应该如何演化?履约系统与运营系统的边界在哪里?
(2)履约系统的可用性如何保证?系统容量如何规划?
(3)运营系统如何解决业务的真正痛点?如何在大量“琐碎需求”下提升研发效率?
解决以上问题的整体思路为化繁为简(理清逻辑关系)、分而治之(专业的人做专业的事)、逐步演进(考虑ROI)。
3、精细化阶段
业务发展不断成熟之后,业务的各类运营管理动作会趋于精细化。这个阶段,业务对于产品技术有更高要求,期望通过产品技术创新不断打造技术壁垒,保持领先优势。配送的业务特点天然对AI应用有很强的需求,大到供给调整,小到资源配置,都是AI发挥效力的主战场。对于工程层面,需要持续思考的问题是如何更好地实现AI的业务应用。为此我们重点提升了几方面的能力:
(1)降低试错成本:构建仿真平台,打造算法的“沙箱环境”,在线下环境快速评估算法效果。
(2)提升算法特征迭代效率:构建特征平台,统一算法策略迭代框架与特征数据生产框架,提升特征数据质量。
(3)提升导航数据质量:持续深耕LBS平台,提升基础数据质量,提供位置、导航、空间的应用能力。
仿真平台
仿真平台的核心是打造“沙箱环境”,配送的服务业属性要求用户、商家、骑手深度参与服务过程,因此算法的线上试错成本极高。对于仿真平台的建设上,我们删减掉调度系统的细枝末节,粗粒度的构建了一套微型调度系统,并通过发单回放、用户、商家、骑手实体建模、骑手行为模拟等方法模拟线上场景。每次仿真会产出算法的KPI报告,实现算法效果的离线预估。
算法数据平台
算法策略的效果,主要依赖于算法模型和特征数据的质量。为此我们围绕模型和特征,打造了一站式算法数据平台,提供从数据清洗、特征提取,模型训练、线上预测到算法效果评估的全方位数据闭环解决方案,为机器学习和深度学习算法模型在配送各个业务线落地提供支撑。
LBS平台
LBS平台早在配送业务的起步阶段就开始实施,随着算法场景的不断发展,LBS不断深化点线面空间能力,为配送调度、时间预估、定价等业务场景提供支撑,打造了任务地图、路径规划、语音导航、热力图等产品。