如何在業(yè)務高速增長、可用性越來越高的背景下實現系統(tǒng)架構的快速有效升級?如何保證復雜業(yè)務下的研發(fā)效率與質量?本文將為大家介紹美團配送的一些思考與實踐。
物流行業(yè)的發(fā)展離不開商業(yè)的發(fā)展,近些年,商業(yè)的變革為物流發(fā)展創(chuàng)造了新的機會。電商的興起有效帶動了快遞行業(yè)的飛速發(fā)展,直接造就了順豐、四通一達這樣的快遞公司。而近年來O2O商業(yè)模式的興起,尤其是外賣、生鮮等到家場景的發(fā)展促進了同城即時配送的快速發(fā)展。
與物流領域下的其他分支不同,同城即時配送具有如下特點:
時效快:美團外賣平均送達時間28min。
距離短:配送距離多數為3~5km范圍,較大的擴展到同城范圍。
隨機性強:取貨點、交付點具有時間與空間的隨機性,預測與規(guī)劃難度相對較高。
行業(yè)的流程再造一般離不開兩個因素:
內因:技術或基礎設施取得重大突破
外因:用戶消費升級或市場發(fā)生重大變化
技術方面,AI與大數據的應用逐步普及,基于人工智能可以對配送難度、ETA、騎手能力精確評估。GPS的快速發(fā)展與GIS廠商能力的不斷開放,使得基于LBS的應用大大降低了開發(fā)成本?;A設施方面,得益于國家的持續(xù)投入,移動網絡的質量不斷提升,成本逐年下降,也間接促使智能手機幾乎實現了全民覆蓋。
市場方面,由于中國人口具有超大規(guī)模性的特點,人群聚集度高,外賣等到家場景在各大城市尤其是一線城市的需求持續(xù)增強。用戶對于外賣的安全、時效、配送員的服裝、禮貌用語等都有更高的要求。
在這兩個因素的共同作用下,促成了同城即時配送行業(yè)的發(fā)展。而對于同城即時配送業(yè)務而言,履約能力與運營效率是研發(fā)團隊要重點解決的兩個問題:
1、履約能力保證:實現平臺對運單調度的實時把控,具備供需調控能力。
2、運營效率提升:加強對配送騎手的管控能力,提升配送全業(yè)務的運營效率,持續(xù)降低成本。
美團配送系統(tǒng)的本質——機器與海量騎手協作,服務于全國用戶和商家的大規(guī)模協作系統(tǒng)。技術的挑戰(zhàn)本質上源于業(yè)務的痛點,具體體現為線上的強履約能力要求與線下的強運營能力要求。技術上的挑戰(zhàn)也同樣來源于線上和線下兩個方面:
線上履約的SLA要求更高。配送業(yè)務需要兼顧用戶、商家、騎手三端利益,任何一次宕機的影響都可能是災難性的。如果體驗不好,用戶會說,為什么我付了錢,卻還餓肚子?商家會說,這是因為出了餐沒人??;但是對騎手來說,會覺得自己付出了時間與勞動,卻沒有獲得足夠的收益。
線下的業(yè)務復雜性更高。多條業(yè)務線管理模式不同,對于如何兼顧系統(tǒng)在共性和差異化上有很大挑戰(zhàn)。
?
美團配送系統(tǒng)架構的演進過程可以分為三個階段:
1、MVP階段:業(yè)務模式探索,快速試錯,如何具備快速迭代能力。
2、規(guī)?;A段:業(yè)務成指數級增長,如何既保證業(yè)務發(fā)展,又解決系統(tǒng)可用性、擴展性、研發(fā)效率等問題。
3、精細化階段:業(yè)務模式逐步成熟,運營逐步精細化,如何通過產品技術創(chuàng)新驅動業(yè)務發(fā)展。
試錯階段,需要快速探索業(yè)務模式到底是不是一個方向,這個階段不要期望很多事情都想得很清楚,用戶和市場會快速反饋結果。所以,對于技術團隊而言,這個階段最主要的能力是快。搶奪市場,唯快不破。
從系統(tǒng)架構角度,MVP階段只需要做粗粒拆解,我們按照人、財、物三大領域將系統(tǒng)做了初步服務劃分,以保證后續(xù)的業(yè)務領域都可以從這三個主領域中分離、繼承。
順便提一下當時團隊的組織形式,研發(fā)團隊按項目制組織,大家共同維護一套系統(tǒng)。當時團隊中無QA崗位,由PM、RD共同保證開發(fā)質量,一天發(fā)布二十幾次是常態(tài)。
進入這個階段,業(yè)務和產品已經得到了市場的初步驗證,的確找到了正確的方向。同時,業(yè)務發(fā)展增速也對研發(fā)團隊的能力提出了更高的要求,因為這個階段會有大量緊急且重要的事情涌現,且系統(tǒng)可用性、擴展性方面的問題會逐步凸顯,如果處理不當,就會導致系統(tǒng)故障頻發(fā)、研發(fā)效率低下等問題,使研發(fā)疲于奔命。
這個階段從架構層面我們重點在思考三個方面的問題:
整體架構應該如何演化?履約系統(tǒng)與運營系統(tǒng)的邊界在哪里?
履約系統(tǒng)的可用性如何保證?系統(tǒng)容量如何規(guī)劃?
運營系統(tǒng)如何解決業(yè)務的真正痛點?如何在大量“瑣碎需求”下提升研發(fā)效率?
解決以上問題的整體思路為化繁為簡(理清邏輯關系)、分而治之(專業(yè)的人做專業(yè)的事)、逐步演進(考慮ROI)。
在整體架構上,我們將配送系統(tǒng)拆解為履約系統(tǒng)、運營系統(tǒng)和主數據平臺。
履約系統(tǒng)(圖右上側)的設計上,首先按照用戶側與騎手側做了初步劃分,這樣拆分兼顧了雙端角色和調度流程的統(tǒng)一。例如:用戶側更關注發(fā)單的成功率與訂單狀態(tài)的一致性,騎手側則更關注派單效果、推單成功率等,整體上解耦了發(fā)單、支付、調度等模塊。
運營系統(tǒng)(圖左上側)方面,需求長期多而雜,架構設計上需要先想清楚配送的運營系統(tǒng)應該管什么、不應該管什么。在長期的項目開發(fā)中,我們從業(yè)務戰(zhàn)略與組織架構出發(fā),在明確業(yè)務戰(zhàn)略目標和階段策略下,梳理每個業(yè)務團隊/崗位的核心職責、考核目標、組織之間的協作流程,最終整理出現階段配送運營管理的中心為四個領域:
經營規(guī)劃:如何科學地定義目標,并保證目標能夠有效達成。
業(yè)務管理:如何提升每一個業(yè)務管理過程的效率與質量。
騎手運營:騎手是核心資源,一個城市需要多少騎手、騎手分級是否科學、如何調控需要系統(tǒng)性方案。
結算平臺:提高錢的效能,是能否做到成本領先的關鍵。如何把錢用得對、用得準需要長期思考。
除了履約、運營兩個系統(tǒng)的架構設計外,架構設計層面還有一個非常關鍵的問題,即履約、運營系統(tǒng)的邊界與職責如何劃分的問題。個人理解這個問題可能是O2O類業(yè)務在規(guī)?;A段最關鍵的架構設計問題,如果不能有效解決將為系統(tǒng)的可用性、擴展性埋下巨大隱患。履約、運營兩個方向的業(yè)務需求和技術職責有較大差異,且多數數據的生產都在運營系統(tǒng),最核心最關鍵的應用在履約系統(tǒng)。雖然各自的領域職責是清晰的,但對于具體的需求邊界上不見得簡單明了。對此,我們借鑒了MDM思路,提出了主數據平臺(圖下側)的概念,重點解決履約系統(tǒng)與運營系統(tǒng)的合作與邊界問題。
主數據是企業(yè)信息系統(tǒng)中最基礎的業(yè)務單位數據,對于配送而言是組織、崗位、人員、商家、用戶、城市等數據。與之對應的是業(yè)務數據,例如:訂單、考勤、薪資等。主數據有兩個最關鍵的特征:
1、基礎性:業(yè)務數據生長在主數據的維度上,例如:訂單數據是用戶、商家兩個主數據實體下的交易數據
2、共享性:各類系統(tǒng)都強依賴于主數據,主數據的變化上游各業(yè)務系統(tǒng)需要感知與聯動
主數據管理并非一蹴而就,是伴隨業(yè)務發(fā)展逐步迭代的。早期系統(tǒng)較簡單,上游系統(tǒng)直接從DB中讀取數據并應用。這種方案在系統(tǒng)逐步復雜之后,容易出現多個團隊開發(fā)互相影響,不利于系統(tǒng)擴展,并且在可用性上有很大風險。為此我們專門成立的主數據的團隊,獨立拆分了主數據服務,并把所有對于數據的訪問收回到服務上。在此基礎上,經過不斷的迭代和演進,最終我們吸收了CQRS(Command Query Responsibility Segregation)和MDM(Master Data Management)的思想,將整個主數據平臺逐步劃分成四個部分:
生產系統(tǒng):負責對數據生產的建模,隔離數據生產對核心模型的影響。例如:騎手入職、組織拆分流程等。
核心模型:挖掘數據實體關系,提升模型能力。例如:一人多崗、雙線匯報等。
運力中心:面向履約系統(tǒng)的應用場景支持,將騎手諸多屬性抽象為運力模型,并對可用性、吞吐能力著重建設。
管理中心:面向運營系統(tǒng)提供標準化框架,提供信息檢索、流程審批、權限控制等場景的統(tǒng)一解決方案。
業(yè)務的快速增長對系統(tǒng)的可用性提出越來越高的要求,在方法論層面,我們按照事故發(fā)生的時間序列(事前、事中、事后)提出了四大能力建設,即:預防能力、診斷能力、解決能力、規(guī)避能力。同時,在具體工作上,我們劃分為流程和系統(tǒng)兩個方面。
可用性建設是一個長期項目。考慮到ROI,起步階段重點完成事前的流程建設,即上線規(guī)范等一系列線上操作流程,這個工作在早期能夠規(guī)避80%的線上故障。在流程規(guī)范跑通并證實有效之后,再逐步通過系統(tǒng)建設提升人效。
容災能力建設上,首先思考的問題是系統(tǒng)最大的風險點是什么。從管理的角度來看,職責的“灰色地帶”通常是系統(tǒng)質量容易出現風險的地方。因此,早期最先做的容災處理是核心依賴、第三方依賴的降級,優(yōu)先保證一旦依賴的服務、中間件出現問題,系統(tǒng)自身具備最基本的降級能力。
第二階段我們提出了端到端的容災能力。首先,我們建設了業(yè)務大盤,定義了實時監(jiān)控核心業(yè)務指標(單量、在線騎手數等),通過這些指標能夠快速判斷系統(tǒng)是不是出了問題。其次,我們在核心指標上擴展了關鍵維度(城市、App版本、運營商等),以快速評估問題有多大影響。最后,我們通過Trace系統(tǒng),將服務間的調用關系與鏈路級成功率可視化展現,具備了快速定位問題的根因在哪的能力。
第三階段,我們期望將容災預案集成到系統(tǒng)中,基于各類事故場景打造定制化、一體化的容災工具,這樣可以進一步縮短故障的響應、處理時間以及研發(fā)學習成本。例如,為了進一步提升配送系統(tǒng)的SLA,我們在端到端的容災能力上深度優(yōu)化,重點解決了騎手弱網、無網的情況下的端到端交互問題。中國某些地區(qū)人群非常密集但移動運營商網絡質量較差,會導致騎手到了這個區(qū)域后操作App延遲較大甚至無法操作,這對騎手的正常工作有非常大的影響。因此,我們在移動網絡鏈路層面不斷加強長連接、多路互備的能力,并將網絡的診斷、處理、驗證工具一體化,使騎手App的端到端到達率有了進一步的提升。
對于一個規(guī)模快速增長的業(yè)務,系統(tǒng)的容量規(guī)劃是一個長期命題。容量規(guī)劃的關鍵點是評估與擴容。
評估方面,在業(yè)務發(fā)展早期我們一個架構師就能夠完全掌控整個系統(tǒng),采用靜態(tài)評估的方式基本可以衡量系統(tǒng)容量。隨著系統(tǒng)復雜度逐漸提升,我們逐步引入了Trace、中間件容量監(jiān)控等工具輔助評估容量,由架構師團隊定義容量評估主框架,由各團隊細化評估每個子系統(tǒng)的容量。當業(yè)務已經變得非常復雜時,沒有任何一個人或團隊能夠保證精確完成容量評估,這時我們啟動了場景壓測、引流壓測、全鏈路壓測等項目,通過 流量標記 + 影子表 +流量偏移 + 場景回放 等手段,實現了通過線上流量按比例回放壓測的能力,通過系統(tǒng)報告精確評估容量與瓶頸點。
擴容方面,我們分階段依次實施了冗余備份(主從分離)、垂直拆分(拆分核心屬性與非核心屬性)、水平拆分(分庫分表)、自動歸檔。
運營系統(tǒng)涉及一個業(yè)務運營管理的方方面面,我們在業(yè)務領域上除了明確目標、過程、運力、資金四個領域外,打造了一套運營系統(tǒng)集成解決方案集合。研發(fā)通過持續(xù)投入精力在平臺化服務或組件的長期建設上,使每個垂直的運營系統(tǒng)擴展性得到保證,從而不斷提升研發(fā)效率。以工作流場景為例,通過動態(tài)表單 + 流程平臺的方式,統(tǒng)一各類業(yè)務流、審批流的工程實現,各類管理動作的效率與質量可量化,找到流程阻塞節(jié)點,自動化部分流程環(huán)節(jié),通過技術手段不斷降低人工成本。
業(yè)務發(fā)展不斷成熟之后,業(yè)務的各類運營管理動作會趨于精細化。這個階段,業(yè)務對于產品技術有更高要求,期望通過產品技術創(chuàng)新不斷打造技術壁壘,保持領先優(yōu)勢。配送的業(yè)務特點天然對AI應用有很強的需求,大到供給調整,小到資源配置,都是AI發(fā)揮效力的主戰(zhàn)場。對于工程層面,需要持續(xù)思考的問題是如何更好地實現AI的業(yè)務應用。為此我們重點提升了幾方面的能力:
降低試錯成本:構建仿真平臺,打造算法的“沙箱環(huán)境”,在線下環(huán)境快速評估算法效果。
提升算法特征迭代效率:構建特征平臺,統(tǒng)一算法策略迭代框架與特征數據生產框架,提升特征數據質量。
提升導航數據質量:持續(xù)深耕LBS平臺,提升基礎數據質量,提供位置、導航、空間的應用能力。
?
仿真平臺的核心是打造“沙箱環(huán)境”,配送的服務業(yè)屬性要求用戶、商家、騎手深度參與服務過程,因此算法的線上試錯成本極高。對于仿真平臺的建設上,我們刪減掉調度系統(tǒng)的細枝末節(jié),粗粒度的構建了一套微型調度系統(tǒng),并通過發(fā)單回放、用戶、商家、騎手實體建模、騎手行為模擬等方法模擬線上場景。每次仿真會產出算法的KPI報告,實現算法效果的離線預估。
算法策略的效果,主要依賴于算法模型和特征數據的質量。為此我們圍繞模型和特征,打造了一站式算法數據平臺,提供從數據清洗、特征提取,模型訓練、線上預測到算法效果評估的全方位數據閉環(huán)解決方案,為機器學習和深度學習算法模型在配送各個業(yè)務線落地提供支撐。
LBS平臺早在配送業(yè)務的起步階段就開始實施,隨著算法場景的不斷發(fā)展,LBS不斷深化點線面空間能力,為配送調度、時間預估、定價等業(yè)務場景提供支撐,打造了任務地圖、路徑規(guī)劃、語音導航、熱力圖等產品。
美團配送系統(tǒng)架構的演進過程,架構師團隊長期關注技術驅動業(yè)務、明確領域職責與邊界等關鍵問題,同時架構的演進過程也是不斷考慮ROI的權衡取舍過程。技術的持續(xù)發(fā)展不斷提升體驗、規(guī)模,降低運營成本,而架構在里面解決的問題是化繁為簡,將復雜問題拆解為簡單的問題并通過領域專家逐級各個擊破。隨著規(guī)模的持續(xù)增長,業(yè)務的持續(xù)創(chuàng)新會給系統(tǒng)架構提出越來越高的挑戰(zhàn),系統(tǒng)架構設計將是我們長期研究的一個課題。
快遞大變革:“納稅新規(guī)”落地、社保加強征管,這次反內卷誰會被淘汰?
1064 閱讀2025年京東物流貴州大件宅配、白云區(qū)資源招商
584 閱讀京東物流2025運輸業(yè)務招標
569 閱讀四川首個低空冷鏈物流項目啟建
548 閱讀美團閃購聯合華為共建“騎手補給站”
515 閱讀運滿滿“倒貨清源”行動成效顯著:首月處理超26000個違規(guī)賬號
577 閱讀橋水基金清倉阿里、京東等中概股
557 閱讀淘天集團內部更名為中國電商事業(yè)群-淘天集團
545 閱讀京東物流上半年總收入985.3億元,同比增長14.1%
480 閱讀8月19日起,餓了么將開啟“假一賠四”
464 閱讀