<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          申通快遞雙11云原生應(yīng)用實(shí)踐

          共 5366字,需瀏覽 11分鐘

           ·

          2020-11-28 21:53

          一年一度的 “雙11” 大促中,交易額每年都在刷新,承接這些交易商品的快遞包裹的數(shù)量也在成倍增長。這些快速的增長對(duì)物流系統(tǒng)帶來了巨大的挑戰(zhàn),讓物流管理更加敏捷來應(yīng)對(duì) “雙11” 成為了必須解決的問題。


          申通是目前國內(nèi)最大的物流公司之一,為了解決 “雙11” 的技術(shù)挑戰(zhàn),申通在物流場景引入 IOT、大數(shù)據(jù)和 AI 等先進(jìn)和創(chuàng)建的技術(shù)手段,通過不斷的技術(shù)快速迭代,使得物流資源得到有效的配置,推動(dòng)了物流行業(yè)的發(fā)展。

          快速的技術(shù)迭代帶來了對(duì) IT 基礎(chǔ)設(shè)施的挑戰(zhàn),申通近年來全面將傳統(tǒng)應(yīng)用切換使用云原生架構(gòu),通過云原生架構(gòu)實(shí)現(xiàn)應(yīng)用的快速迭代、穩(wěn)定的高可用、資源的動(dòng)態(tài)擴(kuò)縮容來支撐起快速的技術(shù)創(chuàng)新。

          上云前,申通使用線下機(jī)房作為計(jì)算及數(shù)據(jù)存儲(chǔ)平臺(tái),一到 雙11 資源需求就膨脹,大促之后則閑置浪費(fèi);上云和云原生化后,幾乎全部的資源都是按量購買,使用云原生技術(shù)快速擴(kuò)縮容,雙11 前快速擴(kuò)容,雙11 釋放,真正做到了開箱即用,不產(chǎn)生一天浪費(fèi)。與去年 雙11 當(dāng)天相比,今年 11 月 1 到 3 日,在業(yè)務(wù)量大幅提升的情況下,IT 投入反而降低了 30%。上云的成效顯著。?

          申通云原生化架構(gòu)的背景


          目前申通正在把業(yè)務(wù)從 IDC 機(jī)房往云上搬遷,核心業(yè)務(wù)系統(tǒng)目前已經(jīng)在云上完成流量承接。原有 IDC 系統(tǒng)幫助申通早期業(yè)務(wù)快速發(fā)展,但也暴露了不少問題,傳統(tǒng) IOE 架構(gòu),各系統(tǒng)架構(gòu)的不規(guī)范,穩(wěn)定性,研發(fā)效率等都限制了業(yè)務(wù)發(fā)展需求。

          隨著云計(jì)算在國內(nèi)的越發(fā)成熟,更多的企業(yè)在把自己核心系統(tǒng)往云上搬,享受云計(jì)算帶來的技術(shù)紅利。在跟阿里云多次技術(shù)交流之后最終確定阿里云為唯一合作伙伴,為申通提供穩(wěn)定的計(jì)算、數(shù)據(jù)處理平臺(tái)。

          采用云原生應(yīng)用架構(gòu)的訴求/驅(qū)動(dòng)力


          快遞公司是非常典型的云邊一體架構(gòu),實(shí)操環(huán)節(jié)很重。大量的業(yè)務(wù)邏輯下沉到邊緣,所以申通在上云改造過程中,也在嘗試做云邊一體化的架構(gòu)升級(jí)。通過云邊一體,可以讓開發(fā)在同一個(gè)平臺(tái)上面完成云上業(yè)務(wù)及邊緣側(cè)的業(yè)務(wù)開發(fā)。同時(shí)快遞公司還有典型的大數(shù)據(jù)處理場景,全網(wǎng)每天會(huì)新增幾億條掃描數(shù)據(jù),需要對(duì)這些數(shù)據(jù)進(jìn)行實(shí)時(shí)分析,對(duì)數(shù)據(jù)的處理要求非常高。

          之前使用線下機(jī)房作為計(jì)算及數(shù)據(jù)存儲(chǔ)平臺(tái)的方式,使申通在業(yè)務(wù)增長過程中遇到了一些瓶頸,比如軟件交付周期過長、大促保障對(duì)資源的要求、系統(tǒng)穩(wěn)定性挑戰(zhàn)等等。而云原生技術(shù)就是來解決傳統(tǒng)應(yīng)用升級(jí)緩慢、架構(gòu)臃腫、不能快速迭代等方面的問題。正是看中了云原生技術(shù)能夠給我們帶來的價(jià)值才驅(qū)使我們轉(zhuǎn)為使用公有云作為主要計(jì)算資源。

          站在企業(yè)的角度來看,在這樣一個(gè)快速多變的時(shí)代,云原生給我們帶來的價(jià)值也正是企業(yè)最需要的:

          • 唯快不破。這里的“快”有兩層含義,一是業(yè)務(wù)應(yīng)用快速上線,通過云原生技術(shù)可以做到快速上線部署;二是在業(yè)務(wù)爆發(fā)式增長的時(shí)候,對(duì)資源的需求要做到開箱即用。

          • 穩(wěn)中求變。業(yè)務(wù)穩(wěn)定性永遠(yuǎn)是第一位。通過監(jiān)控埋點(diǎn),業(yè)務(wù)日志收集,鏈路監(jiān)控等手段保證了在快速迭代過程中業(yè)務(wù)系統(tǒng)的穩(wěn)定性。

          • 節(jié)省資源。通過對(duì)計(jì)算資源的水位監(jiān)測,結(jié)合業(yè)務(wù)的峰值情況,當(dāng)發(fā)現(xiàn)資源利用率偏低采用降配規(guī)格及數(shù)量,降低整個(gè)資源的費(fèi)用。相比于一次性投入租建機(jī)房及相應(yīng)的維護(hù)費(fèi)用,使用公有云成本投入更低。

          • 開拓創(chuàng)新。采用微服務(wù)架構(gòu),將之前臃腫的架構(gòu)進(jìn)行合理拆分,再結(jié)合容器編排的能力做到持續(xù)交付。讓企業(yè)成功轉(zhuǎn)型成為一家 DevOps 驅(qū)動(dòng)的公司。


          申通云原生架構(gòu)歷程


          1. 云原生化技術(shù)改造


          原架構(gòu)是基于 Vmware+Oracle 數(shù)據(jù)庫的架構(gòu),通過上阿里云全面轉(zhuǎn)型基于 Kubernetes 的云原生架構(gòu)體系。應(yīng)用服務(wù)架構(gòu)重構(gòu)主要分兩部分:

          1)程序代碼改造升級(jí)


          • 應(yīng)用容器化


          跟虛擬機(jī)比起來,容器能同時(shí)提供效率和速度的提升,讓其更適合微服務(wù)場景。所以我們引入容器技術(shù)。通過應(yīng)用容器化解決了環(huán)境不一致的問題,保證應(yīng)用在開發(fā)、測試、生產(chǎn)環(huán)境的一致性。

          • 微服務(wù)改造


          原先很多業(yè)務(wù)是基于 Oracle 的存儲(chǔ)過程及觸發(fā)器完成的,系統(tǒng)之間的服務(wù)依賴也是走的數(shù)據(jù)庫 OGG 同步完成。帶來的問題就是系統(tǒng)非常難維護(hù),也非常不穩(wěn)定。通過引入 Kubernetes 的服務(wù)發(fā)現(xiàn)來做微服務(wù)方案,按業(yè)務(wù)域進(jìn)行拆分,讓整個(gè)系統(tǒng)更易于維護(hù)。

          2)引入云原生數(shù)據(jù)庫方案


          通過引入 OLTP 跟 OLAP 型數(shù)據(jù)庫,將在線數(shù)據(jù)與離線分析邏輯拆到兩種數(shù)據(jù)庫中,取代之前完全依賴 Oracle。特別是在處理歷史數(shù)據(jù)查詢場景下解決了 Oracle 支持不了的業(yè)務(wù)需求。

          2. 云原生技術(shù)框架設(shè)計(jì)


          整體架構(gòu)


          架構(gòu)闡述:

          • 基礎(chǔ)設(shè)施


          全部的計(jì)算資源取自阿里云的神龍裸金屬服務(wù)器,Kubernetes 搭配神龍服務(wù)器能夠獲得更佳性能及更合理的資源利用率,云上資源可以按量付費(fèi),特別適合大促場景,大促結(jié)束之后資源使用完釋放。相比于線下自建機(jī)房和常備機(jī)器,云上資源操作更方便,管理成本也更低。

          • 流量接入?


          共有 2 套流量接入,一套是面向公網(wǎng)請(qǐng)求,另外一套是服務(wù)內(nèi)部調(diào)用。域名解析采用云 DNS 及 PrivateZone。借助 Kubernetes 的 Ingress 能力來做統(tǒng)一的域名轉(zhuǎn)發(fā),這樣可以節(jié)省公網(wǎng) SLB 的數(shù)量便于運(yùn)維管理。

          3. 平臺(tái)選擇


          整體的云原生 PaaS 平臺(tái)基于阿里云容器服務(wù) Kubernetes 版(ACK)打造:



          平臺(tái)特點(diǎn):

          • 測試、集成、預(yù)發(fā)、生產(chǎn)統(tǒng)一環(huán)境,打通 DevOps 閉環(huán)

          • 天生資源隔離,機(jī)器資源利用率高

          • 流量接入可實(shí)現(xiàn)精細(xì)化管理 ?

          • 集成了日志、鏈路診斷、Metrics 平臺(tái)

          • 統(tǒng)一 APIServer 接口和擴(kuò)展,天生支持多云跟混合云部署


          4. 應(yīng)用服務(wù)層設(shè)計(jì)


          每個(gè)應(yīng)用都在 Kubernetes 上面創(chuàng)建單獨(dú)的一個(gè) NameSpace,應(yīng)用跟應(yīng)用之間是資源隔離。通過定義各個(gè)應(yīng)用的配置 Yaml 模板,當(dāng)應(yīng)用在部署的時(shí)候直接編輯其中的鏡像版本即可快速完成版本升級(jí),當(dāng)需要回滾的時(shí)候直接在本地啟動(dòng)歷史版本的鏡像快速回滾。

          5. 運(yùn)維管理


          線上 Kubernetes 集群都是采用了阿里云托管版容器服務(wù),免去了運(yùn)維 Master 節(jié)點(diǎn)的工作,只需要制定 Worker 節(jié)點(diǎn)上線及下線流程即可。同時(shí)上面跑的業(yè)務(wù)系統(tǒng)均通過我們的 PaaS 平臺(tái)完成業(yè)務(wù)日志搜索,按照業(yè)務(wù)需求投交擴(kuò)容任務(wù),系統(tǒng)自動(dòng)完成擴(kuò)容操作。降低了直接操作 Kubernetes 集群帶來的風(fēng)險(xiǎn)。

          申通云原生應(yīng)用服務(wù)特點(diǎn)


          1. API 接口


          我們的應(yīng)用場景主要有 2 塊:

          • 封裝 Kubernetes 管控 API


          包括創(chuàng)建 StatefulSet、修改資源屬性、創(chuàng)建 Service 資源等等,通過封裝這些管控 API 方便通過一站式的 PaaS 平臺(tái)來管理在線應(yīng)用。

          • 云原生業(yè)務(wù)系統(tǒng)


          我們?cè)粕系臉I(yè)務(wù)系統(tǒng)封裝了各類云資源的 API,比如:封裝 SLS 的 API、將在線數(shù)據(jù)寫入 SLS 再跟 Maxcompute 或 Flink 集成。封裝 OSS 的 API,方便在應(yīng)用程序中將文件上傳。

          2. 應(yīng)用和數(shù)據(jù)遷移


          我們?cè)粕系臉I(yè)務(wù)系統(tǒng)及業(yè)務(wù)中間件都是通過鏡像的方式部署,應(yīng)用的服務(wù)通過 Service 發(fā)現(xiàn),全部在線應(yīng)用對(duì)應(yīng)的 Pod 及 Service 配置均保存 PaaS 平臺(tái)里面,每個(gè)應(yīng)用歷史版本對(duì)應(yīng)的鏡像版本都保存到系統(tǒng)中,可以基于這份配置快速構(gòu)建一套業(yè)務(wù)生產(chǎn)環(huán)境。
          ?
          數(shù)據(jù)遷移示意圖:



          通過 DTS 工具將業(yè)務(wù)系統(tǒng)的數(shù)據(jù)從 IDC 存儲(chǔ)及增量遷移到云上。在線數(shù)據(jù)穩(wěn)定地存儲(chǔ)在云原生的數(shù)據(jù)庫上面,如 OLTP 類型的 RDS、PolarDB 支撐高并發(fā)的實(shí)時(shí)處理,OLAP 類型的 ADB 支持海量數(shù)據(jù)分析。同時(shí)對(duì)于小文件存儲(chǔ)保存在 OSS 上面。引入 NAS 做共享存儲(chǔ)介質(zhì),通過 Volume 直接掛載到神龍節(jié)點(diǎn)來實(shí)現(xiàn)應(yīng)用數(shù)據(jù)共享。

          3. 服務(wù)集成


          以云原生 PaaS 示意:



          服務(wù)集成闡述


          持續(xù)集成通過 Git 做版本控制,利用云效的持續(xù)集成功能實(shí)現(xiàn)了云原生應(yīng)用的構(gòu)建、編譯及鏡像上傳,全部的業(yè)務(wù)鏡像均保存在云端的鏡像服務(wù)倉庫。底層是 Kubernetes 集群作為整個(gè)業(yè)務(wù)的計(jì)算資源。其他集成的服務(wù)包括:

          • 日志服務(wù),通過集成日志服務(wù)方便研發(fā)人員方便定位業(yè)務(wù)及異常日志。

          • 云監(jiān)控,通過集成監(jiān)控能力,方便運(yùn)維研發(fā)人員快速發(fā)現(xiàn)故障。

          • 服務(wù)接入,通過集成統(tǒng)一的接入,整個(gè)應(yīng)用流量可做到精細(xì)化管理。

          • 彈性伸縮,借助 ESS 的能力對(duì)資源進(jìn)行動(dòng)態(tài)編排,結(jié)合業(yè)務(wù)高低峰值做到資源利用率最大化。


          4. 服務(wù)高可用


          ACK 集群多層級(jí)高可用示意圖


          架構(gòu)說明:

          • 支持多可用區(qū)部署架構(gòu),由用戶自定義分配比例

          • 容器集群內(nèi)故障遷移

          • AZ 故障整體容器遷移


          Kubernetes集群通過控制應(yīng)用的副本數(shù)來保證集群的高可用。當(dāng)某個(gè) Pod 節(jié)點(diǎn)出現(xiàn)當(dāng)機(jī)故障時(shí),通過副本數(shù)的保持可以快速在其他 worker 節(jié)點(diǎn)上再啟新的 Pod。

          5. 監(jiān)控


          主動(dòng)發(fā)現(xiàn)業(yè)務(wù)故障,通過引入監(jiān)控體系主動(dòng)發(fā)現(xiàn)業(yè)務(wù)問題,快速解決故障。

          監(jiān)控采集示意圖


          在同一個(gè) POD 里面部署了兩個(gè)容器:一個(gè)是業(yè)務(wù)容器;一個(gè)是 Logtail 容器。應(yīng)用只需要按照運(yùn)維定的目錄將業(yè)務(wù)日志打進(jìn)去,即可完成監(jiān)控?cái)?shù)據(jù)采集。

          技術(shù)/應(yīng)用服務(wù)創(chuàng)新點(diǎn)


          1. 從虛擬機(jī)到 Kubernetes


          相比于通過虛擬機(jī)來運(yùn)維應(yīng)用,Kubernetes 可以將各類資源定義成描述文件,整個(gè)應(yīng)用環(huán)境通過容器的方式統(tǒng)一,避免環(huán)境不一致的風(fēng)險(xiǎn)。通過修改副本數(shù)即可輕松完成應(yīng)用容器的擴(kuò)縮容操作。

          2. 基于 Terway 讓 Pod 和?ECS 網(wǎng)絡(luò)處于同等地位


          優(yōu)勢:

          • 不依賴 VPC 路由表,就能打通網(wǎng)絡(luò),節(jié)點(diǎn)規(guī)模不受路由表 Quota 限制

          • 不需要額外為 Pod 規(guī)劃 Overlay 的網(wǎng)段

          • 混合云專線打通也無需額外配置路由

          • 可以直接將 POD 掛到 SLB 后端

          • 性能高,相比于社區(qū)的 Flannel 提升至少 20%


          3. 定義三套接入環(huán)境及三套業(yè)務(wù)環(huán)境


          架構(gòu)示意圖


          1)三套接入環(huán)境


          • 公網(wǎng)接入:適合于跟外部客戶對(duì)接,通過統(tǒng)一的證書卸載,收斂公網(wǎng) IP
          • 辦公網(wǎng)接入:適合于有敏感接口的對(duì)接,只允許指定源 IP 的請(qǐng)求,通過網(wǎng)絡(luò) ACL 讓整個(gè)應(yīng)用訪問更安全。
          • 內(nèi)網(wǎng)接入:適合于業(yè)務(wù)之間及混合云架構(gòu)下 IDC 的業(yè)務(wù)調(diào)用云上應(yīng)用,內(nèi)部調(diào)用性能更高也更安全。

          2)三套業(yè)務(wù)環(huán)境


          • 測試環(huán)境:全部的云資源都是給測試環(huán)境使用,可以采用低配資源來滿足功能回歸測試。
          • 預(yù)發(fā)環(huán)境:準(zhǔn)上線環(huán)境,連接生產(chǎn)環(huán)境的資源進(jìn)行發(fā)布前最后一次功能驗(yàn)證。
          • 生產(chǎn)環(huán)境:實(shí)際運(yùn)行環(huán)境,接收真實(shí)流量處理業(yè)務(wù)請(qǐng)求。
          ?

          應(yīng)用效益


          1. 成本方面


          使用公有云作為計(jì)算平臺(tái),可以讓企業(yè)不必因?yàn)闃I(yè)務(wù)突發(fā)增長的需求,而一次性投入大量資金成本用于采購服務(wù)器及擴(kuò)充機(jī)柜。在公共云上可以做到隨用隨付,對(duì)于一些創(chuàng)新業(yè)務(wù)想做技術(shù)調(diào)研是非常方便。用完即銷毀,按量付費(fèi)。另外云產(chǎn)品都是免運(yùn)維自行托管在云端,可以節(jié)省人工運(yùn)維成本,讓企業(yè)更專注于做核心業(yè)務(wù)。

          2. 穩(wěn)定性方面


          云上產(chǎn)品都是提供至少 5 個(gè) 9 以上的 SLA 服務(wù),而自建的話穩(wěn)定性差不少。另外有些開源的軟件可能還存在部分功能上的 bug 影響了業(yè)務(wù)。另外在數(shù)據(jù)安全方面云上數(shù)據(jù)可以做到異地備份,阿里云數(shù)據(jù)類產(chǎn)品的歸檔高可靠、低成本、安全性、存儲(chǔ)無限等特點(diǎn),讓企業(yè)數(shù)據(jù)更安全。

          3. 效率方面


          借助跟云產(chǎn)品的深度集成,方便研發(fā)一站式完成研發(fā)、運(yùn)維工作。從業(yè)務(wù)需求立項(xiàng)到拉分支開發(fā),再到測試環(huán)境功能回歸驗(yàn)證,再部署到預(yù)發(fā)驗(yàn)證及最后上線,整個(gè)持續(xù)集成可以做到分鐘級(jí)。排查問題方面,研發(fā)直接選擇所負(fù)責(zé)的應(yīng)用通過集成的 SLS 日志控制臺(tái)快速檢索程序的異常日志,定位問題。免去了登錄機(jī)器查日志的麻煩。
          賦能業(yè)務(wù):

          4. 賦能業(yè)務(wù)


          云上組件有 300 多種,涵蓋了計(jì)算、AI、大數(shù)據(jù)、IOT 等等諸多領(lǐng)域,這樣可以節(jié)省業(yè)務(wù)創(chuàng)新帶來的技術(shù)成本。

          總結(jié)和后續(xù)展望


          目前申通已經(jīng)使用云原生技術(shù)快速的將基礎(chǔ)設(shè)施遷移到云上,使用云原生技術(shù)解決了雙十一成本預(yù)算問題,服務(wù)監(jiān)控問題,服務(wù)接入和負(fù)載均衡等問題,讓 雙11 的快遞高峰能夠更低成本、更穩(wěn)的方式應(yīng)對(duì)。

          對(duì)于類似于申通這樣的傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型和上云來說,使用云原生技術(shù)內(nèi)置的彈性、監(jiān)控、負(fù)載均衡和服務(wù)發(fā)現(xiàn)等能力,可以大幅降低企業(yè)研發(fā)和運(yùn)維人員的遷云的成本,讓企業(yè)的研發(fā)和運(yùn)維人員只需要關(guān)心業(yè)務(wù)研發(fā)和遷移,而無需管理大量的基礎(chǔ)設(shè)施遷移成本。可以說是企業(yè)上云的最佳路徑。

          將來申通還在持續(xù)的利用最新的云原生技術(shù)繼續(xù)優(yōu)化基礎(chǔ)設(shè)施和業(yè)務(wù)系統(tǒng),下一步將會(huì)結(jié)合云原生技術(shù)進(jìn)一步的降低成本和提升業(yè)務(wù)穩(wěn)定性:

          1. 實(shí)時(shí)的彈性調(diào)度


          申通的快遞業(yè)務(wù)是非常典型周期性業(yè)務(wù),使用云原生技術(shù)的實(shí)時(shí)的彈性調(diào)度能力可以讓每天的業(yè)務(wù)高低峰都能自動(dòng)彈性伸縮。可能再節(jié)省一大筆的資源成本。

          2.?智能運(yùn)維和安全生產(chǎn)


          結(jié)合云原生的細(xì)粒度的監(jiān)控能力,結(jié)合 AIOPS 技術(shù),對(duì)系統(tǒng)和業(yè)務(wù)的指標(biāo)做到自動(dòng)分析診斷,從而讓異常事件做到及時(shí)發(fā)現(xiàn)和處理。

          3. 服務(wù)網(wǎng)格


          引入服務(wù)網(wǎng)格來優(yōu)化目前的微服務(wù)架構(gòu),統(tǒng)一微服務(wù)調(diào)用的協(xié)議,實(shí)現(xiàn)全鏈路追蹤和監(jiān)控,提升研發(fā)和運(yùn)維的效率。


          ?點(diǎn)擊屏末?|??|?即刻學(xué)習(xí)

          瀏覽 39
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一区二区性爱视频 | 俺也色色| 免费在线亚洲 | 四虎无码影院 | 男人操女人视频网站 |