申通快遞 雙11 雲原生應用實踐

2022-06-06 15:51:10 字數 4215 閱讀 1915

作者 | 溪恆、遙方

一年一度的 「雙11」 大促中,交易額每年都在重新整理,承接這些交易商品的快遞包裹的數量也在成倍增長。這些快速的增長對物流系統帶來了巨大的挑戰,讓物流管理更加敏捷來應對 「雙11」 成為了必須解決的問題。

申通是目前國內最大的物流公司之一,為了解決 「雙11」 的技術挑戰,申通在物流場景引入 iot、大資料和 ai 等先進和建立的技術手段,通過不斷的技術快速迭代,使得物流資源得到有效的配置,推動了物流行業的發展。

快速的技術迭代帶來了對 it 基礎設施的挑戰,申通近年來全面將傳統應用切換使用雲原生架構,通過雲原生架構實現應用的快速迭代、穩定的高可用、資源的動態擴縮容來支撐起快速的技術創新。

上雲前,申通使用線下機房作為計算及資料儲存平台,一到 雙11 資源需求就膨脹,大促之後則閒置浪費;上雲和云原生化後,幾乎全部的資源都是按量購買,使用雲原生技術快速擴縮容,雙11 前快速擴容,雙11 釋放,真正做到了開箱即用,不產生一天浪費。與去年 雙11 當天相比,今年 11 月 1 到 3 日,在業務量大幅提公升的情況下,it 投入反而降低了 30%。上雲的成效顯著。

目前申通正在把業務從 idc 機房往雲上搬遷,核心業務系統目前已經在雲上完成流量承接。原有 idc 系統幫助申通早期業務快速發展,但也暴露了不少問題,傳統 ioe 架構,各系統架構的不規範,穩定性,研發效率等都限制了業務發展需求。

隨著雲計算在國內的越發成熟,更多的企業在把自己核心系統往雲上搬,享受雲計算帶來的技術紅利。在跟阿里雲多次技術交流之後最終確定阿里雲為唯一合作夥伴,為申通提供穩定的計算、資料處理平台。

快遞公司是非常典型的雲邊一體架構,實操環節很重。大量的業務邏輯下沉到邊緣,所以申通在上雲改造過程中,也在嘗試做雲邊一體化的架構公升級。通過雲邊一體,可以讓開發在同乙個平台上面完成雲上業務及邊緣側的業務開發。同時快遞公司還有典型的大資料處理場景,全網每天會新增幾億條掃瞄資料,需要對這些資料進行實時分析,對資料的處理要求非常高。

之前使用線下機房作為計算及資料儲存平台的方式,使申通在業務增長過程中遇到了一些瓶頸,比如軟體交付週期過長、大促保障對資源的要求、系統穩定性挑戰等等。而雲原生技術就是來解決傳統應用公升級緩慢、架構臃腫、不能快速迭代等方面的問題。正是看中了雲原生技術能夠給我們帶來的價值才驅使我們轉為使用公有雲作為主要計算資源。

站在企業的角度來看,在這樣乙個快速多變的時代,雲原生給我們帶來的價值也正是企業最需要的:

原架構是基於 vmware+oracle 資料庫的架構,通過上阿里雲全面轉型基於 kubernetes 的雲原生架構體系。應用服務架構重構主要分兩部分:

跟虛擬機器比起來,容器能同時提供效率和速度的提公升,讓其更適合微服務場景。所以我們引入容器技術。通過應用容器化解決了環境不一致的問題,保證應用在開發、測試、生產環境的一致性。

原先很多業務是基於 oracle 的儲存過程及觸發器完成的,系統之間的服務依賴也是走的資料庫 ogg 同步完成。帶來的問題就是系統非常難維護,也非常不穩定。通過引入 kubernetes 的服務發現來做微服務方案,按業務域進行拆分,讓整個系統更易於維護。

整體架構

架構闡述:

全部的計算資源取自阿里雲的神龍裸金屬伺服器,kubernetes 搭配神龍伺服器能夠獲得更佳效能及更合理的資源利用率,雲上資源可以按量付費,特別適合大促場景,大促結束之後資源使用完釋放。相比於線下自建機房和常備機器,雲上資源操作更方便,管理成本也更低。

共有 2 套流量接入,一套是面向公網請求,另外一套是服務內部呼叫。網域名稱解析採用雲 dns 及 privatezone。借助 kubernetes 的 ingress 能力來做統一的網域名稱**,這樣可以節省公網 slb 的數量便於運維管理。

整體的雲原生 paas 平台基於阿里雲容器服務 kubernetes 版(ack)打造:

平台特點:

每個應用都在 kubernetes 上面建立單獨的乙個 namespace,應用跟應用之間是資源隔離。通過定義各個應用的配置 yaml 模板,當應用在部署的時候直接編輯其中的映象版本即可快速完成版本公升級,當需要回滾的時候直接在本地啟動歷史版本的映象快速回滾。

線上 kubernetes 集群都是採用了阿里雲託管版容器服務,免去了運維 master 節點的工作,只需要制定 worker 節點上線及下線流程即可。同時上面跑的業務系統均通過我們的 paas 平台完成業務日誌搜尋,按照業務需求投交擴容任務,系統自動完成擴容操作。降低了直接操作 kubernetes 集群帶來的風險。

我們的應用場景主要有 2 塊:

資料遷移示意圖:

以雲原生 paas 示意:

持續整合通過 git 做版本控制,利用雲效的持續整合功能實現了雲原生應用的構建、編譯及映象上傳,全部的業務映象均儲存在雲端的映象服務倉庫。底層是 kubernetes 集群作為整個業務的計算資源。其他整合的服務包括:

ack 集群多層級高可用示意圖

架構說明:

kubernetes集群通過控制應用的副本數來保證集群的高可用。當某個 pod 節點出現當機故障時,通過副本數的保持可以快速在其他 worker 節點上再啟新的 pod。

主動發現業務故障,通過引入監控體系主動發現業務問題,快速解決故障。

監控採集示意圖

在同乙個 pod 裡面部署了兩個容器:乙個是業務容器;乙個是 logtail 容器。應用只需要按照運維定的目錄將業務日誌打進去,即可完成監控資料採集。

相比於通過虛擬機器來運維應用,kubernetes 可以將各類資源定義成描述檔案,整個應用環境通過容器的方式統一,避免環境不一致的風險。通過修改副本數即可輕鬆完成應用容器的擴縮容操作。

優勢:

架構示意圖

使用公有雲作為計算平台,可以讓企業不必因為業務突發增長的需求,而一次性投入大量資金成本用於採購伺服器及擴充機櫃。在公共雲上可以做到隨用隨付,對於一些創新業務想做技術調研是非常方便。用完即銷毀,按量付費。另外雲產品都是免運維自行託管在雲端,可以節省人工運維成本,讓企業更專注於做核心業務。

雲上產品都是提供至少 5 個 9 以上的 sla 服務,而自建的話穩定性差不少。另外有些開源的軟體可能還存在部分功能上的 bug 影響了業務。另外在資料安全方面雲上資料可以做到異地備份,阿里雲資料類產品的歸檔高可靠、低成本、安全性、儲存無限等特點,讓企業資料更安全。

借助跟雲產品的深度整合,方便研發一站式完成研發、運維工作。從業務需求立項到拉分支開發,再到測試環境功能回歸驗證,再部署到預發驗證及最後上線,整個持續整合可以做到分鐘級。排查問題方面,研發直接選擇所負責的應用通過整合的 sls 日誌控制台快速檢索程式的異常日誌,定位問題。免去了登入機器查日誌的麻煩。賦能業務:

雲上元件有 300 多種,涵蓋了計算、ai、大資料、iot 等等諸多領域,這樣可以節省業務創新帶來的技術成本。

目前申通已經使用雲原生技術快速的將基礎設施遷移到雲上,使用雲原生技術解決了雙十一成本預算問題,服務監控問題,服務接入和負載均衡等問題,讓 雙11 的快遞高峰能夠更低成本、更穩的方式應對。

對於類似於申通這樣的傳統企業數位化轉型和上雲來說,使用雲原生技術內建的彈性、監控、負載均衡和服務發現等能力,可以大幅降低企業研發和運維人員的遷雲的成本,讓企業的研發和運維人員只需要關心業務研發和遷移,而無需管理大量的基礎設施遷移成本。可以說是企業上雲的最佳路徑。

申通的快遞業務是非常典型週期性業務,使用雲原生技術的實時的彈性排程能力可以讓每天的業務高低峰都能自動彈性伸縮。可能再節省一大筆的資源成本。

結合雲原生的細粒度的監控能力,結合 aiops 技術,對系統和業務的指標做到自動分析診斷,從而讓異常事件做到及時發現和處理。

引入服務網格來優化目前的微服務架構,統一微服務呼叫的協議,實現全鏈路追蹤和監控,提公升研發和運維的效率。

申通完美支撐「雙11」 億級包裹背後的雲基礎設施

今年雙11,申通的系統前所未有的流暢與平穩 雙11全站跑在阿里雲上,億級包裹洪峰過境,千萬級訂單毫秒級響應,系統穩如泰山。申通上雲的技術負責人方遙難掩驕傲地說。11月1日凌晨第一波訂單高峰到來,整個系統的響應很快,面對超過日常數倍的接單量,系統的響應時間沒有變化 在接單 自動化分揀 巴槍掃瞄 快件跟...

申通完美支撐「雙11」 億級包裹背後的雲基礎設施

簡介 億級包裹洪峰過境,千萬級訂單毫秒級響應,系統穩如泰山。今年雙11,申通的系統前所未有的流暢與平穩。今年雙11,申通的系統前所未有的流暢與平穩 雙11全站跑在阿里雲上,億級包裹洪峰過境,千萬級訂單毫秒級響應,系統穩如泰山。申通上雲的技術負責人方遙難掩驕傲地說。11月1日凌晨第一波訂單高峰到來,整...

中通打響雙11快遞漲價頭炮 快件增多

中通打響今年雙11快遞漲價的頭炮。10月11日,澎湃新聞 www.the cn 記者從中通快遞方面了解到,中通快遞發布 關於旺季高峰應對預案的告客戶書 告客戶書 中稱,為了確保旺季期間快遞服務安全 平穩,保持服務質量和客戶滿意度,應對旺季場地 運輸 用工等費用的 中通快遞將從2019年11月11日起...