?

金融級云原生容器云建設研究

2022-11-20 15:43陳菲琪黃進王景斌
計算機應用文摘·觸控 2022年19期
關鍵詞:編排容器

陳菲琪 黃進 王景斌

摘要:在數字時代蓬勃發展下,亟須一種更加快速、敏捷的基礎設施解決方案,以支撐頂層的數字經濟。Kubernetes是一種開源管理云平臺中多個主機上的容器化應用,是分布式集群管理系統和私有云、公有云的事實標準。江蘇蘇寧銀行按照務實、高效、架構先行等原則,以Kubernetes為容器編排器,構建新一代的容器云平臺,首先探索并解決資源使用效率問題,其次利用Kubernetes的容器編排、彈性伸縮、容器漂移和故障自愈能力,簡化應用部署方式、周期及難度。未來將利用容器快速彈性伸縮能力及云原生技術自動化能力,不斷提升運維效率和保障能力。

關鍵詞:云原生;容器;編排;彈性伸縮

中圖法分類號:TP393文獻標識碼:A

Research on construction of financial-grade cloud-native container cloud

-Taking Jiangsu Suning Bank as an example

CHEN Feiqi,HUANGJin,WANGJingbin

(Jiangsu Suning Bank Co.,Ltd,Nanjing 210019,China)

Abstract:With the vigorous development of the digital age,a faster and more agile infrastructure solution is urgently needed to support the top-level digital economy.Kubernetes is an open source management cloud platform for containerized applications on multiple hosts.It is the de facto standard for distributed cluster management systems and private and public clouds.Jiangsu Suning Bank follows the principles of pragmatism,efficiency,and architecture first,and uses Kubernetes as the container orchestrator to build a new generation of container cloud platform.First,it explores and solves the problem of resource utilization efficiency, and then uses Kubernetes' container orchestration, elastic scaling, container drift. The fault self-healing capability simplifies the application deployment method,cycle and difficulty.In the future,the rapid elastic scaling capabilities of containers and the automation capabilities of cloud-native technologies will be used to continuously improve operation and maintenance efficiency and guarantee capabilities.

Key words: cloud primitiveness, containers, arrangement, elastic expansion

1 引言

在銀行業科技金融的創新過程中,計算的根基以及應用開發與運營的方式都發生了翻天覆地的變化,需要操作系統、平臺軟件、容器和云原生等方面做出適配性改造,以適應快速、敏捷、迭代開發的文化和流程等。特別是隨著數據要素成為一種新的生產資料,對現有的金融基礎設施提出了更高的要求,需要一種更加靈活便捷的基礎設施解決方案,以為頂層的數字銀行建設打好基礎[1]。數字化基建作為數字銀行建設基礎,云平臺是數字化基建的關鍵,需夯實底層云架構后才能更高效和更穩定地進行數字銀行轉型。通過數字化,連通客戶社交生態、連接內部經營要素;構建數字化智能,打造數字化轉型的新引擎,管理數據資產;培育數字化轉型的新源泉,打造數字為先的企業文化,培養復合型、知識型和創新型數字化人才,打造專業的數據分析師人才隊伍;夯實數字化基建,打造數字化轉型的新底座,構建適應業務發展的共享能力平臺,采用敏捷迭代的微服務架構。

容器解決了應用發布的標準問題,是用于輕松部署和隔離應用的關鍵技術之一。通過命名空間提供輕便、有效的應用隔離,并將其運行所需的所有組件打包在一起,有效避免了依賴底層宿主機操作系統關鍵組件的應用程序之間可能的沖突。使用容器技術可以實現“一次構建,到處運行”效果;可以確保版本在不同環境中實現一致性,從而方便了應用的移植,消除了各種難以修復的沖突。容器中運行的所有服務,隔離運行在物理服務器(或者虛擬機)上的共用操作系統中。實踐表明,容器消耗極少的系統資源(如內存),基本上不會對應用性能產生影響。

Kubernetes 是一種開源的管理云平臺中多個主機上的容器化應用,是一個分布式操作系統,是當前分布式集群管理系統的事實標準。憑借優秀的開放性、可擴展性以及活躍開發者社區,其在容器編排之戰中脫穎而出,目前已經被廣泛用于各行各業的容器自動部署、擴展和管理。Kubernetes 屏蔽了 IaaS 層基礎架構的差異并憑借優良的可移植性,幫助應用一致地運行在包括數據中心、云、邊緣計算等在內的不同環境。通過 Kubernetes 結合自身業務特征來設計自身云架構,從而更好支持多云、混合云,可以免去用戶被廠商綁定的顧慮。隨著容器技術逐步標準化,進一步促進了容器生態的分工和協同。江蘇蘇寧銀行在容器應用與管理探索實踐過程中,積累一定經驗后,新一代的容器云平臺將 Kubernetes 作為容器編排器。

2 背景

江蘇蘇寧銀行進行容器化改造前,針對業務系統架構進行了充分的梳理,將其分為如下兩類:一類是基于遠程服務調用框架的 Web 應用。前端界面表現層使用 HTML,Angular JS,Vue 等前端技術,后端編程采用 Java 技術棧,業務邏輯控制層采用 Spring MVC 或 Spring boot 等開發框架,數據存儲層采用分布式數據庫中間件。后端使用 MAVEN 編譯打包,發布使用基于 Jenkins 自研的 CD 平臺。此類應用特點是前后端分離、跨平臺、易遷移;另一類是非 Java Web 應用的技術架構,包括 LAMP,Python 等技術棧。前端界面表現層采用 HTML,CSS,PHP,Ajax 等技術,業務邏輯層使用 PHP MVC 開發框架—Symfony,數據存儲層采用 MySQL MGR 集群技術。此類應用架構簡單、穩定、部署方便靈活。

隨著業務發展,應用系統不斷增多?;谶h程服務調用框架的 Web 應用之間的關系、調用鏈路越來越復雜;非 Java Web 的技術架構變得越來越臃腫,運行維護面臨眾多痛點:一是環境部署復雜。在搭建基礎環境的過程中,需要部署編譯很多 lib 庫、編譯器、組件包,并且各個組件的依賴關系非常復雜,特別是銀行業因為安全等方面要求,生產環境與互聯網物理隔離,安全策略嚴格,各種基礎庫及依賴包的安裝費時費力,部署完成一套系統環境甚至需要一周時間之久;二是環境污染嚴重,難以二次使用。測試環境部署完成,經過多次測試后,各類參數和配置文件經過多人調整,需要恢復到初始狀態部署應用測試時,耗時費力,需要多人參與,有時需要重新創建虛機,以實現純凈環境;三是系統遷移困難。由原先部署在Vmware虛擬機的業務系統遷移到“ OpenStack+Kvm”的云平臺,應用遷移煩瑣且容易遺漏配置文件。從底層虛擬化文件層遷移,鏡像格式不同,缺少合適的跨平臺打包工具,非常復雜也容易出錯;四是缺乏快速響應能力。整體系統研發、投產過程中開發測試的并行開展度不高,業務需求需要快速上線。業務系統的線下環境和線上環境的配置參數不統一,導致實際投產過程的復雜性提高、報錯率提升;五是彈性擴展能力差。系統擁有部分高并發業務場景,業務應用需要快速彈性伸縮來滿足峰時需求。單體式應用系統的復雜性過高,系統拓展性不足,系統維護性難度加大。

3 建設原則

結合江蘇蘇寧銀行實際情況,并經過長期技術預研和多次技術論證,遵循如下原則構建新一代云原生架構的基礎平臺:一是務實。以解決實際問題為出發點,不追求“高大上”。將環境部署過程中碰到的問題一一列出,逐個討論,不清晰、不明確的需求先擱置;二是穩中求進。不過度追求極致自動化,優先保證生產穩定安全。選擇有一定先進性、技術活力、能代表未來發展方向的技術;三是提升效率。減少人工重復性操作,選擇的技術和建設的平臺與業務系統的發展不是正比關系,而是業務系統的高速發展,只會使得系統運維工作略有增加;四是符合整體規劃建設。將 IT 建設的整體規劃作為依據,從方案上考慮容器云建設的合理性和必要性,使得建設的平臺具有先進性和可持續性。

4 建設階段

在如上原則指導下,將容器云平臺建設分為兩個階段。

第一階段:探索并解決資源使用效率問題。將容器作為微服務架構的運行體,Rancher 作為容器編排調度技術,建設江蘇蘇寧銀行的容器云平臺[2]。建設完成后,推動應用上云。應用上云分為三步—首先,完成容器化改造,通過容器自帶的鏡像構建能力將各個業務組件打包,推入自建的鏡像倉庫,以實現標準化交付。其次,容器環境構建,將改造后的各個業務組件分別獨立地運行在容器中,保證各組件能在容器中正常運行,同時實現開發、測試、生產環境的代碼和配置的完全一致性管理。最后,通過 Rancher 實現對容器的編排。利用容器的標準化交付和隔離特性,實現了從開發環境到生產環境的快速移植和發布;利用容器快速啟動的優勢,實現業務應用系統在高峰期的快速彈性擴展,從而滿足高并發的應用場景。在應用上云的同時,把傳統單體式應用、基于 RPC 調用的應用系統,使用 Spring Cloud 框架進行改造,向著微服務化架構方向演進。

第二階段:彈性、敏捷、助力 DevOps 和 AIOps[3]。從傳統構建、部署方式向容器化轉變完成后,以較低的投入實現了資源使用效率提升的目標。同時,在容器化方面積累了經驗,有了充分的技術沉淀,具備一定的容器化平臺建設和規劃能力。結合江蘇蘇寧銀行實際情況,采用 Kubernetes 代替 Rancher 作為容器編排器,構建新一代容器云平臺。充分利用 Kubernetes 的容器編排、彈性伸縮、容器漂移和故障自愈能力,簡化應用部署方式、縮短周期及降低難度。另外,利用 Kubernetes 的容器編排能力與 DevOps 結合,進一步提升研發運維一體化能力,并為后續 AIOps 建設打下基礎。

5 結論

江蘇蘇寧銀行采用容器和 Kubernetes 編排調度技術自主研發的容器云平臺,在全行運行容器實例近萬個、承載全行多套環境(DEV/SIT1/SIT2)的各類應用中間件。根據不同環境資源使用需求,自助式創建服務,資源利用率提升4倍以上,服務器、機柜成本下降60%;利用容器的快速啟動及自動部署能力,中間件及各開發組件部署效率提高90%以上;全面助力業務系統微服務化,實現業務系統從開發到部署的敏捷、快速迭代開發。在掌握容器云平臺建設的關鍵技術,并積累一定經驗后,基于 Kubernetes 編排技術構建的新一代容器云平臺已經在生產環境上線,承載部分應用系統。

江蘇蘇寧銀行歷時8個月獨立開發完成基于 Docker 和 Rancher 技術的容器云平臺,以及新一代基于 Docker 和 Kubernetes 的容器云平臺,達到高并發業務快速彈性伸縮、業務開發測試快速上線的理想效果。以云原生 DevOps 為理念,打造以服務為中心的管理模式,屏蔽基礎運維架構,覆蓋從代碼到生產的全生命周期。容器云平臺架構圖如圖1所示。

江蘇蘇寧銀行容器云平臺實現基礎設施云端化、開發流程敏捷化和應用架構現代化:一是基礎設施云端化。穩定快速的物理環境保障,跨越 VMware、私有云的管理,簡化多集群的資源隔離和管理,靈活集群托管,全面加速和優化云的管理。具備服務清理和管控能力,可管理容器服務的全生命周期,實現服務授權、服務訪問流量轉化、服務編排、容器調度、服務發現、零宕機等目標;二是開發流程敏捷化。以云原生 DevOps 為理念,持續性地將高質量、具有價值的應用快速推向市場。通過應用和服務編排,一鍵式地部署相互關聯的服務,簡化服務部署流程,快速部署復雜的服務[4];三是應用架構現代化。深度支持SpringCloud微服務框架,平滑遷移基于 Spring Cloud 的微服務應用,構建微服務架構和管理平臺。以低成本、重安全的方式管理微服務的開發和運維,使部署、管理和服務功能交付變得更加簡單。

6 未來規劃

第一階段,通過自研的金融級容器云平臺在測試環境長期運行,以提升資源使用效率,為完全自主掌控核心技術積累經驗;第二階段,利用容器快速彈性伸縮能力及云原生技術自動化能力,提升運維效率和保障能力。同時,系統微服務化改造范圍不斷擴大,為容器云的可持續性演進打下堅實基礎,為江蘇蘇寧銀行全面實現云原生技術架構下的 DevOps 乃至 AIOps 奠定堅實基礎[5]。

隨著云原生技術的發展和應用,江蘇蘇寧銀行將持續投入研發基于云原生基礎架構的容器云平臺,實現容器化封裝常用的大數據套件和中間件組件、人工智能平臺,滿足業務系統全面云原生下金融場景特定需求。

參考文獻:

[1]羅勇.云銀行的內在邏輯與核心技術[ J].中國金融,2020(21):49?51.

[2]樹岸,彭鑫,趙文耘.基于容器技術的云計算資源自適應管理方法[J].計算機科學,2017,44(7):120?127.

[3]劉思堯,夏緒衛,華榮錦.基于 Docker 容器的云平臺集群伸縮算法研究[J].科技通報,2018,34(7):150?153.

[4]楊鵬,馬志程,彭博,等.集成 Docker 容器的 OpenStack 云平臺性能研究[J].計算機工程,2017,43(8):26?31.

[5]齊磊,張海峰,張天驍,等.基于容器技術的 PaaS 云平臺方案[J].電信科學,2017,33(4):177?182.

作者簡介:

陳菲琪(1985—),碩士,高級工程師,研究方向:金融科技、云計算、數字銀行。

王景斌(1969—),博士,高級會計師,研究方向:會計、風險管理、金融科技(通信作者)。

猜你喜歡
編排容器
Different Containers不同的容器
人心像一個容器
難以置信的事情
淺談電視新聞節目的合理編排
初中兩種版本教材中電學實驗的編排比較與分析
提高報紙編輯版面編排策略的探析
電視節目編排的技術性和藝術性
競技性拉丁團體舞編排的研究
分層,多變,整合
取米
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合