自Google把原本內部專案Kubernetes(簡稱K8s)釋出於雲端原生運算基金會(CNCF)之後,不僅在社群中得到相當多技術人員支持,儼然已成為容器叢集管理的代名詞,隨著日前Docker宣布支援K8s,各家雲服務與PaaS平台的容器環境也大舉相繼整合。
除了開放陣營的紅帽(Red Hat)OpenShift容器平台自2014年起即轉向以K8s為核心,在2017年內,眾家國際IT大廠幾乎全數到位,例如微軟既有雲端容器服務Azure Container Service納入K8s管理,縮寫名稱亦改為AKS;Amazon新推出EKS(Elastic Container Service for Kubernetes)託管服務;甲骨文新推出的容器原生應用程開發平台(Oracle Container Native Application Development Platform)中,容器引擎採用K8s管理;VMware、Pivotal、Google Cloud合作,推出企業級標準化Kubernetes解決方案,簡稱為PKS;IBM Cloud Private私有雲平台也採以K8s與Cloud Foundry為核心元件建構。足以顯見應用程式微服務(Microservices)化、運行環境容器化,如今已是大勢所趨,將成為企業未來營運業務系統的基礎架構。
整合Cloud Foundry與K8s技術平台
近來Docker大步邁向商業應用環境,IBM雲端運算事業部總經理許仲言觀察,主要是受應用趨勢所驅動。他舉例,幾年前IBM談雲平台時,是以Cloud Foundry為底層,然而Docker在國際企業客戶詢問與關切之下,IBM為了貼近市場所需,2017年年中發布Bluemix可兼容K8s叢集管理,隨後即推出IBM Cloud Private私有雲平台正式版。積極發展轉型計畫的銀行業,在台灣可說是微服務架構的早期採用者,隨著容器平台的管理工具日漸成熟,各個不同產業在面對市場競爭時,一旦遇到營運效能瓶頸,例如新興商業模式所開發的系統卻發布部署、維護效率皆低落,自然會考慮採用可彈性組裝成應用的微服務架構。
在開放陣營相當活躍的IBM,對於Cloud Foundry與K8s社群不僅貢獻程式碼,並且藉此取得社群參與者的回饋,以了解兩種不同平台下的使用習慣與學習經驗,藉此累積產品的知識。IBM Cloud Private即是基於Cloud Foundry與K8s開放框架向上堆疊,提供資源管理、負載均衡、多租戶管理、應用管理監控等應用,其中亦包含核心業務服務,已納入IBM自家容器化產品,例如WebSphere中介軟體、DB2資料庫、認知服務等,讓企業用戶可直接在內部實體或虛擬主機環境中安裝建置,幫助企業建立跨雲的應用環境。
IBM雲端事業部資深雲端架構師吳志忠說明,在微服務架構下,Cloud Private平台可說是微服務實作環境,可先行透過PaaS提供新建管控、打包部署等機制,以自動化方式運行,特別是維運工作,須建立自動修復、用量增長時水平擴充、智慧型工作流程動態配置資源等機制。
傳統上,偵測到系統離線或服務無回應時,先透過告警方式通知相關技術人員進行處置,進入到雲端平台之後,再沿用過去基於技術人力來排除問題的模式已緩不濟急,在雲端平台中發生單點故障時,應該要自動透過軟體或系統功能,立即執行修復,不需人力介入。因此維運自動化,亦是Cloud Private相當重要的特性之一。
IBM全球資訊科技服務事業部協理徐偉倫指出,典型的IT維運場景是靜態式,需要統一控管系統,當事件發生時,觸發派工(Ticket)通知,由人力執行處理。若把認知運算分析能力納入,則維運場景將變成動態式,依據現有IT運行環境調整臨界值,一旦事件發生,不僅可從中學習,同時也會先分析資料尋找解決方法。經過不斷地學習之後,當類似事件再發生時,維運系統即可自動化處置,縮短人力執行問題排除所需耗費的時間,以確保應用服務不至因此中斷。
「未來的世界僅是IaaS已經不足以因應複雜的容器環境,必須基於認知能力與自動化機制,建立基礎架構程式化維運,落實DevOps工作模式。」徐偉倫強調。
確保微服務架構可控性與安全
安裝與配置完成IBM Cloud Private,啟動後即可從應用市集中取得所需的服務,整合成為內部應用系統;抑或是把內部單體式應用程式解構成為微服務,並且發布到應用市集,主要是透過平台中內建微服務建置器(Microservice Builder)元件,可提供監控架構、持續整合/持續部署、開發執行環境、虛擬化環境,並且提供開發工具協助創建。吳志忠舉例,Java語言的開發者在程式碼撰寫完成後可透過微服務建置器元件打包成Docker映像檔案,同時部署到平台上,讓開發者毋須再學習打包封裝Docker映像檔案的執行步驟即可達成。
|
▲ IBM Cloud Private基於Cloud Foundry與Kubernetes開放框架為核心設計開放式平台,上層應用可採IBM提供的容器化產品,例如WebSphere中介軟體、DB2資料庫、認知服務等,亦可納入開放原始碼、開放陣營的微服務。 |
封裝Docker映像檔後,企業用戶大多希望能達到以不停機的方式進行變更切換,尤其是在異動頻繁的微服務架構環境。對此, Cloud Private則是整合Istio開放原始碼框架實作。吳志忠說明,在開發微服務時大多會部署線上版與開發版,完成後再依據自定路由規則把流量導向到最新版本,而非斷線後重新接取,同時具備負載平衡、搜尋、監控等機制。
他指出,「在微服務浪潮下,從傳統單體式應用系統,變更成為可彈性組合、橫向擴展的小元件,更需要細緻地監控每個元件的狀態,在Cloud Private平台中內建微服務監控應用(APM for DevOps),專門容器化的運行模式所設計監控環境,最後結果是透過開源的Grafana儀表板工具,設計呈現出每個小元件彼此之間的關係、使用狀態等資訊,協助維運者釐清問題根源。此外,容器安全性掃描機制可說是Cloud Private特有的設計,可運用黑箱掃描容器環境,藉此檢查程式碼漏洞。」
至於既有單體式應用程式萬一無法解構,則可透過基礎架構管理工具CAM(Cloud Automation Manager)來執行調度,目前可支援OpenStack、VMware等虛擬平台。因此若企業IT環境中有新與舊系統併存,即使是採用容器平台的IBM Cloud Private,仍舊可支援虛擬主機的調度機制,撰寫成工作流程後,打包封裝成服務,上架到應用市集。從應用市集的角度,可能無法發現究竟是虛擬主機或容器化環境,如此一來,即可補足多數企業剛開始無法接受把應用程式予以拆解後架構在容器環境的作法,待熟悉PaaS平台隨需取用的運作邏輯,之後再逐階段轉換為容器環境。