雲端戰略佈局:Kubernetes 如何簡化混合雲的部署與管理

隨著越來越多的企業使用公有雲,他們將面臨一系列重要的決策,例如:使用哪些技術、採用哪一家雲端供應商、如何運維和管理資源、以及如何部署應用程式?如果您在軟體設計上投入了大量時間、金錢、精力,您是否該在混合雲中無縫部署並管理此軟體,以避免產生重寫成本?如何擴展軟體以滿足客戶需求?您是否希望根據商業價值決定軟體部署在雲端還是地端機房?

本文將討論 Kubernetes 如何解決企業混合雲部署、管理、運維等問題,最後更提供可以優化您混合雲策略的其他資源。

什麼是 Kubernetes?

Kubernetes 究竟是什麼?根據維基百科的說明,「Kubernetes 是一個開源容器編排系統,用於自動化及容器化的部署、擴展和管理應用程式。」而對於某些人來說,這個定義可能還不夠。

換句話說,Kubernetes 提供了一套標準,協助您執行應用程式並確保應用程式能應付不同的流量。Kubernetes 在後續還可以升級、監視和日誌記錄等操作。

過去面臨的問題

儘管企業試圖將「應用程式部署在資料中心」設定標準流程,但隨著新技術的發展則需要越來越多特定的設定方式。隨著時間的推移,管理這些特定的設定並瞭解之間的差異變得十分有挑戰性,甚至需要大量說明文件,以了解如何管理和保持資料中心的運作。

過去標準的做法是在資料中心建立大量的「雪花」(snowflakes)。 也就是每個項目就像雪花一樣,有著獨特的要求和配置。但時間久了,項目累積會難以管理。企業很難事先預估用戶流量及正確的基礎設施需求,最後伺服器大多往往處於空閒狀態。安裝操作系統更新和部署新版本的應用程式需要一些停機時間,通常會在離峰時間完成這項工作。

混合雲可以帶來什麼好處?

Kubernetes 是混合雲策略的基礎,它提供了一致性,無論是部署在地端機房還是部署到一至多個公有雲。基於 Kubernetes 開源的特性,您有幾個選項可選擇:

  • 在開源的 Kubernetes 上搭建您的叢集
  • 購買廠商根據開源的 Kubernetes 所建構出的付費方案
  • 使用公有雲產品

Kubernetes 讓您可以在任何環境擁有一樣的平台。您可以基於商務需求選擇您要將應用程式部署在哪個環境。想像這樣一句話:「我們目前需要在本地機房運行此服務,並在六個月後於中國境內運行。」有了 Kubernetes,您很容易做到這一點。

部署服務後,必須確保它持續進行,並且可以根據不同需求進行擴展。透過 Kubernetes,該平台具備自動擴展的能力,可以更好地利用底層基礎架構。部署應用程式只是第一步,後續的操作更加重要。 例如:發布新軟體版本時,您可以自動升級軟體並避免停機,企業可以提供更好的客戶體驗。

Kubernetes 與 Google

在背後管理 Google 龐大基礎設施的是一項名為「Borg」的技術。隨著「Borg」的發展逐漸成熟,它成為 Google 最重要的技術之一,由於不能直接將 Borg 開源,因此 Google 開發人員決定創建一個名為 Kubernetes 的開源項目,將在 Google 學到「管理數十億個容器 (container)」 的知識並將其帶到全世界。

開源世界熱情地敞開大門,Kubernetes 發展不斷壯大,已擁有超過 1,700 名貢獻者。RedHat、微軟、IBM、Intel、Pivotal、VMware 等公司都正積極的發展 Kubernetes。

Google 在 Google Cloud Platform (GCP) 上提供了一個名為 Google Kubernetes Engine (GKE) 的 Kubernetes 託管版本。GKE 不僅提供合規的企業級安全加固環境、操作系統、Kubernetes 零停機升級。

GCP 另一個產品:Stackdriver,它為您的容器、應用程式、基礎架構提供監控和管理。Stackdriver 可以幫助您了解應用程式和 Kubernetes 的運行方式,同時 Stackdriver 也將為您提供了很好的建議,甚至您可以在不停機的情況下在正式環境中進行 Debug。最重要的是,Stackdriver 可與其他雲端平台和本地機房配合使用,讓您深入了解各處運行的狀況。

Next 大會上,Google 推出 GKE On-Prem 服務,該服務將 GKE 體驗帶入您的資料中心。現在,您只需要一個視窗,就可以管理所有 Kubernetes 集群。GKE On-Prem 與 Stackdriver 的結合,能讓您在一個綜合報表中得到所有 Kubernetes 的環境指標、日誌記錄、中繼資料,並且更快速的採取行動。

將兩者相結合

現在您已經了解了 Kubernetes 是如何為混合雲奠定基礎,再來還需要做甚麼將所有內容整合在一起呢?答案就是自動化。這是網站可靠性工程 (SRE) 的基本原則之一,Google 為運行在其生產系統上的服務而創建的。

為了讓自動化應用程式的「構建」、「測試」、「部署」更加容易,許多企業正在採用 CI/CD 管道。同時,一些企業正在透過此管道部署其基礎設施。當您將資料中心擴展到公有雲以外時,使用自動化更加重要,這樣您就可以建立可重複的流程,進而顯著降低手動流程所導致錯誤的可能性。

例如:下圖顯示如何透過 Spinnaker 的 CI / CD 管道在混合雲中將應用程式自動部署到 AWS 和 GCP。當開發人員 check in 程式碼時,像是 JenkinsConcourse 的 CI / CD 管道就會啟動,開始構建應用程式並運行測試。接著,系統會觸發 Spinnaker 獲取工件 (artifacts) 並將其部署到 AWS 和 GCP。

結論

選擇混合雲策略並不容易,因為直到現在,能在不同平台上提供一致體驗的仍然很少。 透過 Google 的創新和進步,您可以使用開源的混合雲模型,並且安全、大規模的部署服務。GKE、GKE On-Prem、Stackdriver 及許多其他應用程式的開發/分析服務,能讓您在實體機房和跨雲環境中實踐應用程式環境現代化。GCP 讓您可以更專注的撰寫應用程式;更輕鬆地部署、管理和操作,因為 Google 會處理底層基礎架構和運營問題,您可以更專注在如何增加您的商業價值。

延伸閱讀

(原文出自 Google Cloud。)

 

相關文章

Skaffold:可重複性使用的簡單 Kubernetes 開發工具

運用容器化架構及微服務架構,升級企業 IT 環境(1)

Google Cloud NEXT 2019 大會重點整理:Google 推出 Anthos 平台進攻混合雲戰場,協助企業進行數位化轉型


連絡「GCP 專門家」