什麼是容器化?

對企業開發人員來說,確保應用程式在不同環境 (從本機筆電到開發用伺服器和正式環境基礎架構) 中穩定且一致地運作,是一項常見的難題。容器化是作業系統虛擬化的一種形式,可直接解決這個問題。這種方法是將應用程式及其所有依附元件 (例如程式庫和設定檔) 封裝成單一、獨立且可執行的單元,也就是容器。這種做法可提供一致的環境,確保在開發階段可行的內容,在正式環境中也能正常運作。

透過 GKE 容器化和自動調度管理應用程式

容器化的定義

容器化是一種軟體部署程序,可將應用程式的程式碼與執行所需的所有檔案和程式庫搭配成套。

這個獨立封裝的套件又稱「容器」,由於不需要專屬的客體作業系統,因此輕巧且可攜。容器會共用主機作業系統的核心,並在各自獨立的使用者空間中執行。這種隔離機制代表您可以在單一主機上執行多個容器,每個容器都有自己的依附元件,不必擔心彼此衝突。

容器化架構

容器化環境採用分層架構,從底層硬體一路往上到應用程式本身。

  • 基礎架構:這是基礎層,由實體伺服器或虛擬機器組成,提供 CPU、記憶體、儲存空間和網路資源。
  • 主機作業系統:主機作業系統 (例如 Linux) 位於基礎架構之上。這個作業系統的核心是重要元件,在主機上執行的所有容器都會共用這個元件。
  • 容器引擎:這是可啟用容器化的軟體,例如 Google Kubernetes Engine (GKE)。引擎會按照指示建立、執行及管理容器。
  • 應用程式層 (容器):最上層是容器本身。每個容器都包含應用程式的二進位檔和程式庫,但會共用主機作業系統核心,因此容器比傳統虛擬機器更輕巧且更有效率。

容器化如何運作?

容器化開發作業會依循有邏輯的逐步程序進行,將應用程式從原始碼轉換為獨立執行個體。

步驟 1:定義環境

首先,開發人員會建立檔案 (通常是 Dockerfile)。這個檔案就像一套食譜或一組說明,用於建構應用程式的環境,其中包含所有必要資訊,包括:

  • 做為起點的基礎映像檔 (例如特定版本的 Debian 或語言專屬的執行階段,如 Python 3.9)
  • 將應用程式原始碼複製到映像檔的指令
  • 安裝必要套件、程式庫和其他依附元件的操作說明
  • 容器啟動時要執行的指令
  • 做為起點的基礎映像檔 (例如特定版本的 Debian 或語言專屬的執行階段,如 Python 3.9)
  • 將應用程式原始碼複製到映像檔的指令
  • 安裝必要套件、程式庫和其他依附元件的操作說明
  • 容器啟動時要執行的指令

步驟 2:建構容器映像檔

開發人員會按照檔案中的指示,使用指令建立容器映像檔。這個映像檔是靜態、無法變更且可攜的檔案,可做為應用程式的獨立藍圖。它會將應用程式程式碼和所有依附元件封裝成單一分層套件。您可以將映像檔視為物件導向程式設計中的一個類別,也就是用於建立執行中執行個體的範本。

步驟 3:在註冊資料庫中儲存及發布映像檔

建構完成後,容器映像檔會推送至 Container Registry。註冊資料庫是中央存放區,用於儲存及管理映像檔。企業必須使用私密且安全的註冊資料庫,例如 Google 的 Artifact Registry。將映像檔儲存在註冊資料庫中,可讓團隊輕鬆共用、進行版本管控,並從正式環境中的任何伺服器存取。

步驟 4:執行容器

最後一步是建立映像檔的執行個體 (也就是容器本身)。系統會將指令傳送至容器引擎,從註冊資料庫執行特定映像檔。接著,引擎會使用主機作業系統的核心來執行下列動作:

  • 使用命名空間等核心功能,為容器建立獨立環境。如此一來,容器就擁有專屬的網路堆疊、程序樹狀圖和檔案系統檢視畫面,彷彿在自己的作業系統上執行。
  • 使用 cgroups 配置及限制 CPU 和記憶體等資源,確保單一容器無法獨占主機資源。
  • 執行原始檔案中定義的啟動指令,在獨立的沙箱環境中執行應用程式。
  • 使用命名空間等核心功能,為容器建立獨立環境。如此一來,容器就擁有專屬的網路堆疊、程序樹狀圖和檔案系統檢視畫面,彷彿在自己的作業系統上執行。
  • 使用 cgroups 配置及限制 CPU 和記憶體等資源,確保單一容器無法獨占主機資源。
  • 執行原始檔案中定義的啟動指令,在獨立的沙箱環境中執行應用程式。

雲端運算中的容器化

容器化是現代雲端運算的基礎技術,可支援各種架構模式。

概念

容器化的說明和作用

容器化是微服務架構的理想部署模型。每個容器都封裝了單一獨立服務,讓團隊能自主開發、部署及擴充服務。

容器可簡化將舊版應用程式遷移至雲端的程序。只要將應用程式「lift-and-shift」至容器,就能讓應用程式可攜,並在任何雲端供應商的基礎架構上執行。

容器的可攜性可確保應用程式在地端部署資料中心和公有雲環境中穩定運作,是順暢執行混合雲策略的關鍵。

這類雲端服務模型 (例如 Google Kubernetes Engine (GKE)) 可自動調度及管理容器,為您省去所有基礎架構管理工作,讓開發人員專心建構應用程式。

容器可讓您進一步控管作業環境和語言執行階段,而無伺服器則提供更高層次的抽象機制,無需管理伺服器。這兩種模式都有效,而且可以一起使用。(例如:容器通常用於執行無伺服器工作負載)。舉例來說,Cloud Run 採用容器化和無伺服器模式,讓您在無伺服器環境中部署容器映像檔。

虛擬化涉及建立完整的虛擬機器,包括專屬的客體 OS 和虛擬化硬體。容器化會將作業系統虛擬化,共用主機 OS 核心,使容器更輕量,啟動速度也更快。

容器映像檔的一致性,讓企業能在多個地理區域部署完全相同的應用程式構件,確保高準確度。這有助於確保應用程式行為一致,並簡化全球使用者的管理作業。

概念

容器化的說明和作用

容器化是微服務架構的理想部署模型。每個容器都封裝了單一獨立服務,讓團隊能自主開發、部署及擴充服務。

容器可簡化將舊版應用程式遷移至雲端的程序。只要將應用程式「lift-and-shift」至容器,就能讓應用程式可攜,並在任何雲端供應商的基礎架構上執行。

容器的可攜性可確保應用程式在地端部署資料中心和公有雲環境中穩定運作,是順暢執行混合雲策略的關鍵。

這類雲端服務模型 (例如 Google Kubernetes Engine (GKE)) 可自動調度及管理容器,為您省去所有基礎架構管理工作,讓開發人員專心建構應用程式。

容器可讓您進一步控管作業環境和語言執行階段,而無伺服器則提供更高層次的抽象機制,無需管理伺服器。這兩種模式都有效,而且可以一起使用。(例如:容器通常用於執行無伺服器工作負載)。舉例來說,Cloud Run 採用容器化和無伺服器模式,讓您在無伺服器環境中部署容器映像檔。

虛擬化涉及建立完整的虛擬機器,包括專屬的客體 OS 和虛擬化硬體。容器化會將作業系統虛擬化,共用主機 OS 核心,使容器更輕量,啟動速度也更快。

容器映像檔的一致性,讓企業能在多個地理區域部署完全相同的應用程式構件,確保高準確度。這有助於確保應用程式行為一致,並簡化全球使用者的管理作業。

容器化的優點

可攜性和一致性

容器化的主要優點是「建構一次即可隨處執行」的能力。容器會將應用程式及其依附元件封裝在一起,因此能建立可預測且一致的環境。這種一致性有助於消除常見的「在我的設備上可以運作」問題,確保應用程式在開發、測試和正式環境中的行為相同,無論底層基礎架構為何。

提高速度和靈活性

容器比傳統虛擬機器輕量許多,因為不需要自己的訪客作業系統。因此,容器能在幾秒內啟動和停止,而非幾分鐘,大幅加快開發週期,並實現更靈活的 CI/CD 管道。加快建構和部署速度,讓團隊能更快疊代應用程式。

提升資源效率

容器的負擔較低,因此能提高資源使用率。您可以在單一主機作業系統上執行多個容器,因此密度比 VM 高。透過這種有效率的「分裝」做法將應用程式裝入伺服器,讓企業減少伺服器佔據空間,並降低相關基礎架構成本。

程序和依附元件隔離

每個容器都會在各自獨立的使用者空間中執行,並有自己的程序樹狀圖和網路介面。這種隔離機制可確保容器化應用程式的程式庫和依附元件,不會與在同一主機上執行的其他容器化應用程式發生衝突。這項技術可簡化依附元件管理作業,並透過限制遭入侵應用程式的潛在影響,提升安全性。

簡化營運管理

容器化可將部署單位標準化。營運團隊可以管理容器,而不是整部機器或獨特的應用程式堆疊。這種統一做法可簡化部署、資源調度和監控作業,並透過 Kubernetes 等自動化調度管理平台,為強大的自動化功能奠定基礎。

快速擴充

容器輕量且啟動速度快,適合需要快速調度資源的應用程式。當應用程式的需求量突然增加時,可近乎立即佈建新的容器執行個體來處理負載。這種彈性擴充性可確保應用程式保持回應能力和可用性,免去大量人工作業。

透過 Google Cloud 解決業務難題

新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用各項 Google Cloud 功能。

工具有哪些容器化類型?

容器生態系統由多種工具組成,這些工具會相互搭配運作。

  • Container Engine:執行及管理容器的核心軟體。
  • 容器 Image Builder:用於根據定義檔建立容器映像檔的工具。
  • Container Registry:容器映像檔的儲存系統。Artifact Registry 是一項代管服務,可為容器映像檔提供安全、保障隱私的儲存空間。
  • 容器自動化調度管理平台:如要大規模管理容器,Kubernetes 等自動化調度管理平台是不可或缺的工具。這類平台可自動執行部署、資源調度及網路作業。Google Kubernetes Engine (GKE) 等代管服務提供可用於正式環境的自動化調度管理平台。
您希望解決什麼問題?
What you'll get:
逐步指南
參考架構
可用的預先建構解決方案
這項服務以 Vertex AI 建構,必須年滿 18 歲才能使用。請勿輸入個人資訊,或是敏感、機密的內容。

進一步瞭解容器化

展開下一步行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。