您當(dāng)前的位置是:  首頁 > 資訊 > 國內(nèi) >
 首頁 > 資訊 > 國內(nèi) >

申通的云原生實踐之路:如何實現(xiàn)應(yīng)用基于容器的微服務(wù)改造?

2020-08-13 10:59:00   作者:   來源:CTI論壇   評論:0  點擊:


  隨著云計算的普及與云原生的廣泛應(yīng)用,越來越多的從業(yè)者、決策者清晰地認(rèn)識到「云原生化將成為 企業(yè)技術(shù)創(chuàng)新的關(guān)鍵要素,也是完成企業(yè)數(shù)字化轉(zhuǎn)型的最短路徑」。
  因此,具有前瞻思維的互聯(lián)網(wǎng)企業(yè)從應(yīng)用誕生之初就扎根于云端,謹(jǐn)慎穩(wěn)重的新零售、政府、金融、醫(yī)療等領(lǐng)域的企業(yè)與機構(gòu)也逐漸將業(yè)務(wù)應(yīng)用遷移上云,深度使用云原生技術(shù)與云原生架構(gòu)。面對架構(gòu)設(shè)計、開發(fā)方式到部署運維等不同業(yè)務(wù)場景,基于云原生架構(gòu)的應(yīng)用通常針對云的技術(shù)特性進行技術(shù)生命周期設(shè)計,最大限度利用云平臺的彈性、分布式、自助、按需等產(chǎn)品優(yōu)勢。
  作為發(fā)展最為迅猛的物流企業(yè)之一,申通快遞一直積極探索技術(shù)創(chuàng)新賦能商業(yè)增長之路,以期達到降本提效目的。目前,申通快遞日訂單處理量已達千萬量級,億級別物流軌跡處理量,每天產(chǎn)生數(shù)據(jù)已達到 TB 級別,使用 1300+ 個計算節(jié)點來實時處理業(yè)務(wù)。
  當(dāng)業(yè)務(wù)飛速發(fā)展遭遇運維瓶頸
  過往申通快遞的核心業(yè)務(wù)應(yīng)用運行在 IDC 機房,原有 IDC 系統(tǒng)幫助申通安穩(wěn)度過早期業(yè)務(wù)快速發(fā)展期。但伴隨著業(yè)務(wù)體量指數(shù)級增長,業(yè)務(wù)形式愈發(fā)多元化。原有系統(tǒng)暴露出不少問題,傳統(tǒng) IOE 架構(gòu)、各系統(tǒng)架構(gòu)的不規(guī)范、 穩(wěn)定性、研發(fā)效率都限制了業(yè)務(wù)高速發(fā)展的可能。軟件交付周期過長,大促保障對資源的特殊要求難實現(xiàn)、系統(tǒng)穩(wěn)定性難以保障等業(yè)務(wù)問題逐漸暴露。
  在與阿里云進行多次需求溝通與技術(shù)驗證后,申通最終確定阿里云為唯一合作伙伴,采用云原生技術(shù)和架構(gòu)實現(xiàn)核心業(yè)務(wù)搬遷上阿里云。2019 年開始將業(yè)務(wù)逐步從 IDC 遷移至阿里云。目前,核心業(yè)務(wù)系統(tǒng)已經(jīng)在阿里云上完成流量承接,為申通提供穩(wěn)定而高效的計算能力。
  全面改造云原生升級,助力業(yè)務(wù)發(fā)展
  申通核心業(yè)務(wù)系統(tǒng)原架構(gòu)基于 Vmware+Oracle 數(shù)據(jù)庫進行搭建。隨著搬遷上阿里云,架構(gòu)全面轉(zhuǎn)型為基于 Kubernetes 的云原生架構(gòu)體系。其中,引入云原生數(shù)據(jù)庫并完成應(yīng)用基于容器的微服務(wù)改造是整個應(yīng)用服務(wù)架構(gòu)重構(gòu)的關(guān)鍵點。
  引入云原生數(shù)據(jù)庫
  通過引入 OLTP 跟 OLAP 型數(shù)據(jù)庫,將在線數(shù)據(jù)與離線分析邏輯拆分到兩種數(shù)據(jù)庫中,改變此前完全依賴 Oracle 數(shù)據(jù)庫的現(xiàn)狀。滿足在處理歷史數(shù)據(jù)查詢場景下 Oracle 數(shù)據(jù)庫所無法支持的實際業(yè)務(wù)需求。
  應(yīng)用容器化
  伴隨著容器化技術(shù)的引進,通過應(yīng)用容器化有效解決了環(huán)境不一致的問題,確保應(yīng)用在開發(fā)、測試、生產(chǎn)環(huán) 境的一致性。與虛擬機相比,容器化提供了效率與速度的雙重提升,讓應(yīng)用更適合微服務(wù)場景,有效提升產(chǎn)研效率。
  微服務(wù)改造
  由于過往很多業(yè)務(wù)是基于 Oracle 的存儲過程及觸發(fā)器完成的,系統(tǒng)間的服務(wù)依賴也需要 Oracle 數(shù)據(jù)庫 OGG 同步完成。這樣帶來的問題就是系統(tǒng)維護難度高且穩(wěn)定性差。通過引入 Kubernetes 的服務(wù)發(fā)現(xiàn),組建微服務(wù)解決方案,將業(yè)務(wù)按業(yè)務(wù)域進行拆分,讓整個系統(tǒng)更易于維護。
  綜合考慮申通實際業(yè)務(wù)需求與技術(shù)特征,最終選擇了「阿里云 ACK+ 神龍 + 云數(shù)據(jù)庫」的云原生解決方案,從而實現(xiàn)核心應(yīng)用遷移上阿里云。
 
  1. 架構(gòu)闡述
  基礎(chǔ)設(shè)施,全部計算資源取自阿里云的神龍裸金屬服務(wù)器。相較于一般云服務(wù)器(ECS),Kubernetes 搭配神龍服務(wù)器能夠獲得更優(yōu)性能及更合理的資源利用率且云上資源按需取量,對于擁有大促活動等短期大流量業(yè)務(wù)場景的申通而言極為重要。相較于線下自建機房、常備機器,云上資源隨取隨用。在大促活動結(jié)束后,云上資源使用完畢后即可釋放,管理與采購成本更低,相應(yīng)效率。
  流量接入,阿里云提供兩套流量接入,一套是面向公網(wǎng)請求,另外一套是服務(wù)內(nèi)部調(diào)用。域名解析采用云 DNS 及 PrivateZone。借助 Kubernetes 的 Ingress 能力實現(xiàn)統(tǒng)一的域名轉(zhuǎn)發(fā),以節(jié)省公網(wǎng) SLB 的數(shù)量,提高運維管理效率。
  2. 平臺層
  基于 Kubernetes 打造的云原生 PaaS 平臺優(yōu)勢明顯突出。
  打通 DevOps 閉環(huán),統(tǒng)一測試,集成,預(yù)發(fā)、生產(chǎn)環(huán)境; 天生資源隔離,機器資源利用率高; 流量接入可實現(xiàn)精細化管理; 集成了日志、鏈路診斷、Metrics 平臺;
  統(tǒng)一 ApiServer 接口和擴展,天生支持多云跟混合云部署。
  3. 應(yīng)用服務(wù)層
  每個應(yīng)用都在 Kubernetes 上面創(chuàng)建單獨的一個 Namespace,應(yīng)用跟應(yīng)用之間實現(xiàn)資源隔離。通過定義各個 應(yīng)用的配置 Yaml 模板,當(dāng)應(yīng)用在部署時直接編輯其中的鏡像版本即可快速完成版本升級,當(dāng)需要回滾時直接在本地啟動歷史版本的鏡像快速回滾。
  4. 運維管理
  線上 Kubernetes 集群采用阿里云托管版容器服務(wù),免去了運維 Master 節(jié)點的工作,只需要制定 Worker 節(jié)點上線及下線流程即可。同時業(yè)務(wù)系統(tǒng)均通過阿里云的 PaaS 平臺完成業(yè)務(wù)日志搜索,按照業(yè)務(wù)需求投交擴容任務(wù),系統(tǒng)自動完成擴容操作,降低了直接操作 Kubernetes 集群帶來的業(yè)務(wù)風(fēng)險。
  全面釋放云原生技術(shù)紅利
  • 成本方面:使用公有云作為計算平臺,可以讓企業(yè)不必因為業(yè)務(wù)突發(fā)增長需求,而一次性投入大量資金成本用于采購服務(wù)器及擴充機柜。在公共云上可以做到隨用隨付,對于一些創(chuàng)新業(yè)務(wù)想做技術(shù)調(diào)研十分便捷。用完即釋放, 按量付費。另外云產(chǎn)品都免運維自行托管在云端,有效節(jié)省人工運維成本,讓企業(yè)更專注于核心業(yè)務(wù)。
  • 穩(wěn)定性方面:首先,云上產(chǎn)品提供至少 5 個 9 以上的 SLA 服務(wù)確保系統(tǒng)穩(wěn)定,而自建系統(tǒng)穩(wěn)定性相去甚遠。其次,部分開源軟件可能存在功能 bug,造成故障隱患。最后,在數(shù)據(jù)安全方面云上數(shù)據(jù)可以輕松實現(xiàn)異地備份,阿里云數(shù)據(jù)存儲體系下的歸檔存儲產(chǎn)品具備高可靠、低成本、安全性、存儲無限等特點,讓企業(yè)數(shù)據(jù)更安全。
  • 效率方面:借助與云產(chǎn)品深度集成,研發(fā)人員可以完成一站式研發(fā)、運維工作。從業(yè)務(wù)需求立項到拉取分支開發(fā), 再到測試環(huán)境功能回歸驗證,最終部署到預(yù)發(fā)驗證及上線,整個持續(xù)集成流程耗時可縮短至分鐘級。排查問題方面,研發(fā)人員直接選擇所負(fù)責(zé)的應(yīng)用,并通過集成的 SLS 日志控制臺快速檢索程序的異常日志進行問題定位,免去了登錄機器查日志的麻煩。
  • 賦能業(yè)務(wù):阿里云提供超過 300 余種的云上組件,組件涵蓋計算、AI、大數(shù)據(jù)、IOT 等等諸多領(lǐng)域。研發(fā)人員開箱即用,有效節(jié)省業(yè)務(wù)創(chuàng)新帶來的技術(shù)成本。來源:阿里云云棲號

【免責(zé)聲明】本文僅代表作者本人觀點,與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。

專題

CTI論壇會員企業(yè)