現在,「雲端原生」通常被視為遷移或建構應用程式的最終目標。不過,視您要求的對象而定,您可能會獲得許多不同的定義。整體來說,大部分情況都歸於以下情況:雲端原生是建構和執行可擴充應用程式的方法,充分運用雲端式服務和提供模型。
與傳統地端部署基礎架構相比,雲端原生架構代表可以改用雲端具備的許多新的可能性,但伴隨極度不同的架構限制。
雲端原生架構與單體式應用程式的不同在於,後者必須以單一單元的形式建構、測試及部署。而雲端原生架構會將元件分解為鬆耦合的服務,以便管理複雜度、提高速度和靈活性及軟體推送的規模。
想知道與業界其他公司相比,貴機構軟體推送成效如何嗎?歡迎參加 DORA 開發運作快速檢驗來瞭解相關資訊。
雲端原生應用程式從設計之初就經過特別規劃,可善用雲端的彈性和分散式特性。如要進一步瞭解雲端原生應用程式,建議先從瞭解它「不是」什麼開始,亦即並非傳統的單體式應用程式。
單體式應用程式是以單一單元的形式運作,每個應用程式通常都有特別建構的作業系統、中介軟體和語言堆疊。大部分的指令碼和程序都是專為建構、測試和部署所設計。整體而言,這個應用程式架構會建立密切依賴關係,隨著時間經過會變得越來越難變更、測試、部署和操作系統。開始設計與部署時相當簡單,但很快就會變得複雜、難以改進,且操作困難。
相較之下,雲端原生應用程式充分運用現代基礎架構的動態分散式特性,進而獲得更高的速度、靈活性、擴充性、可靠性和成本效益。
雲端原生應用程式通常會透過使用技術與方法 (也稱作開發運作) 細分為多個獨立的服務,並持續推送軟體更新和持續整合容器、微服務和陳述式 API。這樣一來,團隊就能獨立部署及擴充元件,在不中斷服務的情況下進行更新、修正問題及發布新功能。
不過,雲端原生架構的基本概念仍是下列五大核心:
微服務:幾乎所有雲端架構都是以微服務為基礎,但其主要優點在於可組合性 - 細分應用程式為一系列較小的輕量服務,透過應用程式設計介面 (API) 輕鬆進行組合及連線。舉例來說,電子商務應用程式可能是由購物車的特定服務、付款服務,以及與庫存管理後端通訊相關的應用程式組成。此外,可組合性也能讓團隊在不中斷應用程式的其他部分的情況下,進行替換及重新組合元件,以滿足新的業務需求。
容器和自動化調度管理:容器是輕量的可執行元件,內含可在任何環境中執行程式碼所需的所有元素,包括應用程式原始碼和依附元件。容器提供工作負載可攜性,支援「建構一次即可隨處執行」程式碼,讓開發和部署作業變得更加簡單。這些容器也可獨立部署,因此有助於降低語言、程式庫和架構之間出現阻礙的機率。這樣的可攜性和靈活性,使得容器成為建構微服務架構的理想選擇。
隨著微服務數量的增加,容器自動化調度管理也很重要,以確保容器能和應用程式一樣順暢執行,。Kubernetes 等容器自動化調度管理平台可讓您監督及控管容器的執行位置和方式、修復任何故障,以及平衡容器之間的負載。
開發運作:如要開發雲端原生應用程式,必須改用靈活的交付方式,例如DevOps,可讓開發人員和 IT 營運團隊協同合作,自動化基礎架構和軟體推送程序開發運作能讓開發團隊和營運團隊更緊密地溝通,並且在共同用途上取得共識,進而打造文化和環境,加快應用程式的建構、測試及發布速度。
持續整合和持續推送軟體更新 (CI/CD):自動化技術可修復、擴充及部署系統,速度比人為更快。CI/CD pipeline 可自動建構、測試及部署應用程式變更,不必排定停機時間或等待維護期間。持續推送軟體更新可確保軟體發布更為可靠、風險更低,讓團隊能更迅速且頻繁地提供新服務和功能。
雲端和雲端原生之間確實存在差異。「雲端」是指雲端運算,也就是公司或個人為了存取運算資源而付費的隨選服務。
雖然「雲端原生」經常用來統稱在雲端中開發軟體的工具與技術,但這個詞不單和雲端採用有關。相反的,它指的是應用程式的建構和提供方式,而不只是應用程式的部署位置。在某些情況下,應用程式甚至可能無法在雲端執行。實務上您可以運用雲端原生原則建構應用程式,並在 on-premises 或混合式環境中執行。
加快創新速度 較小型的鬆耦合服務可讓團隊自主工作及開發。雲端原生方法可提升開發人員的工作效率和速度,讓開發人員能更輕鬆地創新。 | 發布程序穩定 開發人員可透過雲端原生架構快速建構、測試及部署新舊服務。這有助於加快產品與服務的上市速度,並降低部署風險。 | 擴充性 雲端原生架構採用基礎架構自動化技術,可縮短因人為錯誤而產生的停機時間。您可以視需求平衡負載,提升成本效益並提高效能。 |
降低費用 簡化軟體推送程序,降低推送更新和功能的成本。雲端原生應用程式也能共用資源和隨選使用,大幅降低營運成本。 | 提高可用性 雲端原生架構提供高可用性和穩定性,同時降低作業複雜度、簡化設定變更,並提供自動調度資源和自我修復功能。 | 可攜性 雲端原生應用程式幾乎可在任何位置執行,因此能輕鬆地移動至另一個環境,無須變更整個應用程式。 |
更佳的安全性 雲端原生應用程式可協助您減少受攻擊面,並更輕鬆地偵測及回應攻擊或新的安全漏洞。而且其按照標準化的部署和管理方式,也比較容易修補及更新。 | 提升法規遵循成效 大多數資料安全控管機制是在平台層級實施,因此在實作與展示雲端原生應用程式的法規遵循時,更加簡單且成本低廉。雲端服務供應商會持續遵循風險管理架構,您只要做好其餘的控管工作,就能輕鬆遵循法規。 |
加快創新速度
較小型的鬆耦合服務可讓團隊自主工作及開發。雲端原生方法可提升開發人員的工作效率和速度,讓開發人員能更輕鬆地創新。
發布程序穩定
開發人員可透過雲端原生架構快速建構、測試及部署新舊服務。這有助於加快產品與服務的上市速度,並降低部署風險。
擴充性
雲端原生架構採用基礎架構自動化技術,可縮短因人為錯誤而產生的停機時間。您可以視需求平衡負載,提升成本效益並提高效能。
降低費用
簡化軟體推送程序,降低推送更新和功能的成本。雲端原生應用程式也能共用資源和隨選使用,大幅降低營運成本。
提高可用性
雲端原生架構提供高可用性和穩定性,同時降低作業複雜度、簡化設定變更,並提供自動調度資源和自我修復功能。
可攜性
雲端原生應用程式幾乎可在任何位置執行,因此能輕鬆地移動至另一個環境,無須變更整個應用程式。
更佳的安全性
雲端原生應用程式可協助您減少受攻擊面,並更輕鬆地偵測及回應攻擊或新的安全漏洞。而且其按照標準化的部署和管理方式,也比較容易修補及更新。
提升法規遵循成效
大多數資料安全控管機制是在平台層級實施,因此在實作與展示雲端原生應用程式的法規遵循時,更加簡單且成本低廉。雲端服務供應商會持續遵循風險管理架構,您只要做好其餘的控管工作,就能輕鬆遵循法規。
儘管有很多雲端原生優勢,但這種模式還是需要考慮一些優缺點。除了導入新工具和技術之外,雲端原生運算並非總是易事。例如,想要成功發揮效用,就必須推動文化轉型。
一些常見的雲端原生挑戰包括:
不過,只要憑藉正確的專業知識和策略,上述問題並非無法克服。舉例來說,一開始不妨先採用「隨即轉移」遷移至雲端的簡單做法,但這無法帶來上述許多雲端原生優勢。許多機構在這個階段最後停滯不前,因為他們沒有預計到將架構重新打造雲端原生架構所需的費用和複雜性。
建議您不要將雲端原生專案視為多年的「同時全面改用」專案。相反地,您應該將其視為持續進行疊代的過程,以便同時學習和改善。