現代軟件開發對基礎設施的管理提出了更苛刻的要求:產品要適應瞬息萬變的市場,要求基礎設施有更快的響應速度;持續交付和DevOps的推行,要求產品團隊對部署和運維有更高的自主性;技術的快速進步和演化,也使得基礎設施的配置不得不頻繁變化,而在這種快速變化的過程中,要求基礎設施既要靈活,也要安全、可靠。
長期以來,管理IT基礎設施都是一個手動過程,人們會將服務器實際位置就位并對其進行配置。只有在機器被配置為操作系統和應用程序所需的正確設置后,才會部署應用程序。因此,這種手動的過程通常會導致很多問題。
傳統的基礎設施運維管理具有以下幾個問題:
成本:從網絡工程師到硬件維護技術人員,必須聘請許多專業人員在流程的每一步執行必要的任務。
擴展性和可用性:也可歸結為“速度”問題。由于手動配置太慢,應用程序經常會遇到訪問高峰,而系統管理員會拼命嘗試設置服務器來管理負載,這必然會影響可用性。如果組織沒有備份服務器甚至數據中心,那么應用程序可能會長時間不可用。
監測和性能可見性:如何密切關注所有基礎設施,以確保其正在以較優方式運行?當遇到問題,又如何準確定位問題來自基礎設施的哪個位置呢?
不一致性:如果多個人負責手動部署配置,不一致將成為不可避免的問題。
軟件定義基礎設施,基礎設施即代碼在此背景下"應運而生"的,不但要集成還要運營, 持續交付和DevOps的推行使得ISV服務器產品團隊對部署和運維有更高的自主性。基礎設施即代碼是通過機器可讀的定義文件,而不是物理硬件配置或交互式配置工具來管理和配置計算數據中心的過程。簡單來說,基礎設施即代碼意味著使用配置文件管理您的IT基礎設施。
====烽火在基礎設施即代碼領域的實踐====
在ICT轉型、數字化經濟的當下,烽火通過云網基礎設施支撐自有平臺產品, 集成各云服務商系統發揮技術優勢,提供完善的端對端一站式集成解決方案。探索項目總集交付、持續運營交付、數據共享交付,在數字政府領域深耕、發展,從而實現政務數據從“存儲、整合”到“應用”的跨越,釋放數據價值紅利。從傳統的弱電機房改造到IaaS層數據中心的建設積累發展, 再到橫向拉通烽火全系ICT家族產品基礎硬件平臺,數據中臺產品(云平臺/云存儲/大數據/SDN/), 建立起了管理縱向合作伙伴和ISV服務商的生態體系。烽火作為基礎設施的集成者,要適應瞬息萬變的應用市場需求, 對其管理則提出了更苛刻的要求:基礎設施必須有更快的交付響應速度、靈活的可定制性、 面向應用和數據服務商的管理可視性。因此,在基礎設施即代碼領域,烽火在其自有云產品上進行了廣泛的實踐。
Terraform在烽火多云管理平臺的應用
烽火多云管理平臺FitMgr經過選型,采用Terraform工具實現對云服務資源的編排及管理。Terraform 是一個安全、高效進行基礎設施部署、更改、版本化的開源工具。通過聲明式的配置語言(HCL, Hashicorp Configuration Language)來描述基礎設施,即配置文件,由Terraform對配置文件及當前基礎設施狀態進行對比,分析資源之間的依賴關系,生成一個執行計劃,最后調用各家云廠商的具體實現來完成整個基礎設施生命周期的管理。
烽火云平臺中被Terraform管理的資源生命周期圖
在Terraform的初始化階段,Terraform會加載Backend后端,加載配置及資源狀態信息,分析資源執行的應該執行具體哪個操作,再通過資源視圖分析資源之間的依賴關系,對于沒有相互依賴關系的資源,會執行并行創建資源。在Provider對接是烽火多云管理平臺Fitmgr中的資源中心,該資源中心是對底層不同類型虛擬化資源的管理,資源操作成功后會將相應的資源信息返回,記錄在后端的狀態文件存放,作為下次執行編排的基礎。
Terraform在烽火多云管理平臺的某個應用場景
應用場景為:創建所有主機的鏡像、規格、軟件版本、配置都完全一樣的對等 Apache集群。其業務模型如下:
配置文件組織形式:
可以看出,相比于手動部署資源,Terraform減少人為誤操作而導致的錯誤,提高部署效率;另外,生成的執行計劃可以保證操作資源時不發生意外,造成不可逆的結果,提高操作的準確性。模板配置化的方式,可以得知整個資源的依賴關系,也可以做相應的資源版本化管理,甚至可以把該資源模板直接復制建立多可用區的服務,增強對資源操作的可移植性。
在交付過程中, 以客戶業務核心需求為導向,采用迭代、循序漸進的方法,把軟件開發思想應用到集成交付項目中,不但可以縮短交付周期,還可以為持續集成交付奠定基礎。而基礎設施即代碼就是我們在集成交付領域的一次全新探索。未來,我們會通過持續探索, 不斷完善和集成烽火系統自有家族產品, 逐步實現與合作伙伴開發商一起打造集成交付的完整生態體系。