楊哲明 瞿良勇 倪智鵬 鄭小苗 徐 軍 鄭俊強
(國家管網(wǎng)集團浙江省天然氣管網(wǎng)有限公司,浙江 杭州 310051)
當前,在企業(yè)數(shù)字化領(lǐng)域,如何滿足業(yè)務(wù)部門龐大且零散的IT需求,成為眾多企業(yè)信息化管理的巨大挑戰(zhàn)。隨著云原生應(yīng)用概念及技術(shù)的發(fā)展,傳統(tǒng)IT模式向云架構(gòu)、云開發(fā)模式轉(zhuǎn)型,并衍生出了“敏捷開發(fā)”“快速迭代”的迫切需求[1]。在復(fù)雜的供需環(huán)境中,物聯(lián)網(wǎng)應(yīng)用快捷開發(fā)平臺正在快速地普及[2],敏捷開發(fā)模式實現(xiàn)軟件快速生成和快速迭代,為工業(yè)軟件開發(fā)提供了有益借鑒,云平臺和云中臺的模式提供了數(shù)據(jù)集中和軟件模塊功能復(fù)用的基礎(chǔ)能力。
在智能化應(yīng)用不斷深化的情況下,天然氣運營管理企業(yè)的傳統(tǒng)的軟件開發(fā)和管理模式已無法滿足日益增長的業(yè)務(wù)需求和技術(shù)挑戰(zhàn),構(gòu)建天然氣“平臺服務(wù)、資源集中、數(shù)據(jù)共享、開放兼容、安全可信”兼具的一體化、數(shù)字化智能平臺已迫在眉睫。隨著云計算、微服務(wù)和容器技術(shù)的快速發(fā)展,一體化容器云平臺已成為企業(yè)現(xiàn)代化軟件交付的重要基礎(chǔ)設(shè)施。本文旨在采用一體化容器云平臺來優(yōu)化軟件開發(fā)和管理流程,提高運營效率、降低成本并增強安全性。
隨著云計算和DevOps的發(fā)展,容器技術(shù)越來越成為企業(yè)應(yīng)用程序開發(fā)和部署的標準[2]。相比于傳統(tǒng)的虛擬化技術(shù),容器化一體平臺可以提供更高效、更靈活、更可靠的應(yīng)用程序部署和管理方式,在企業(yè)業(yè)務(wù)快速部署中至關(guān)重要。首先,一體化容器云平臺提供了一種標準化的部署和管理方法,使企業(yè)能夠更高效地開發(fā)、測試和部署應(yīng)用程序,這種標準化有助于降低錯誤率,提高可維護性,并減少部署時間[3]。其次,一體化容器云平臺在企業(yè)級環(huán)境中支持大規(guī)模和復(fù)雜的應(yīng)用程序架構(gòu),通過容器編排工具,企業(yè)可以輕松地管理多個容器實例,實現(xiàn)自動化的擴展和負載平衡,從而更好地適應(yīng)變化的工作負載[4]。最后,一體化容器云平臺有助于提高敏捷性和創(chuàng)新力,使企業(yè)能夠更快速地響應(yīng)市場變化。建設(shè)一體化容器云平臺是多方面的綜合性需求,其必要性主要包括以下幾個方面。
高效性和靈活性。容器化允許將應(yīng)用程序及其所有依賴項封裝在一個一致的環(huán)境中,從而提高了部署的一致性和可靠性,幫助企業(yè)更加高效、更靈活地應(yīng)對變化。
持續(xù)交付和部署。企業(yè)需要提升敏捷開發(fā)能力,通過持續(xù)集成和部署實現(xiàn)更迅速、可靠地交付和部署新功能,從而幫助企業(yè)更快適應(yīng)市場發(fā)展變化,使企業(yè)更具綜合競爭力。
資源優(yōu)化。企業(yè)需要更有效地使用基礎(chǔ)設(shè)施資源,通過輕量級的容器實例提高資源利用率,實現(xiàn)優(yōu)化成本,并提供更好的資源管理。
安全性和可維護性。企業(yè)需要增強安全性功能,如鏡像簽名、訪問控制等,幫助保護企業(yè)級應(yīng)用程序。通過容器的輕量級和可插拔性來提升系統(tǒng)的可維護性。
團隊協(xié)作和集成?;诮y(tǒng)一的一體化容器云平臺環(huán)境,統(tǒng)一的界面和工具鏈實現(xiàn)更加無縫的集成,更方便共享和重用組件,促進開發(fā)、測試和運維團隊之間的協(xié)作,并有助于提高企業(yè)技術(shù)團隊效率和協(xié)同工作。
一體化容器云平臺在企業(yè)級部署中的效率、靈活性、成本、安全性和團隊協(xié)作等方面具有綜合價值,可以幫助企業(yè)能夠更好地適應(yīng)快速變化的業(yè)務(wù)環(huán)境。
在實施一體化容器云平臺之前,企業(yè)各系統(tǒng)大部分為不同的開發(fā)團隊獨立實施,各系統(tǒng)是典型“煙囪式”系統(tǒng),不可避免地存在一些弊端。(1)各系統(tǒng)雖共用同一個PG數(shù)據(jù)庫,但數(shù)據(jù)互相獨立,不同系統(tǒng)之間的相同數(shù)據(jù)各自存儲,形成了數(shù)據(jù)“孤島”和重復(fù)建設(shè),在后續(xù)的運營維護過程中,用戶需對同一份數(shù)據(jù)在不同存儲位置進行重復(fù)修訂以滿足不同應(yīng)用系統(tǒng)的需求。(2)系統(tǒng)間應(yīng)用的功能復(fù)用性較差,常見業(yè)務(wù)系統(tǒng)的一些通用業(yè)務(wù)功能重復(fù)建設(shè),如權(quán)限管理、流程審批、組織架構(gòu)管理等。隨著業(yè)務(wù)需求的不斷增加,業(yè)務(wù)應(yīng)用不斷擴展,傳統(tǒng)自下而上、螺旋上升的方式開發(fā)軟件系統(tǒng),既造成了資源成本浪費,也大大影響業(yè)務(wù)應(yīng)用的快速迭代。(3)企業(yè)在軟件開發(fā)過程中雖然制定了相應(yīng)的數(shù)據(jù)格式標準,但在軟件開發(fā)過程中對代碼規(guī)范、發(fā)布、測試、質(zhì)量、中間件服務(wù)版本約束等尚未形成統(tǒng)一標準,因此導(dǎo)致已開發(fā)的系統(tǒng)存在各式各樣的中間件服務(wù)情況,給后續(xù)項目生產(chǎn)運行過程中的運維工作帶來極大的挑戰(zhàn)。
建設(shè)一體化容器云平臺,天然氣運營管理企業(yè)需要明確自身的需求和目標,選擇適合的一體化容器云平臺。結(jié)合企業(yè)現(xiàn)狀及需求分析,一體化容器云平臺實施核心目的是打造企業(yè)級工業(yè)生產(chǎn)應(yīng)用平臺,支撐面向不同業(yè)務(wù)場景的上層應(yīng)用開發(fā)管理、運行監(jiān)控及持續(xù)迭代,有效支撐驅(qū)動天然氣運營管理智能化發(fā)展。
企業(yè)選擇一體化容器云平臺需要考慮平臺的成熟度、可擴展性、安全性、易用性以及與其他系統(tǒng)的集成能力等關(guān)鍵因素,并在部署實施中需要重點關(guān)注三個問題。一是內(nèi)部工業(yè)數(shù)據(jù)的統(tǒng)一存儲及數(shù)據(jù)服務(wù),應(yīng)采用何種類型的基礎(chǔ)設(shè)施支持提供低耦合數(shù)據(jù)服務(wù)以便于更好地支撐上層業(yè)務(wù)需求;二是提供穩(wěn)定及標準化的容器運行及管理平臺,保障應(yīng)用的生產(chǎn)運行工作,實現(xiàn)對容器平臺的監(jiān)控管理,并提供對應(yīng)用從編碼、測試到發(fā)布運行的持續(xù)集成工作;三是為了實現(xiàn)業(yè)務(wù)應(yīng)用最小化開發(fā),將通用業(yè)務(wù)功能抽離為獨立服務(wù)[5]。
一體化容器云平臺的實施內(nèi)容主要包括統(tǒng)一數(shù)據(jù)中心、統(tǒng)一公用基礎(chǔ)服務(wù)、統(tǒng)一業(yè)務(wù)PasS服務(wù)及管理控制臺等四個部分。平臺面向天然氣運營管理企業(yè)工業(yè)生產(chǎn)應(yīng)用數(shù)據(jù)統(tǒng)一的需求進行完善和定制,聚焦企業(yè)已有的系統(tǒng)和應(yīng)用模塊,在Kubernetes、Docker虛擬化集群技術(shù)、微服務(wù)中心、分布式存儲等基礎(chǔ)上開展容器化平臺和統(tǒng)一數(shù)據(jù)中心的建設(shè),使其擁有資源調(diào)度的能力。另外結(jié)合不同場景及業(yè)務(wù)流程,基于微服務(wù)、分布式存儲、業(yè)務(wù)流程等為業(yè)務(wù)應(yīng)用提供數(shù)據(jù)服務(wù)、通用中間件服務(wù)、應(yīng)用總線服務(wù),實現(xiàn)工業(yè)應(yīng)用的質(zhì)量體系標準及快速構(gòu)建迭代。通過容器一體化平臺、公用服務(wù)建設(shè)以及Devops管理中心建設(shè),實現(xiàn)一體化容器云平臺的建設(shè)目標。
容器一體化平臺。提供自建系統(tǒng)部分的技術(shù)支撐能力,解決基礎(chǔ)設(shè)施、分布式數(shù)據(jù)庫等底層技術(shù)問題,為前臺提供有效支撐。
公用服務(wù)建設(shè)。分為公用基礎(chǔ)服務(wù)與業(yè)務(wù)服務(wù)兩部分,對通用的技術(shù)服務(wù)及業(yè)務(wù)服務(wù)能力進行標準化定義,并提供給上層應(yīng)用調(diào)用,包含權(quán)限認證、流程管理、統(tǒng)一消息推送等。
Devops管理中心。結(jié)合Jenkins的自動化構(gòu)建功能的發(fā)布平臺形成Devops一體化平臺,應(yīng)用開發(fā)、編碼、交換、測試、發(fā)布、更新等進行流程化標準化制定,結(jié)合微服務(wù)框架等功能組件,提供整套基礎(chǔ)架構(gòu)、能力,提升上層應(yīng)用的管理度量效率。
持續(xù)集成。持續(xù)集成采用GitLab代碼管理技術(shù),它是一種集成了版本控制和自動化構(gòu)建、測試和部署的軟件開發(fā)實踐。通過使用GitLab,開發(fā)團隊可以方便地管理代碼倉庫,并利用GitLab將代碼頻繁地集成到主干。GitLab提供了強大的版本控制功能,支持分支管理和合并請求等操作,還集成了問題跟蹤、代碼審查和團隊協(xié)作等功能,幫助團隊高效地協(xié)作和管理代碼。
基于輕量化云的持續(xù)交付。環(huán)境配置采用代碼形式寫入YAML文件,確保了環(huán)境的統(tǒng)一和可控。借助Kubernetes的資源調(diào)度和分配功能,有效提升資源的利用率。對于中小型系統(tǒng),初始化一套完整的環(huán)境變得輕而易舉,通過不同的腳本滿足不同測試的環(huán)境資源需求。這種配置方式簡化了環(huán)境搭建過程,提高了開發(fā)效率[6]。
平臺流程定制化。平臺使用技術(shù)中臺PaaS組件存儲海量分析數(shù)據(jù),建立分析管道。度量管理可以滿足不同維度視角的需求,通過Grafana配置多個模板,實現(xiàn)度量視圖的自定義,支持圖標位置拖拽和編輯,自動增加新的組件,并支持按照自定義視圖發(fā)送通知等。此外,對每項指標的走勢進行跟蹤和定位,找到能夠反映出問題的度量數(shù)據(jù),并驅(qū)動團隊改進。
平臺功能架構(gòu)上分為應(yīng)用層、網(wǎng)關(guān)層、服務(wù)層、存儲層和容器層等五個部分,在架構(gòu)上提供了清晰的層次劃分,使得各層之間的功能明確,便于維護和擴展。應(yīng)用層負責處理與用戶交互的邏輯,網(wǎng)關(guān)層作為接入點,服務(wù)層提供業(yè)務(wù)功能,存儲層負責數(shù)據(jù)存儲,容器層則提供運行環(huán)境。這樣的架構(gòu)有助于提高系統(tǒng)的可擴展性和可維護性。具體架構(gòu)如圖1所示。
圖1 平臺功能架構(gòu)
3.5.1 基于Kubernetes+Docker的一體化平臺建設(shè)
基于Kubernetes+docker原生云建設(shè),采用Kubernetes實現(xiàn)輕量化云平臺解決方案。調(diào)度和編排是集群管理的重要組成部分,容器管理包括從一個集群中添加或移除主機、獲取宿主機或容器當前的狀態(tài)信息、啟動或管理進程,通過搭建容器化的集群,實現(xiàn)自動化部署、持續(xù)集成和服務(wù)管理[7]。它強調(diào)自動擴展、安全配置、監(jiān)控和版本控制,以提供高效、穩(wěn)定和易維護的應(yīng)用環(huán)境。
3.5.2 PaaS層公用基礎(chǔ)服務(wù)組件建設(shè)
對行業(yè)應(yīng)用軟件通用組件庫和通用工具實施部署。項目的實施將為應(yīng)用軟件開發(fā)提供完善的集成一體化開發(fā)環(huán)境,構(gòu)筑在標準化零部件基礎(chǔ)上的高效率、高質(zhì)量的新型生產(chǎn)方式。為支撐頂層應(yīng)用開發(fā)及中臺實施,基礎(chǔ)服務(wù)主要包括消息隊列、緩存、ELK組件、配置中心、網(wǎng)關(guān)、任務(wù)調(diào)度、文件服務(wù)以及ETL組件。
3.5.3 PaaS層公用業(yè)務(wù)平臺建設(shè)
統(tǒng)一認證?;陂_源成熟的認證產(chǎn)品Apereo CAS,構(gòu)建本地化的高可用認證平臺??晒┍镜叵到y(tǒng)以各類標準協(xié)議(如CAS、SAML、OAuth等)接入,并實現(xiàn)本地系統(tǒng)間的單點登錄。后端以標準LDAP協(xié)議對接身份數(shù)據(jù)源,可對接現(xiàn)有AD服務(wù)器,未來也可根據(jù)需要進行切換。
統(tǒng)一身份。基于現(xiàn)有AD服務(wù)器,支持輔以自定義用戶身份數(shù)據(jù)源用以解決外部用戶,對各個應(yīng)用系統(tǒng)提供統(tǒng)一身份信息獲取服務(wù)。
統(tǒng)一權(quán)限。用戶訪問權(quán)限管理,通過本地構(gòu)建用戶權(quán)限管理平臺,實現(xiàn)用戶在各應(yīng)用角色、菜單及操作權(quán)限的統(tǒng)一查看、維護。權(quán)限管理平臺提供標準的對外接口,各應(yīng)用系統(tǒng)可訂閱權(quán)限管理平臺的數(shù)據(jù),接收權(quán)限調(diào)整數(shù)據(jù),實現(xiàn)“權(quán)限一處調(diào)整,多系統(tǒng)生效”。
統(tǒng)一流程。通過對流程平臺的服務(wù)化封裝,形成流程接入的標準和規(guī)范,使流程平臺具備為其他各類應(yīng)用系統(tǒng)提供流程接入服務(wù)的能力,打造企業(yè)級的統(tǒng)一流程平臺,實現(xiàn)流程統(tǒng)一開發(fā)、待辦統(tǒng)一處理、系統(tǒng)統(tǒng)一運維。
統(tǒng)一消息告警。各系統(tǒng)模塊可以通過消息隊列向消息告警中心推送標準化的告警消息。用戶可以在告警中心直接查看消息,也可以通過對接企業(yè)自有的短信等消息渠道,實現(xiàn)告警消息到用戶端的精準送達。
3.5.4 應(yīng)用場景驗證遷移
應(yīng)用場景驗證遷移工作針對當前的部分應(yīng)用場景的各所屬業(yè)務(wù)系統(tǒng)進行測試。主要工作為配合第三方應(yīng)用開發(fā)商,實現(xiàn)對第三方應(yīng)用業(yè)務(wù)系統(tǒng)的容器化遷移工作,在業(yè)務(wù)功能上覆蓋了對實時數(shù)據(jù)采集、微服務(wù)應(yīng)用、前端展示等一系列研究及實施動作。
(1)數(shù)據(jù)遷移。根據(jù)應(yīng)用所需要的歷史、實時數(shù)據(jù)需要同步遷移至一體化容器云平臺的數(shù)據(jù)平臺進行存儲。
(2)微服務(wù)應(yīng)用遷移。按照一體化容器云平臺的開發(fā)流程及規(guī)范遷移微服務(wù)應(yīng)用,并加入自動化測試,對應(yīng)用進行通用的測試能力,最后實現(xiàn)鏡像打包一鍵部署。
(3)前端遷移。前端應(yīng)用也按照容器化規(guī)范進行容器化。
(4)驗證測試。在完成遷移后,針對兩個應(yīng)用場景在容器化環(huán)境內(nèi)進行壓力測試和性能測試,以及針對兩個應(yīng)用場景進行功能性驗證測試。
一體化容器云平臺在天然氣運營管理企業(yè)實施,幫助打造企業(yè)級的“基于物聯(lián)網(wǎng)、云技術(shù)的省級天然氣智能平臺”,能快速面向天然氣運營管理企業(yè)工業(yè)生產(chǎn)應(yīng)用通用服務(wù)的需求進行完善和定制,聚焦天然氣運營管理企業(yè)已有的系統(tǒng)及應(yīng)用模塊,支撐面向不同業(yè)務(wù)場景的上層應(yīng)用開發(fā)管理、運行監(jiān)控、持續(xù)迭代,驅(qū)動天然氣智能化發(fā)展。
一體化容器云平臺擁有資源調(diào)度的能力,結(jié)合不同場景及業(yè)務(wù)流程,基于微服務(wù)、分布式存儲、業(yè)務(wù)流程等為業(yè)務(wù)應(yīng)用提供通用中間件服務(wù)、業(yè)務(wù)公用服務(wù),實現(xiàn)天然氣應(yīng)用的質(zhì)量門禁標準及快速構(gòu)建迭代。平臺重點解決了三個問題:(1)內(nèi)部來自“天然氣產(chǎn)業(yè)完整性”的業(yè)務(wù)數(shù)據(jù)和技術(shù)數(shù)據(jù)統(tǒng)一存儲及數(shù)據(jù)服務(wù),應(yīng)用基礎(chǔ)設(shè)施支持提供低耦合數(shù)據(jù)服務(wù),以便于更好地支撐上層業(yè)務(wù)需求。(2)提供標準化的容器運行及管理平臺,保障應(yīng)用的生產(chǎn)運行,實現(xiàn)對容器平臺的監(jiān)控管理功能,并提供對應(yīng)用從編碼、測試到發(fā)布運行的持續(xù)集成工作。(3)為了實現(xiàn)業(yè)務(wù)應(yīng)用迭代更新,打造標準化、模塊化的SaaS服務(wù)模塊,為今后數(shù)字化推廣提供賦能平臺市場化應(yīng)用。
通過實踐驗證,一體化容器云平臺在天然氣運營管理企業(yè)的應(yīng)用中具有以下價值點。
(1)跨平臺和可移植性。一體化容器云平臺允許將應(yīng)用程序及其所有依賴項封裝在一個一致的環(huán)境中,提高了可移植性,使應(yīng)用程序能夠在不同環(huán)境和云平臺上運行,增強了靈活性。
(2)效率和資源利用。容器是輕量級的,啟動迅速,減少了虛擬機的開銷。這導(dǎo)致更高的資源利用率、更少的部署時間以及更高的整體系統(tǒng)效率。
(3)持續(xù)交付和部署。一體化容器云平臺與持續(xù)集成和持續(xù)部署(CI/CD)流程集成,使得開發(fā)團隊能夠更快速、可靠地交付新功能,從而縮短了開發(fā)周期。
(4)提高軟件開發(fā)效率。通過自動化的構(gòu)建和測試流程,開發(fā)人員能夠更快地交付高質(zhì)量的代碼,同時統(tǒng)一的開發(fā)、測試和生產(chǎn)環(huán)境也減少了出錯的可能性。
(5)增強可伸縮性和彈性。一體化容器云平臺允許公司根據(jù)業(yè)務(wù)需求靈活調(diào)整資源,確保應(yīng)用的穩(wěn)定性和可用性。此外,通過容器編排與管理系統(tǒng),公司可以輕松實現(xiàn)應(yīng)用的自動擴展和負載均衡。
(6)提升安全性。通過隔離的運行環(huán)境和細粒度的權(quán)限控制,減少了安全風險,并增強了數(shù)據(jù)保護能力,同時監(jiān)控與日志系統(tǒng)可以實時監(jiān)測和處理潛在的安全威脅。
(7)降低運營成本。通過部署一體化容器云平臺,公司可以更有效地利用資源并提高應(yīng)用性能,自動化的運維流程也減少了人工干預(yù)和錯誤發(fā)生的可能性。
一體化容器云平臺為企業(yè)提供了更靈活、高效、安全的應(yīng)用程序部署和管理方式,有助于推動數(shù)字化轉(zhuǎn)型和業(yè)務(wù)創(chuàng)新。
盡管一體化容器云平臺在天然氣運營管理公司中具有多方面的顯著優(yōu)勢,但在平臺實施過程中也面臨一些困難挑戰(zhàn)。
(1)技術(shù)復(fù)雜性。容器技術(shù)相對較新,需要員工具備相應(yīng)的技能和知識。為了應(yīng)對這一挑戰(zhàn),公司需要加強員工培訓和技能提升工作。
(2)集成與兼容性。與公司現(xiàn)有的系統(tǒng)和工具集成可能會面臨一些挑戰(zhàn)。為了確保平臺的順利集成,公司需要與供應(yīng)商緊密合作并進行定制開發(fā)。此外,在選擇新組件和技術(shù)時需要考慮與現(xiàn)有系統(tǒng)的兼容性問題。
(3)安全管理。隨著容器數(shù)量的增加,安全管理變得更加復(fù)雜。為了應(yīng)對這一挑戰(zhàn),公司需要加強安全策略和監(jiān)控措施,并定期進行安全審計和風險評估工作。此外,還需要關(guān)注容器的安全配置和補丁更新問題。
(4)成本控制。引入一體化容器云平臺可能會增加一定的成本投入。為了合理控制成本并確保投資回報率,需要進行充分的成本效益分析。
隨著技術(shù)的不斷進步和需求的增長,一體化容器云平臺在天然氣運營管理公司的應(yīng)用中將呈現(xiàn)以下發(fā)展趨勢。
(1)實時監(jiān)測與響應(yīng)。平臺可加強對天然氣運行的實時監(jiān)測,以便快速識別潛在問題并實施及時響應(yīng),提高運行效率和安全性。
(2)大數(shù)據(jù)分析。利用容器云平臺的彈性和擴展性,進行大規(guī)模數(shù)據(jù)分析,以優(yōu)化天然氣生產(chǎn)、儲存和運輸過程,提高系統(tǒng)智能化水平。
(3)物聯(lián)網(wǎng)整合。整合物聯(lián)網(wǎng)設(shè)備與傳感器,實現(xiàn)設(shè)備之間的無縫通信,以提高設(shè)備監(jiān)測和遠程操作的精度,降低潛在風險。
(4)安全性和合規(guī)性。強化在容器云環(huán)境中的數(shù)據(jù)安全性,并確保符合行業(yè)和法規(guī)的合規(guī)性要求,以降低潛在的安全風險。
(5)可持續(xù)性和環(huán)保。將可持續(xù)性原則融入容器云平臺,以支持天然氣運營管理公司實現(xiàn)更環(huán)保、可持續(xù)的運營方式。