郭玉霞
關(guān)鍵詞:國產(chǎn)化;業(yè)務(wù)應(yīng)用;遷移;云平臺
1引言
目前,我國信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)(簡稱信創(chuàng))取得初步突破,涌現(xiàn)出了一批自主可控、安全可信的國產(chǎn)化軟硬件,國內(nèi)企業(yè)研制的國產(chǎn)處理器、操作系統(tǒng)、數(shù)據(jù)庫、中間件等戰(zhàn)略性核心產(chǎn)品,可以滿足桌面終端、服務(wù)器、存儲設(shè)備、網(wǎng)絡(luò)設(shè)備的應(yīng)用需求。核心芯片方面,形成了以MIPS,SPARC,ARM,ALPHA等架構(gòu)為代表的系列化處理器產(chǎn)品。
隨著自主可控應(yīng)用的推進,基于傳統(tǒng)X86架構(gòu)的電力云平臺正逐步完成國產(chǎn)基礎(chǔ)軟硬件替代工作。通過分析電力業(yè)務(wù)典型應(yīng)用系統(tǒng)特征,目前現(xiàn)有業(yè)務(wù)應(yīng)用由非國產(chǎn)化商用環(huán)境向國產(chǎn)化環(huán)境遷移時,存在指令集兼容性、插件兼容性、數(shù)據(jù)庫遷移等諸多問題。針對應(yīng)用本身和運行環(huán)境,可以采用自底向上的方式,對應(yīng)用系統(tǒng)所依賴的基礎(chǔ)軟硬件、數(shù)據(jù)庫、中間件、集成環(huán)境進行分析。通過電力云平臺基礎(chǔ)技術(shù)路線選型,解決異構(gòu)環(huán)境下不同基礎(chǔ)軟硬件組合的集成部署問題,實現(xiàn)最優(yōu)性能與高穩(wěn)定性,解決異構(gòu)環(huán)境下傳統(tǒng)數(shù)據(jù)庫向國產(chǎn)數(shù)據(jù)庫遷移過程中數(shù)據(jù)表、視圖、存儲過程等差異性問題,實現(xiàn)快速數(shù)據(jù)遷移。通過電力云平臺異構(gòu)資源環(huán)境下遷移調(diào)度技術(shù),屏蔽底層操作系統(tǒng)、CPU架構(gòu)差異,最終實現(xiàn)應(yīng)用遷移規(guī)范化、標(biāo)準(zhǔn)化,提升遷移效率。
2國產(chǎn)化環(huán)境下遷移理論依據(jù)
目前,云平臺虛擬化技術(shù)主要基于KVM架構(gòu)實現(xiàn),可實現(xiàn)內(nèi)存、CPU及網(wǎng)卡等資源虛擬化,大大提高了IT基礎(chǔ)資源的集約化水平[1]。在國產(chǎn)化趨勢與信創(chuàng)背景下,自主可控產(chǎn)品更新迭代快,經(jīng)過幾年的系統(tǒng)運行,應(yīng)用出現(xiàn)眾多版本兼容、硬件兼容等問題,產(chǎn)生了云平臺的國產(chǎn)化芯片與業(yè)務(wù)應(yīng)用的適配需求。因此,采用盡量屏蔽底層硬件、操作系統(tǒng)、應(yīng)用服務(wù)差異性的虛擬化技術(shù)和云化技術(shù)進行云平臺搭建。
2.1云計算技術(shù)
目前,主流的國產(chǎn)虛擬化云平臺為華為的鯤鵬云、升騰的威訊云,二者都采用了0penStaek進行云平臺建設(shè)。0penStack是一個綜合的云計算管理平臺,在0penStack項目中包含以下組件:Kevstone組件提供身份驗證、Nova組件提供計算服務(wù),Glance組件提供鏡像服務(wù)、Swift組件提供對象存儲、Neutron組件提供網(wǎng)絡(luò)服務(wù)、Cinder組件提供塊存儲服務(wù)、horizon組件提供面板服務(wù)等。鯤鵬云以0penStack為原型進行自主研發(fā),適配鯤鵬916、鯤鵬920芯片系列,而威訊云支持華為鯤鵬芯片、飛騰芯片和海光芯片。
2.2容器技術(shù)
容器技術(shù)是一個單獨的應(yīng)用程序進程、運行資源的高度隔離[2]。研發(fā)人員在將代碼開發(fā)完成后,會以代碼、相關(guān)運行環(huán)境構(gòu)建鏡像,測試人員在宿主機上下載服務(wù)的鏡像,使用容器啟動鏡像后即可運行服務(wù)進行測試。測試無誤后,運維人員申請機器,拉取服務(wù)器的鏡像,在一臺或多臺宿主機上可以同時運行多個容器,為用戶提供服務(wù)。在這個過程中,每個服務(wù)都在獨立的容器里運行,每臺機器上都運行著相互不關(guān)聯(lián)的容器,所有容器共享宿主機的CPU、磁盤、網(wǎng)絡(luò)、內(nèi)存等,即實現(xiàn)了進程隔離、文件系統(tǒng)隔離和資源隔離。使用容器可以將微服務(wù)及其所需的所有配置、依賴關(guān)系和環(huán)境變量移動到全新的服務(wù)器節(jié)點上,而無須重新配置環(huán)境,這就實現(xiàn)了強大的可移植性以及云計算時代資源的最大化利用。
3業(yè)務(wù)應(yīng)用遷移技術(shù)方案
基于電力云平臺國產(chǎn)化環(huán)境,在國產(chǎn)基礎(chǔ)軟件環(huán)境中現(xiàn)有業(yè)務(wù)應(yīng)用適配遷移技術(shù)方案如下。
(1)對于典型業(yè)務(wù)系統(tǒng)的開發(fā)與部署模型,結(jié)合不同芯片對于云平臺的適配性以及對操作系統(tǒng)、開發(fā)語言、云服務(wù)組件的支持能力,同時根據(jù)是否基于微服務(wù)框架開發(fā),合理制定國產(chǎn)化適配改造技術(shù)路線,推動建立典型業(yè)務(wù)應(yīng)用基礎(chǔ)軟硬件整體集成架構(gòu)模型,如圖1所示。
(2)通過異構(gòu)環(huán)境下自適應(yīng)基礎(chǔ)軟硬件集成部署技術(shù),解決業(yè)務(wù)應(yīng)用依賴于操作系統(tǒng)、數(shù)據(jù)庫等關(guān)鍵基礎(chǔ)軟硬件的問題。
集群規(guī)劃與自動化部署技術(shù)。通過集群規(guī)劃的表示及解析技術(shù),利用JSON等形式化語言對集群實例、具體信息配置、部署的軟件、軟件路徑等信息進行統(tǒng)一表示,形成規(guī)劃文件[3]。分布式軟件自動化部署引擎負責(zé)對規(guī)劃文件進行校驗與解析,并通過ssh等網(wǎng)絡(luò)協(xié)議將軟件分發(fā)到具體服務(wù)器。服務(wù)器端負責(zé)解析引擎?zhèn)鬏數(shù)男畔⒑蛙浖橘|(zhì),執(zhí)行自動化命令,完成軟件部署。如圖2所示。
統(tǒng)一配置管理及更新技術(shù)。通過分布式協(xié)調(diào)等基礎(chǔ)設(shè)施,將軟件的配置進行集中管理,當(dāng)配置發(fā)生變動時,統(tǒng)一推送到集群中的所有節(jié)點,實現(xiàn)配置的統(tǒng)一管理及自動化更新。
(3)異構(gòu)環(huán)境下主動適配國產(chǎn)數(shù)據(jù)庫遷移與性能優(yōu)化技術(shù)。
3.1數(shù)據(jù)庫主動適配遷移技術(shù)
國產(chǎn)自主可控數(shù)據(jù)庫適配是應(yīng)用系統(tǒng)平滑遷移的關(guān)鍵[4]。將應(yīng)用系統(tǒng)從oracle等主流商業(yè)數(shù)據(jù)庫遷移到國產(chǎn)數(shù)據(jù)庫也是業(yè)務(wù)應(yīng)用自主可控的關(guān)鍵點。本文提出了國產(chǎn)數(shù)據(jù)庫主動適配遷移工具架構(gòu)(圖3),該架構(gòu)能夠在數(shù)據(jù)庫腳本遷移、歷史數(shù)據(jù)遷移過程中避免產(chǎn)生大量的系統(tǒng)改造工作。國產(chǎn)數(shù)據(jù)庫主動適配遷移工具架構(gòu)從以下兩個方面進行數(shù)據(jù)庫遷移適配:(1)簡單應(yīng)用的自動適配技術(shù)。針對簡單應(yīng)用,利用數(shù)據(jù)庫連接引擎的主動適配技術(shù),可以避免修改應(yīng)用系統(tǒng)代碼。通過對數(shù)據(jù)庫適配進行一系列數(shù)據(jù)庫操作方法的封裝,包括連接,斷開數(shù)據(jù)庫,執(zhí)行soL等,從而能夠根據(jù)所使用的物理數(shù)據(jù)庫類型的不同,采用不同的數(shù)據(jù)訪問引擎接口,對外以Java Jar或其他語言的庫包方式,使數(shù)據(jù)訪問服務(wù)本身的應(yīng)用能更好地屏蔽數(shù)據(jù)庫接口的差異;(2)復(fù)雜應(yīng)用的數(shù)據(jù)腳本改造技術(shù)。根據(jù)差異性分析結(jié)果,通過不同數(shù)據(jù)庫之間操作語句自動轉(zhuǎn)換的腳本工具,實現(xiàn)數(shù)據(jù)定義語言(DDL)與數(shù)據(jù)操縱語言(DML)的自動化轉(zhuǎn)換,配合語言自動掃描工具,在減少轉(zhuǎn)換工作量的同時,提升轉(zhuǎn)換質(zhì)量。
3.2數(shù)據(jù)庫訪問性能優(yōu)化技術(shù)
(1)異構(gòu)數(shù)據(jù)庫連接池管理技術(shù)。數(shù)據(jù)訪問連接池是數(shù)據(jù)庫訪問性能的最重要環(huán)節(jié)之一,良好的、面向多數(shù)據(jù)庫的統(tǒng)一連接池能夠減少高速數(shù)據(jù)訪問中頻繁創(chuàng)建數(shù)據(jù)庫連接、釋放數(shù)據(jù)庫連接的耗時,滿足客戶端的服務(wù)請求,避免服務(wù)請求長時間無響應(yīng)。
(2)數(shù)據(jù)操作及傳輸?shù)膬?yōu)化策略設(shè)計技術(shù)。國產(chǎn)化環(huán)境下,由于硬件性能較低,請求響應(yīng)時間相對較長。為了避免用戶在查詢大量數(shù)據(jù)(如十萬條以上)時,用戶界面長時間得不到響應(yīng),數(shù)據(jù)訪問服務(wù)需要設(shè)計為特定優(yōu)化策略。
3.3異構(gòu)環(huán)境基于容器化的應(yīng)用遷移調(diào)度技術(shù)
容器技術(shù)是面向微服務(wù)架構(gòu)的主流類虛擬化技術(shù),在X86架構(gòu)下已經(jīng)廣泛使用。但是,容器虛擬化能力依賴于操作統(tǒng),容器化的功能范圍、性能情況在不同操作系統(tǒng)、芯片組合下都有不同表現(xiàn)。隨著微服務(wù)架構(gòu)的應(yīng)用深入,基于Docker容器的應(yīng)用系統(tǒng)部署方式逐步成為主流。相對于傳統(tǒng)的虛擬機技術(shù),Docker容器技術(shù)具有輕量化、高性能等特點,也是實現(xiàn)應(yīng)用系統(tǒng)安全可控遷移的主要技術(shù)路線。
與原生部署應(yīng)用不同,Docker在應(yīng)用和操作系統(tǒng)之間進行了隔離。為了實現(xiàn)完整支撐,Docker自身已經(jīng)形成一個生態(tài),包括Docker鏡像、鏡像倉庫、組網(wǎng)方式、數(shù)據(jù)訪問、鏡像編排與調(diào)度等[5]。通過搭建面向多種主流國產(chǎn)操作系統(tǒng)的Docker生態(tài)環(huán)境,提供自動化整體部署能力,支持應(yīng)用系統(tǒng)改造過程中環(huán)境及工具支撐需求。
3.4生產(chǎn)應(yīng)用系統(tǒng)在線冷熱應(yīng)用遷移技術(shù)
業(yè)務(wù)應(yīng)用系統(tǒng)在遷移過程中可以按照標(biāo)準(zhǔn)模式完成跨平臺遷移。通過跨平臺遷移方案和工具,結(jié)合云原生理念對真實業(yè)務(wù)系統(tǒng)進行全國產(chǎn)化芯片改造,并基于標(biāo)準(zhǔn)優(yōu)化方法對完成遷移改造后的應(yīng)用系統(tǒng)進行性能優(yōu)化,保證業(yè)務(wù)系統(tǒng)改造完成后在功能、穩(wěn)定性和性能方面均可完全滿足并超越當(dāng)前需求。
4結(jié)束語
目前,業(yè)務(wù)系統(tǒng)主要包括四類業(yè)務(wù)應(yīng)用,即傳統(tǒng)單體架構(gòu)部署應(yīng)用、虛擬化部署應(yīng)用、容器化部署應(yīng)用、微服務(wù)部署應(yīng)用。根據(jù)各業(yè)務(wù)系統(tǒng)技術(shù)難度、業(yè)務(wù)復(fù)雜度、影響面和應(yīng)用范圍等因素,按照先易后難、逐步推進的方式上云。針對電力業(yè)務(wù)應(yīng)用系統(tǒng)特征,現(xiàn)有業(yè)務(wù)應(yīng)用在由非國產(chǎn)化環(huán)境向國產(chǎn)化環(huán)境遷移時,涉及基礎(chǔ)軟硬件平臺、開發(fā)語言、實現(xiàn)架構(gòu)等各個方面,需要結(jié)合應(yīng)用系統(tǒng)自身和運行環(huán)境等多個方面進行具體分析,以確定遷移內(nèi)容和方法?;趪a(chǎn)虛擬化環(huán)境,通過異構(gòu)環(huán)境下業(yè)務(wù)應(yīng)用遷移方案,可以提高業(yè)務(wù)系統(tǒng)運行整體安全性,同時通過軟硬件優(yōu)化技術(shù),實現(xiàn)系統(tǒng)整體運行性能提高5%,為后續(xù)更大范圍地開展業(yè)務(wù)應(yīng)用自主可控安全替代提供技術(shù)支撐。