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