張磊,劉軍,晁凱,張敏杰,吳垠,劉賽
(1.南瑞集團有限公司(國網(wǎng)電力科學(xué)研究院有限公司),南京210003;2.南京南瑞信息通信科技有限公司,南京210003)
近期,國家電網(wǎng)有限公司完成云平臺建設(shè),并進入常規(guī)運營階段[1-2]。隨著多個重要業(yè)務(wù)系統(tǒng)遷移上云,業(yè)務(wù)部門對平臺提出下一步工作的推進要求[3-4]。如何發(fā)揮云平臺在不停運、無感知檢修的先天優(yōu)勢,提高自動化、智能化作業(yè)水平,推進傳統(tǒng)業(yè)務(wù)、云上業(yè)務(wù)無感檢修成為當(dāng)前云平臺運營工作中重點的研究任務(wù)[5-6]。
國家電網(wǎng)公司通過云平臺建設(shè),構(gòu)建了新一代信息基礎(chǔ)設(shè)施平臺,帶動了公司的IT 資源和數(shù)據(jù)資源的建設(shè),應(yīng)用運維向“企業(yè)級”轉(zhuǎn)型,實現(xiàn)了強大的平臺架構(gòu),強大的支持和響應(yīng)敏捷性,全局資源調(diào)度,靈活的共享和高效的應(yīng)用[7-8]。
云平臺和數(shù)據(jù)中心堅持“企業(yè)級”建設(shè),協(xié)調(diào)公司的規(guī)劃,建設(shè)和運營,實現(xiàn)公司IT 資源,數(shù)據(jù)資源和系統(tǒng)服務(wù)的“企業(yè)級”共享應(yīng)用[9-10]。電網(wǎng)業(yè)務(wù)系統(tǒng)逐步遷移上云,相關(guān)的軟硬件資源由云平臺按需提供,不再根據(jù)系統(tǒng)進行配置,將公司的數(shù)據(jù)資源統(tǒng)一到公司的數(shù)據(jù)中心管理中,構(gòu)建全網(wǎng)一朵云架構(gòu),形成一個“IT 資源服務(wù)中心”和一個“數(shù)據(jù)服務(wù)中心”,實現(xiàn)總部與省公司操作兩級協(xié)同[11-12]。全網(wǎng)一朵云平臺如圖1 所示。
圖1 全網(wǎng)一朵云平臺
方法和目的:擴容云平臺資源池,保證資源后備充足,分配率警戒線75%,保證資源穩(wěn)定、足額、高利用率供給。重要措施:推進資源監(jiān)控、資源統(tǒng)計、容量預(yù)測工作,嚴(yán)格執(zhí)行資源申請開通、變更、回收機制,建設(shè)云平臺組件健康管理指標(biāo)體系,達到事先健康評估和故障、隱患發(fā)現(xiàn)的效果,以不停機檢修工作為契點,建設(shè)全自動化業(yè)務(wù)系統(tǒng)檢修機制,降低人為故障率。資源健康管理系統(tǒng)的框架如圖2 所示。嚴(yán)格按照操作計劃的內(nèi)容執(zhí)行日常操作,并在日常工作的閉環(huán)中反饋有關(guān)組件優(yōu)化,問題消除和云咨詢工作的補充建議。將云平臺資源運作流程制度化,建立云業(yè)務(wù)結(jié)構(gòu)和資源應(yīng)用的評審流程,逐步制定評審標(biāo)準(zhǔn)。
圖2 資源健康管理系統(tǒng)的框架
結(jié)合云平臺Devops 解決方案和非感知實現(xiàn)的應(yīng)用程序發(fā)布,主要從業(yè)務(wù)系統(tǒng)的服務(wù)系統(tǒng)的角度研究在不停止服務(wù)的情況下如何進行維護工作的策略和計劃。并且用戶不知道,并且對現(xiàn)有的維護對象進行了大修。標(biāo)準(zhǔn)化操作程序和實施計劃的流程準(zhǔn)備。
在發(fā)布過程中,用戶不會感知到服務(wù)的重啟,這通常是通過新舊版本的共存實現(xiàn)的,也就是說,在發(fā)布過程中,新版本和舊版本是相互備用的通過切換路由權(quán)重的方式(不是0 或100)實現(xiàn)不同應(yīng)用程序的聯(lián)機或脫機,在不中斷業(yè)務(wù)的情況下完成可視化的一鍵式灰色釋放,并且可以在升級期間隨時回滾到舊服務(wù)流程,以確保升級安全。無感知檢修過程如圖3 所示。
圖3 無感知檢修過程
通過不間斷的維護,在不影響用戶正常工作的情況下,實現(xiàn)了不間斷維護工作的應(yīng)用服務(wù)保證。確保業(yè)務(wù)系統(tǒng)安全、穩(wěn)定、高效的運行,大大提高了前端用戶的系統(tǒng)體驗價值,增強了客戶的黏度,解決了系統(tǒng)維護中業(yè)務(wù)不暢的問題。
通過實驗,對應(yīng)用服務(wù)進行了不間斷檢修。驗證方案包括ECS 加SLB 大修方案,CS 加SLB 大修方案,CS 服務(wù)單批大修,CS 服務(wù)批大修,CS 微服務(wù)大修以及微服務(wù)配置中心配置大修。
SLB 負(fù)載權(quán)重用于控制訪問請求訪問的ECS 服務(wù)。升級資源統(tǒng)計服務(wù)時,可以通過調(diào)整負(fù)載均衡負(fù)載來實現(xiàn)。其他內(nèi)部服務(wù)不允許直接訪問ECS IP 地址,必須通過SLB 訪問,否則將無法實現(xiàn)不間斷運行檢查。
根據(jù)云平臺資源部署服務(wù),具體如下ECS_IP:25.50.146.204、25.50.146.203,ECS 服務(wù)端口:18080,SLB_IP-PORT:25.50.15.17-8081。確認(rèn)兩個ECS 的服務(wù)正常,確認(rèn)SLB 負(fù)載正常,兩個ECS 的負(fù)載權(quán)重為100,請訪問http://25.50.15.17:8081,請求將被隨機發(fā)送到兩個ECS 比例為1:1 時,服務(wù)正常,可以通過調(diào)整重量來更改比例。
測試正常后,將重量調(diào)回100,或逐漸調(diào)整。這時,用戶將隨機訪問版本1 或版本2 的服務(wù)。如果確定版本2 正常,則可以選擇快速調(diào)整204 的權(quán)重,而203 將直接接管請求。檢查SLB 入口http://25.50.15.17:8081的服務(wù)是否正常,所有請求將被203 接管。
至此,該服務(wù)的大修已經(jīng)完成,在此過程中,仍有一些服務(wù)提供不間斷的服務(wù)來滿足不間斷的大修要求。維護操作版本升級或自包含配置修改等。通過SLB 負(fù)載切換方法可以實現(xiàn)業(yè)務(wù)應(yīng)用程序的不間斷維護要求。檢修過程的結(jié)果如圖4 所示。
該服務(wù)部署的CS 服務(wù)通過SLB 端口公開該服務(wù)。CS 服務(wù)中有多個容器組副本。理論上,當(dāng)需要對應(yīng)用程序進行大修時,只需要替換容器組副本的內(nèi)容即可。具體操作主要涉及負(fù)載的控制。CS 服務(wù)的容器組副本需要在版本維護開始時刪除負(fù)載,并在維護完成并通過測試后自動添加負(fù)載。
圖4 無感知檢修結(jié)果
單批部署是完整的更新版本,業(yè)務(wù)將中斷,并且無法進行停機維護和驗證。
批量檢查CS 服務(wù),并通過SLB 端口公開該服務(wù)部署的CS 服務(wù)。CS 服務(wù)中有多個容器組副本。當(dāng)需要對應(yīng)用程序進行大修時,理論上只需要替換容器組副本的內(nèi)容。具體操作主要涉及負(fù)載的控制。CS 服務(wù)的容器組副本需要在版本維護開始時刪除負(fù)載,并在維護完成并通過測試后自動添加負(fù)載。
在DEMO 描述和驗證中,只能批量部署多副本應(yīng)用程序(滾動部署)。在v1 和v2 的過程中,需要驗證是否按要求刪除和增加了負(fù)載,如果v2 版本存在問題,驗證系統(tǒng)自己的處理方法,驗證容器服務(wù)是否正常,然后進行部署批量升級到v2 版本。在執(zhí)行期間,容器組將等待新版本啟動,然后替換舊版本。應(yīng)用程序本身可以通過設(shè)置批處理間隔來有效地完成不間斷維護。在此過程中,可以隨時啟動回滾操作。驗證在容器啟動失敗,上載失敗的映像v3 并啟動批處理部署時,是否可以完成升級部署??梢钥闯?,已識別出異常圖像:容器本身的負(fù)載也從該版本中自動刪除,并且只有5 個負(fù)載地址。繼續(xù)等待,看看是否觸發(fā)了下一批更新。5 分鐘后,仍然不會觸發(fā)更新。失敗的鏡像無法正常釋放。此時,可以將所有副本回滾到原始版本。完成后負(fù)載將還原到6 個節(jié)點。最終結(jié)論是容器服務(wù)的批量部署可以完成不間斷的維護要求。
通過對試點業(yè)務(wù)系統(tǒng)不間斷維護工作的研究,提出了云平臺維護工作的內(nèi)容,對云平臺維護方法進行了合理性評估,并將云平臺Devops 解決方案與非平臺維護相結(jié)合。從業(yè)務(wù)系統(tǒng)的服務(wù)角度出發(fā),對應(yīng)用程序發(fā)布的看法,提出了在服務(wù)不停止,用戶不知情的情況下云平臺維護工作的策略和實施方法,進一步規(guī)范了操作流程和實施計劃以及準(zhǔn)備現(xiàn)有維護對象維護過程的方法。下一步將對云平臺微服務(wù)應(yīng)用程序的整個生命周期管理系統(tǒng)進行研究。