雲端平台設計多樣化的服務,皆有合適的應用場景,正確的選用搭配才可發揮效益。問題是各個企業關注的要點不盡相同,可能是效能、安全性、成本等因素,通常難以有最佳實踐案例,所幸主流公有雲平台在台灣皆有培養策略夥伴,例如銓鍇國際成為AWS策略夥伴已將近十年,累積相當多經驗,可提出現代化應用程式可行性較高的建議。
銓鍇國際雲端技術部副理李明政指出,首先協助企業先從新的開發專案開始著手,熟悉新技術的優勢與限制,再評估既有應用系統可拆解的功能性,經過測試驗證過後才予以上線整合運行,藉此可降低失敗的風險性。銓鍇國際之所以對AWS公有雲平台較為熟悉,李明政說明,主要在於早期就已投入研究雲端運算服務模式,當時便是AWS掀起的浪潮,其平台穩定度、服務多樣性皆優於後進者,例如AWS Lambda無伺服器(Serverless)運算服務,可說是業界領先指標,早在2014年就已推出,其他公有雲服務供應商則是後來才跟進;其次是AWS文件相當齊全,儘管操作介面未必容易上手,但是對於技術人員來說,清楚說明的文件更加重要,才讓銓鍇國際得以培養擅長於AWS的技術團隊。
新舊並行朝向雲端原生邁進
從實際接觸的企業用戶觀察,銓鍇國際雲端技術部高級架構師黃品瑞發現近兩年容器環境與Kubernetes(K8S)可說是爆發式成長,本土亦有許多企業開始採用,甚至是VMware新版本的vSphere 7.0核心也納入K8S,幾乎已成為業界標準。
早期K8S是社群嘗試運用來解決IT管理層面問題的工具,初期發布時,黃品瑞就已開始接觸,實際上入門門檻相當高,很容易建置失敗,公有雲服務供應商基於既有軟體定義基礎架構的優勢來提供,確實可解決初期建置的難題,但若遇到底層資源微調的需求,還是得手動下指令執行,此時可藉助雲端平台提供的圖形化操作介面幫助理解,降低使用門檻。
近年來應用系統演進到雲端原生成為企業數位化轉型的目標,底層運行環境不再是IT人員熟悉的虛擬主機,而是抽象分離資源的容器,本土許多企業部署規模並不大,畢竟企業發展演進的步驟通常是由小專案開始,尚未需要採用K8S協助管理。儘管如此,現階段勢必為新與舊技術並行時期,藉此運行實際驗證測試來確認可行性。
K8S最大的優勢在於大規模叢集環境的資源調度,即便被整合到不同雲平台,基本實作邏輯仍大同小異,主要是操作介面會有不同呈現方式。若僅是透過指令模式操作,則任何平台皆通用。以實際部署狀況來看,企業端開始產生採用K8S需求時,若可以選擇,大多會引進Google Cloud,畢竟K8S是Google內部釋出的開源工具,可以發揮完整效益。至於應用系統中的特定服務則採用AWS所提供,透過API整合運行,學習成本可降低,此外,公有雲服務供應商彼此之間開始亦有座落於相同雲端資料中心的趨勢,屆時以內部網路方式介接即可,不僅回應速度較快,也可省去網路傳輸費用。
Serverless降低應用轉型現代化門檻
IT業界之所以相繼基於K8S發展自家的控管平台,銓鍇國際雲端技術部副理李明政認為,主要還是商業戰略考量,可藉此納入自家的服務項目。例如VMware既有客戶已經熟悉操作控管邏輯,vSphere新版本延伸提供可建置容器環境,自然會優先採用。
K8S主要是方便調度以大量部署、擴充,即便如此,底層作業系統、個別服務的整合運行、自動擴充的時機,仍舊得自行處理。若企業的發展政策是放棄底層控制力,多數會考慮採用Serverless,只要專注在運行邏輯,把執行程序拆解,並且解除關聯性,讓彼此之間不具備依存性。李明政舉例,應用系統的購物車機制,傳統做法是以系統為單位,每次啟動新的開發專案時都得重新撰寫,這類應用場景即可採用Serverless進行拆分,並且部署到容器環境,提高啟用與撤銷應用的速度,以貼近現代化服務場景。
就AWS Lambda來看,以平行運算方式,開發者只要專注在選用Lambda的程式語言,例如Python、Node.js等皆可,撰寫完成執行邏輯後,接下來在控管介面上配置啟動程式需要的記憶體、Time Out期間等參數,至於若發生大量存取時,底層的擴充、中斷重新啟動,用戶根本無需介入,雲端平台底層的控制器會自動處理。
「必須強調的是,許多客戶相當認同Serverless的實作法,因此想把既有應用系統轉變成Serverless。實際上,必須要有合適的應用場景,才可提高管理維運的便利性,它不見得可以取代市場上所有的部署模式。採用Serverless首先要評估應用情境,畢竟技術是以FaaS(Function as a Service)方式提供,應用系統必須經過解構,再重新調整程式碼,上線還得測試運行狀態。」李明政說。
新技術採用前先掌握合適應用法則
IT人員熟知的應用系統執行過程中產生皆會產生資料,必須蒐集保存餵入分析工具以監控狀態指標,可是Serverless的特性是有Time Out時間,如AWS Lambda最長為15分鐘,時間到了之後隨即關閉所有程序,在此之前若未能把資料拋轉儲存,日後則無法掌握運行狀態。
雲端平台本來就不建議Serverless服務持續運行,換句話說,若應用服務必須要持續運行,就不應該選用Serverless,其適用的場景是需要時可快速啟動,執行完成後就關閉。Lambda服務最經典的案例即為可口可樂販賣機,提供刷信用卡買可樂,這種消費模式相當適合運用Serverless,顧客刷卡扣款後就立即結束。原本採用的系統是部署在EC2平台,不斷線地持續運行等待服務顧客,改用Lambda後經過測試統計,每月的Request平均次數為三千萬,成本可降低65%;當每月的Request次數達到八千萬,所需的成本才會等同於EC2。由此來看,應用服務若需要被頻繁存取時,IaaS的部署模式更為合適。
此外,企業既有的三層式應用架構,中間的應用邏輯層確實適合採以K8S控管,但是前端操作服務與後端資料庫則未必需要。李明政說明,資料庫部署在容器環境風險比較高,若是金融業的關鍵性應用系統,則必須是關聯式資料庫才得以符合ACID要點,確保讀寫一致性。「AWS也有推出Serverless資料庫服務,有需要用的時候可觸發啟用,執行完成後自行關閉。評估時須考量到,啟動時需要暖機時間,無法達到即時,較適用於開發與測試環境。」