專訪美團外賣曹振團 天下武功唯快不破

2021-08-19 06:44:44 字數 3758 閱讀 4741

馬雲曾經說過:世界是懶人創造出來的。在「懶人」們的推動下,o2o的戰火已經燃燒到了外賣行業。據報告,2023年外賣市場年交易額已經達到450餘億元,其中美團外賣從2023年底上線以來,已經迅速超過了400萬日訂單。作為美團內部的創業專案,美團外賣是如何一步步從復用美團的基礎服務,到如今具有在高併發下百萬級別訂單的業務系統的。

2023年7月15-16日,archsummit全球架構師峰會將在深圳舉行。本屆大會,我們邀請了美團外賣技術專家曹振團老師,前來分享《美團外賣系統架構演進與系統穩定性經驗談》的內容,講述在美團外賣業務的高速發展中,系統架構各階段面臨的不同挑戰以及對應的解決方案。

現在我們就來採訪曹振團老師,讓老師給大家送乙份充滿乾貨的「外賣」。

曹振團:乙個好的架構是與業務特點及與業務發展階段相結合的、因地制宜且與時俱進的。乙個好的架構既能支撐業務的快速穩定發展,又能留有一定的靈活性和擴充套件性。而好的架構師需要做好三點:

首先需要充分理解業務,只有充分理解業務之後才能使架構不僅能夠很好地支援業務特點,並具有一定的前瞻性。架構師需要站在推進業務發展的角度上合理地改進和優化架構設計,為業務的快速發展做好保障。

其次,架構師要具備良好的溝通和協調能力。架構師往往要面臨著跨組、跨團隊、跨事業部甚至跨事業群的一些技術方案,需要溝通和協調各方的訴求和衝突。

最後要具備持續學習的能力。不僅要學習技術知識的變化,更要學習業界的發展思路、最佳實踐等。

好的架構是實踐出來的,好的架構師也是在實踐中快速成長起來的。新美大內部對架構師的培養非常注重實踐和交流。架構師都在業務一線深入了解業務、需求及技術特性。美團外賣業務在快速發展的過程中踩了很多坑,這也讓我們的架構師更快的成長起來。新美大內部各事業群的casestudy都是共享的,這也是乙個非常好的學習平台,從他人的經驗和總結中學習。另外內部開設有架構專題分享,提供給大家乙個架構實踐的交流和討論的平台。

架構通常是為了解決系統的高併發、高效能、高可用的問題,結合業務特點在研發資源、排期、技術方案之間做平衡。乙個「壞」的架構則破壞了這種平衡,比如:由於工期緊張而引入了乙個自己並不能把控的技術方案,為系統的穩定性埋下了雷。還有乙個簡單的判斷標準是:當採用這個架構後在未來多長時間或幾倍增量下需要調整架構。基本上要求至少在未來的半年到一年內或2倍增量下不需要調整架構。如果架構設計評審不符合這個標準就要及時重新設計或調整。

美團外賣涉及到交易的資訊、支付、履約的各個環節,參與方較多。從使用者支付下單到商家接單,還有騎手配送等環節,這些過程都是動態有互動的,美團外賣對服務化及服務治理設計較多。

曹振團:2023年加入美團時,我們在o2o這個方向上進行了多個創新業務的探索,完全是新的事情,從零開始。在早期最重要的事情就是驗證需求,驗證產品是否能夠滿足使用者的核心需求,是否能夠被使用者接受。這一階段就是快速試錯,通常以mvp的方式快速迭代。我們需要足夠快地找到方向,此時靈活性優先於架構。

加入新美大的早期參與公司內部的創業,在o2o這個領域進行了多個創新業務的探索,最後決定做外賣這個業務。在經歷創新業務後最大的收穫主要講兩點:

創業的早期決定不做什麼往往比決定做什麼更重要。在早期產品技術資源都很緊缺,需要將有限的資源投入到最核心的產品需求上。

天下武功唯快不破。如今的市場瞬息萬變,唯有快速的迭代,方能搶占先機。

創業會給技術帶來大量的挑戰:首先需要是個全面手,前端、後台、資料庫、運維都能夠迅速切入。另外也要有足夠的技術視野和深度,才能夠在技術方案的選擇上游刃有餘,既能快速的選擇合適的方案,又能夠把握其技術原理。

自由發展階段:業務起步的時候,大家公用服務和資料庫表,這樣能夠快速支援產品迭代。產品和技術人員聚焦在快速驗證產品功能上。到底應該有哪些功能,使用者會如何點外賣等?這個階段主要的特點就是集中,所有的功能都集中在幾個專案裡,所有的表都集中在乙個庫中。

故障驅動架構:隨著業務的爆發增長,早期的架構出現了很多的問題,系統頻繁地出現穩定性的問題,共享資料庫表導致業務邏輯散落各地、甚至實現不一致的情況。這時系統穩定性問題倒逼架構進行優化調整,進行了服務化拆分,服務之間全部用介面的方式呼叫。

架構驅動改革:隨著單量的快速增長,系統故障所造成的損失是巨大的、不可接受的。需要從架構驅動技術體系的改進、甚至推進產品和業務的變革。同時增加業務的容災能力,進行了多機房的部署。

曹振團:美團外賣在快速發展的過程中踩了很多坑。比如發版引發的故障,這類問題一般是最多的。發版的新功能可能含有bug,可能含有慢sql,可能沒有正確處理網路異常等。外賣業務還是乙個實時且流程較長的業務,尤其流量比較集中在中午和晚上的飯點,在高峰時段的qps是萬級別的,外賣整個鏈條還會涉及到很多的服務,如果某個依賴服務有問題將會影響到其它服務。例如沒有設定合理的rpc超時時間,如果服務a掛了,會導致依賴該服務的其它服務出現問題,進而引起連鎖反應,最終系統雪崩。

針對這些問題,我們做了關鍵路徑梳理。整個交易流程中梳理出關鍵路徑,非關鍵呼叫非同步化,關鍵路徑做好容錯容災設計,實時監控關鍵路徑的核心指標。整體系統做了比較全面的應急預案,當有緊急情況發生時,力保關鍵路徑不出問題。

至於如何避免掉坑,分享幾點:

防禦式程式設計,不要相信任何人或服務,做好對自身服務的保護和對依賴服務的熔斷。

每次發版都有預案。回滾是解決發版引發故障的最快捷有效的手段。

灰度!灰度!灰度!

完善的監控很重要,需要覆蓋系統效能及業務指標,並對這些指標熟知和敏感。

曹振團: 業務屢創新高及團隊規模的擴大,給技術架構帶來了越來越多的挑戰。如何能夠在大規模作戰的情況下,既能保持業務開發的敏捷性又能保障系統的穩定性,是我們架構中要重點思考的,我們一直在結合著業務發展的節奏,優化和改進技術架構。一方面要與時俱進地支援多品類的業務擴充套件及平台化建設;另一方面,在永恆不變的話題「穩定性」方面,在為能夠支援更高的業務量,持續抽取和優化基礎服務,加強中介軟體的能力,使各服務能夠更聚焦和專注。因此加強基礎設施和強固中介軟體的建設是我們要改進和突破的地方。夯實技術基礎設施和中介軟體,讓研發力量更聚焦在業務開發中。

曹振團:有一種說法是「世界是由懶人驅動的」。由於懶得去換台,發明了遙控器。懶得爬樓梯,發明了電梯。如果你懶得出去吃,我們可以送外賣上門。懶是乙個強需求。

我們在解決這個強需求的過程中,發現了一些有趣的變化:由於出現了這樣的外賣平台,滿足了大家懶的需求,越發使大家變「懶」了,平均點外賣的次數在變多,花樣在變多(大家的口味在變多)。雖然變「懶」了,但是對品質的要求卻在提高。我們通過優化配送鏈條上的服務,使得能夠更及時、快速地為「懶人」提供美食。配送變快了,口感有了更好的保證。這又促使一些之前不提供外賣服務的品牌商家加入到外賣平台上來,使得整個生態更加良性發展。

另外乙個特徵是,「懶人」的需求也是多樣的,「懶人」們希望能夠提供更多的外送選擇,這將會改寫「外賣」的定義,它將會含有更廣闊和豐富的含義,而不只是 「美食外賣」。

曹振團: 主要分享幾點吧:

效能是功能的一部分,穩定是功能的一部分。效能和穩定性需要在開發設計的時候作為產品功能的一部分來考慮,而不是擴充套件屬性。這樣才能在開發、測試、上線、執行中全程把握。

簡單即美。把複雜的事情簡單化,抓住核心脈絡,解決好主要矛盾不見得乙個大而全的海納百川的架構才是好的,相反清晰、明了的架構是我們追求的,簡單可依賴。

使用能夠駕馭的技術。豐富的開源社群給了我們很多的選擇和視角,任何引入的開源技術都應該理解其原理和本質,只有能夠駕馭的技術才能用好。

細節決定成敗。軟體架構是一項複雜和精細的工作,只有把每個細節都做極致了,才能保障架構的基石穩健。

美團外賣上線年度報告「 2021美團外賣年度味道」

程式設計客棧 www.cppcns.com 12月28日 訊息 昨日,美團外賣上線了 2021美團外賣年度味道 使用者可在美團或者美團外賣app搜尋 年度味道 查收年賬單。美團外賣年賬單為使用者總結了今年點外賣的總金額以及訂單數。同時,美團外賣還為使用者歸納出了特殊節日吃了什麼 點餐位址 備註資訊 ...

雷鋒網專訪美人刊CEO袁蘭 女人的美麗觸手可及

1.雷鋒網 簡單地給雷鋒網讀者介紹一下美人刊這個應用吧。袁蘭 呵呵,美人刊是一款時尚購物雜誌應用,目標使用者群是都市時尚女性。但和現在遍地開花的社會化營銷 模式略有不同,我們偏重雜誌般精美的內容發行,精選elle等雜誌和巴黎春天等商場裡的品牌 商品,選這些品牌商在天貓 裡的新品 精品作為雜誌內容。可...

架構小談之美團外賣

美團外賣,大家都很熟悉,與我們的生活已經緊密相連了。今天有機會讀到了關於美團外賣架構的文章。都說打敗速食麵企業的不是另一家速食麵企業,而是先在的網際網路外賣公司,下面,根據自己讀了美團外賣框架介紹,談一談自己的美團外賣框架的一些認識。好的架構源於不停地衍變,而非設計。對於外賣android客戶端的平...