99久久99久久精品国产片果冻,粉嫩av久久一区二区三区,日本高清www午色夜com,国产成 人 综合 亚洲网站,97人妻无码一区二区精品免费

  • 頭條云計(jì)算技術(shù)在配網(wǎng)監(jiān)控系統(tǒng)持續(xù)集成方案中的運(yùn)用
    2021-11-03 作者:王少鵬 楊迎春 等  |  來源:《電氣技術(shù)》  |  點(diǎn)擊率:
    分享到:
    導(dǎo)語許昌許繼軟件技術(shù)有限公司的研究人員王少鵬、楊迎春、丁博、賈亞楠、梁鵬威,在2020年第9期《電氣技術(shù)》雜志上撰文,闡述了一種云計(jì)算服務(wù)技術(shù)在電力監(jiān)控系統(tǒng)持續(xù)集成方案中的應(yīng)用。結(jié)合云計(jì)算技術(shù)的強(qiáng)大功能性及冗余容錯(cuò)能力,為配電網(wǎng)應(yīng)用系統(tǒng)的不同規(guī)模交付場景提供更加高效、安全的開發(fā)及運(yùn)維支撐。

    目前配電網(wǎng)信息系統(tǒng)在技術(shù)組件以及技術(shù)實(shí)現(xiàn)框架方面已經(jīng)日趨成熟。隨著產(chǎn)品開發(fā)及實(shí)施任務(wù)量的增加和定制業(yè)務(wù)的需求增多,既有配電系統(tǒng)在每次工程應(yīng)用前都需要經(jīng)過一系列復(fù)雜的持續(xù)性交付過程,依賴密集且復(fù)雜的持續(xù)性編譯、大量的系統(tǒng)測試、繁雜的部署任務(wù),導(dǎo)致工程應(yīng)用周期增長,測試任務(wù)量巨大,耗時(shí)耗材耗力。

    隨著企業(yè)業(yè)務(wù)容量的拓展,服務(wù)器數(shù)量急劇增加的壓力,出現(xiàn)了現(xiàn)有的Jenkins(持續(xù)集成工具,基于Java語言開發(fā))整合Ansible(自動(dòng)化運(yùn)維工具,基于Python語言開發(fā))的方式進(jìn)行系統(tǒng)的整體集成。但由于配網(wǎng)監(jiān)控平臺的不斷發(fā)展,供應(yīng)企業(yè)要同時(shí)面對多個(gè)不同規(guī)模的交付場景,Jenkins整合Ansible的方式由于硬件資源的固定限制,已經(jīng)較難適應(yīng)不同規(guī)模的交付業(yè)務(wù)。

    基于OpenStack(云計(jì)算軟件)的持續(xù)集成設(shè)計(jì)方式,在Jenkins整合Ansible提供集成服務(wù)的基礎(chǔ)上,不但可以實(shí)現(xiàn)開發(fā)的可視化、智能化的全流程管控,而且可以依托于云平臺的資源動(dòng)態(tài)分配的特點(diǎn),適應(yīng)任何規(guī)模交付場景的一比一自動(dòng)化測試交付任務(wù),保障配電網(wǎng)監(jiān)控平臺安全有效的持續(xù)性交付。

    1 理論基礎(chǔ)研究

    云平臺技術(shù)常規(guī)應(yīng)用有兩個(gè)方向:①以數(shù)據(jù)存儲為主要服務(wù)功能的存儲型云平臺;②以數(shù)據(jù)處理為主要服務(wù)的計(jì)算型平臺。

    本項(xiàng)目依賴于OpenStack的部分開源組件,提供了基于系統(tǒng)層面以及應(yīng)用層面的資源智能化分配以及釋放,相比于原有的固定硬件設(shè)備資源,完全能夠適應(yīng)各種不同大小規(guī)模的配網(wǎng)監(jiān)控平臺的持續(xù)化集成交付任務(wù)。同時(shí)結(jié)合使用OpenStack的分布式云存儲(Swift)技術(shù),保證測試流程的安全及穩(wěn)定,增加容錯(cuò)能力,保證在某一硬件設(shè)備故障的情況下,仍能完成持續(xù)集成交付任務(wù)。

    云平臺技術(shù)的中間層、基礎(chǔ)設(shè)施層提供了如下技術(shù)功能,可以任意分配及釋放現(xiàn)有的硬件設(shè)備資源:

    1)虛擬化(Nova)。有了虛擬化技術(shù),可以在一個(gè)云平臺集群中生成多個(gè)全面隔離的虛擬機(jī)資源或者服務(wù)資源,資源可以隨時(shí)分配和釋放。

    2)分布式云存儲技術(shù)(Swift)。能夠解決集群中單個(gè)實(shí)體硬件節(jié)點(diǎn)故障影響整體服務(wù)的問題,保證部署、測試、交付動(dòng)作連貫不受干擾。

    3)負(fù)載均衡。能夠更好地支配整體云平臺的硬件資源(硬盤、內(nèi)存、網(wǎng)絡(luò)),實(shí)現(xiàn)有限資源的高度利用。

    交互后臺服務(wù)是整套方案的核心,采用通用的Restful基于超文本傳送協(xié)議(hypertext transfer protocol, HTTP)的設(shè)計(jì)風(fēng)格應(yīng)用程序接口(appli- cation program interface, API),能夠完成OpenStack和Ansible、Jenkins的整合,打通一個(gè)完整而又靈活的持續(xù)性交付系統(tǒng),用來滿足節(jié)點(diǎn)數(shù)從1到N的不同規(guī)模監(jiān)控平臺持續(xù)集成及交付工作。

    自定義虛擬化資源管理核心接口如下:

    interface boolean create_Os(

    String targetMechine, String osName, String osConfig

    );

    interface boolean drop_Os(

    String targetMechine, String osName

    );

    interface boolean create_application(

    String targetMechine, String appName

    );

    interface boolean drop_application(

    String targetMechine, String appName

    );

    自定義持續(xù)交付job管理接口如下:

    interface boolean executeJob(

    String jobName

    );

    interface boolean createJob(

    String jobName, String jobTemplateXml

    );

    interface boolean dropJob(

    String jobName

    );

    使用回調(diào)函數(shù)接口的方式,交互后臺服務(wù)監(jiān)聽Jenkins的版本變化信號,觸發(fā)后續(xù)自動(dòng)部署及測試工作:

    interface void callback(){

    return (jenkins svn state);

    }

    2 采用云計(jì)算技術(shù)的配網(wǎng)監(jiān)控系統(tǒng)持續(xù)集成系統(tǒng)架構(gòu)及模塊

    持續(xù)化集成原有的方案只需要使用Jenkins界面配置即可做到固定模式、固定數(shù)量節(jié)點(diǎn)的智能配網(wǎng)監(jiān)控平臺的持續(xù)化集成及測試工作。但整合OpenStack技術(shù)之后,不僅需要一個(gè)核心的后臺服務(wù)系統(tǒng),也要有一套能夠靈活配置的交互界面。

    采用云平臺技術(shù)中的Nova組件作為配電網(wǎng)的運(yùn)行載體、Swift組件保障整套集成測試環(huán)境的冗余容錯(cuò)能力,Jenkins及Ansible搭建的持續(xù)集成Server端控制集成方向及內(nèi)容、SVN(subversion,開放源代碼的版本控制系統(tǒng))作為版本庫,實(shí)現(xiàn)靈活的配網(wǎng)持續(xù)集成整體結(jié)構(gòu),如圖1所示。

    1)交付后臺服務(wù)。交付后臺服務(wù)是一整套持續(xù)集成交付體系,除了包含Ansible及Jenkins整合而成的持續(xù)交付服務(wù)之外,還包括為用戶操作界面提供服務(wù)邏輯以及控制OpenStack云平臺的Web后臺服務(wù),其中Ansible的劇本代碼也是由SVN統(tǒng)一進(jìn)行代碼版本管理的,方便持續(xù)集成系統(tǒng)本身的不斷更新迭代。

    除OpenClient(本項(xiàng)目自主開發(fā)模塊,作為客戶端連接Jenkins與OpenStack)之外,其他所有的對外控制接口為SSH(Secure Shell,應(yīng)用層基礎(chǔ)安全協(xié)議)。交付后臺內(nèi)部,WebServer通過Restful API接口與Jenkins服務(wù)進(jìn)行交互。

    2)可視化客戶端以及complineServer。一套固定的硬件設(shè)備主要用于人工交互配置服務(wù)和節(jié)點(diǎn)以及自動(dòng)執(zhí)行編譯命令??梢暬蛻舳擞蒍Query、easyUI等前端架構(gòu)實(shí)現(xiàn),通過HTTP協(xié)議與WebServer進(jìn)行數(shù)據(jù)溝通。同時(shí)可視化客戶端也會根據(jù)用戶選擇自動(dòng)進(jìn)行所選服務(wù)及所屬節(jié)點(diǎn)的合理性分析。

    圖2所示為運(yùn)維人員所配置的服務(wù)、所屬節(jié)點(diǎn)清單以及行為合理性分析的展示界面。

    3)監(jiān)控平臺最終交付環(huán)境。以SSH為對外接口,是主要的交付目標(biāo)。

    4)OpenStack云平臺系統(tǒng)。主要提供虛擬化以及共享存儲功能,為集成測試以及多變的測試環(huán)境提供靈活的環(huán)境。交互后臺服務(wù)通過OpenStack提供的客戶端進(jìn)行虛擬機(jī)或者服務(wù)的創(chuàng)建與起停。

    虛擬化技術(shù)提供虛擬的硬件資源,共享存儲服務(wù)提供可靠的冗余容錯(cuò)機(jī)制,保證云平臺集群某臺實(shí)體硬件節(jié)點(diǎn)故障或宕機(jī)不會影響服務(wù)運(yùn)行以及造成數(shù)據(jù)丟失。負(fù)載均衡機(jī)制提供一個(gè)硬件資源的合理分配,以高效率高硬件利用率完成持續(xù)集成交付工作。

    云計(jì)算技術(shù)在配網(wǎng)監(jiān)控系統(tǒng)持續(xù)集成方案中的運(yùn)用

    圖1 基于云平臺的持續(xù)化集成架構(gòu)

    云計(jì)算技術(shù)在配網(wǎng)監(jiān)控系統(tǒng)持續(xù)集成方案中的運(yùn)用

    圖2 服務(wù)節(jié)點(diǎn)配置清單及合理性分析運(yùn)行界面

    3 基于云計(jì)算技術(shù)的配網(wǎng)監(jiān)控平臺工作流程

    前文已經(jīng)實(shí)現(xiàn)了基于云計(jì)算技術(shù)的集成方案架構(gòu)設(shè)計(jì)以及各模塊之間結(jié)構(gòu)的定義,下面描述N節(jié)點(diǎn)的配網(wǎng)監(jiān)控平臺持續(xù)集成環(huán)境的制定及集成流程。持續(xù)集成的核心控制服務(wù):核心后臺交互服務(wù)提供了一個(gè)嚴(yán)謹(jǐn)有序的交付流程體系,此套體系能夠適應(yīng)節(jié)點(diǎn)數(shù)從1~N的不同規(guī)模的監(jiān)控平臺集成任務(wù)。

    圖3所示為環(huán)境硬件結(jié)構(gòu)示意圖。持續(xù)集成環(huán)境完全依賴于云計(jì)算平臺集群,包括測試虛擬機(jī)、編譯虛擬機(jī)、集成控制虛擬機(jī)(主要是交付后臺服務(wù)運(yùn)行環(huán)境);數(shù)據(jù)庫服務(wù)器以及監(jiān)控平臺服務(wù)端服務(wù)器集群主要為線上交付目標(biāo)環(huán)境;代碼版本管理器由于為核心機(jī)密,單獨(dú)服務(wù)器部署。

    云計(jì)算技術(shù)在配網(wǎng)監(jiān)控系統(tǒng)持續(xù)集成方案中的運(yùn)用

    圖3 硬件架構(gòu)示意圖

    圖4所示為加入了云計(jì)算技術(shù)的持續(xù)集成流程。主要包括以下步驟:

    • 1)開發(fā)人員提交代碼到SVN服務(wù)器,系統(tǒng)判定是否有要執(zhí)行的交付目標(biāo)配置,如果沒有則通知測試人員使用圖形化客戶端按照交付目標(biāo)構(gòu)建配置。
    • 2)Jenkins定時(shí)檢測到代碼有更新,鎖定更新代碼工程(定時(shí)觸發(fā)策略需要按照實(shí)際情況進(jìn)行設(shè)定)。
    • 3)Jenkins進(jìn)行自動(dòng)化編譯,并觸發(fā)存儲機(jī)制,存儲最新的程序包并記錄版本。
    • 4)Jenkins通過Ansible plugin通知Ansible執(zhí)行測試劇本。
    • 5)持續(xù)集成后臺服務(wù)通過回調(diào)函數(shù)監(jiān)聽到操作指令,調(diào)用接口在OpenStack自動(dòng)開辟新的資源并創(chuàng)建新的虛擬機(jī)、虛擬服務(wù)(數(shù)據(jù)庫等),執(zhí)行分發(fā)、配置、啟動(dòng)等整套安裝部署動(dòng)作)。
    • 6)觸發(fā)測試動(dòng)作,進(jìn)行自動(dòng)化測試,記錄測試報(bào)告并分發(fā)測試結(jié)果到通知郵箱。
    • 7)觸發(fā)掃描程序?qū)y試報(bào)告進(jìn)行掃描,判定程序測試是否通過。
    • 8)如果測試掃描結(jié)果表示測試通過,則把測試版本作為正式版本發(fā)布到一套正式的環(huán)境中,另本次運(yùn)行包以序號加時(shí)間為命名方式自動(dòng)打包發(fā)送到SVN版本庫統(tǒng)一保存,方便后續(xù)突發(fā)回滾操作使用。
    • 9)測試版本轉(zhuǎn)換到正式環(huán)境后,突發(fā)情況發(fā)現(xiàn)最新的正式版本有重大bug未被檢測到,需要緊急下線并回滾并從SVN調(diào)取本版本的上一歷史版本進(jìn)行版本恢復(fù)操作。
    • 10)銷毀測試使用的OpenStack虛擬機(jī),并釋放資源。

    把云平臺技術(shù)與持續(xù)化集成技術(shù)整合成一套新的持續(xù)集成體系,能夠滿足當(dāng)前復(fù)雜的監(jiān)控平臺應(yīng)用系統(tǒng)的業(yè)務(wù)場景。根據(jù)持續(xù)化集成平臺的設(shè)計(jì)經(jīng)驗(yàn)以及新型配網(wǎng)主站的項(xiàng)目需求,需要在如下3個(gè)關(guān)鍵方面達(dá)到要求:

    云計(jì)算技術(shù)在配網(wǎng)監(jiān)控系統(tǒng)持續(xù)集成方案中的運(yùn)用

    圖4 持續(xù)集成流程

    • 1)B/S(browser/server,瀏覽器/服務(wù)器模式)架構(gòu)非開源系統(tǒng)的持續(xù)化集成。
    • 2)C/S(client/server,客戶機(jī)/服務(wù)器模式)架構(gòu)的非開源系統(tǒng)的持續(xù)化集成。
    • 3)任意節(jié)點(diǎn)的分布式基礎(chǔ)環(huán)境開源組件自動(dòng)部署。

    4 結(jié)論

    隨著配網(wǎng)監(jiān)控平臺的基礎(chǔ)架構(gòu)越來越復(fù)雜,部署節(jié)點(diǎn)數(shù)量及硬件架構(gòu)越來越多樣化,有一套能夠適應(yīng)各種規(guī)模監(jiān)控平臺的持續(xù)化集成系統(tǒng)至關(guān)重要,固定目標(biāo)規(guī)模的持續(xù)化集成系統(tǒng)已經(jīng)不能滿足要求。

    本設(shè)計(jì)在許繼集團(tuán)已經(jīng)單獨(dú)立項(xiàng)并在許繼集團(tuán)新型配網(wǎng)主站項(xiàng)目試點(diǎn)開發(fā)及應(yīng)用。其中,自動(dòng)化部署、自動(dòng)化測試、持續(xù)性編譯等關(guān)鍵模塊正在進(jìn)行基本的功能驗(yàn)證和評估,能夠滿足持續(xù)化集成的需求。

    本文針對許繼集團(tuán)新一代監(jiān)控平臺開發(fā)了一套持續(xù)集成交付方案服務(wù),目前持續(xù)編譯及自動(dòng)部署已經(jīng)完成內(nèi)部測試,業(yè)務(wù)開發(fā)人員及運(yùn)行維護(hù)人員已經(jīng)做了初步的測試使用,效果良好。