什麼是容器化?

容器化是一種軟體部署程序,可將應用程式的程式碼與在任何基礎設施上執行所需的所有檔案和程式庫繫結在一起。傳統上,若要在電腦上執行任何應用程式,必須安裝與電腦作業系統相符的版本。例如,您需要在 Windows 電腦上安裝 Windows 版軟體套件。然而,藉助容器化,您可以建立執行於所有類型裝置和作業系統的單一軟體套件或容器。 

容器化有什麼好處?

由於具有下列優勢,開發人員使用容器化來建置和部署現代應用程式。 

可攜性

軟體開發人員使用容器化在多個環境中部署應用程式,而無需重新撰寫程式碼。他們一次建置一個應用程式,並將其部署在多個作業系統上。例如,它們在 Linux 和 Windows 作業系統上執行相同的容器。開發人員也會使用容器進行部署,將舊版應用程式程式碼升級為新版本。

可擴展性

容器是可有效執行的輕量型軟體元件。例如,虛擬機器可以更快地啟動容器化應用程式,因為它不需要啟動作業系統。因此,軟體開發人員可以輕鬆地在單一機器上為不同應用程式新增多個容器。容器叢集會使用來自相同共用作業系統的運算資源,但其中一個容器不會干擾其他容器的操作。  

容錯能力

軟體開發團隊使用容器建置容錯應用程式。他們使用多個容器在雲端上執行微服務。由於容器化微服務在隔離的使用者空間中運作,因此單個故障容器不會影響其他容器。這會增加應用程式的彈性和可用性。

敏捷性

容器化應用程式可在隔離的運算環境中執行。軟體開發人員可以對應用程式碼進行故障排除和變更,而不會干擾作業系統、硬體或其他應用程式服務。它們可以縮短軟體發行週期,並使用容器模型快速進行更新。

什麼是容器化使用案例?

以下是一些容器化的使用案例。

雲端移轉

雲端遷移或隨即轉移法是一種軟體策略,涉及將舊式應用程式封裝在容器中,並將其部署至雲端運算環境。組織可以將應用程式現代化,而無須重新撰寫整個軟體程式碼。

採用微型服務架構

尋求使用微型服務來建置雲端應用程式的組織需要容器化技術。微型服務架構是一種軟體開發方法,其使用多個相互依存的軟體元件來提供功能性應用程式。每項微型服務都具有獨特的和特定的功能。現代雲端應用程式由多項微型服務組成。例如,影片串流應用程式可能具有用於資料處理、使用者追蹤、計費和個人化的微型服務。容器化提供軟體工具,以將微型服務封裝為不同平台上的可部署程式。

IoT 裝置

物聯網 (IoT) 裝置包含有限的運算資源,使手動軟體更新成為一個複雜的程序。藉助容器化,開發人員能夠輕鬆地跨 IoT 裝置部署和更新應用程式。

容器化如何運作?

容器化包括建立自給自足的軟體套件,這些套件不論在哪部機器上都可一致執行。軟體開發人員會建立並部署容器映像,即包含執行容器化應用程式所需資訊的檔案。開發人員使用容器化工具,根據 Open Container Initiative (OCI) 映像規格來建置容器映像。OCI 是一個開放原始碼群組,提供建立容器映像的標準化格式。容器映像是唯讀的,電腦系統無法變更。

容器映像是由以下幾層組成的容器化系統中的頂層。

基礎架構

基礎架構是容器模型的硬體層。它指的是執行容器化應用程式的實體電腦或裸機伺服器。 

作業系統

容器化架構的第二層是作業系統。Linux 是一種流行的作業系統,用於內部部署電腦的容器化。在雲端運算中,開發人員使用 AWS EC2 等雲端服務來執行容器化應用程式。 

容器引擎

容器引擎或容器執行階段是根據容器映像建立容器的軟體程式。它充當容器和作業系統之間的中介代理,提供和管理應用程序所需的資源。例如,容器引擎可以管理相同作業系統上的多個容器,方法是讓它們獨立於基礎架構和彼此。 

應用程式和相依性

容器化架構的最上層是應用程式碼和它需要執行的其他檔案,例如程式庫相依性和相關的組態檔案。此層也可能包含透過主機作業系統安裝的輕型訪客作業系統。

什麼是容器協同運作?

容器協同運作是一種允許自動管理容器的軟體技術。這對於現代雲端應用程式開發而言是必要的,因為應用程式在各自的容器中可能包含數千個微服務。大量的容器化微服務使軟體開發人員無法手動管理它們。

容器協同運作的優勢

開發人員使用容器協同運作工具來自動啟動、停止和管理容器。容器協調器可讓開發人員精確擴展雲端應用程式,並避免人為錯誤。例如,您可以驗證是否使用了來自主機平台的足夠資源部署容器。 

容器技術有哪些類型?

以下是開發人員用於容器化的一些常見技術範例。

Docker

Docker 或 Docker Engine 是一種流行的開放原始碼容器執行階段,可讓軟體開發人員在各種平台上建置、部署和測試容器化應用程式。Docker 容器是使用 Docker 架構建立的應用程式和相關檔案的獨立套件。

Linux

Linux 是一個具有內建容器技術的開放原始碼作業系統。Linux 容器是獨立的環境,可讓多個 Linux 應用程式在單一主機上執行。軟體開發人員使用 Linux 容器來部署可寫入或讀取大量資料的應用程式。Linux 容器不會將整個作業系統複製到其虛擬化環境中。相反,容器由 Linux 命名空間中分配的必要功能組成。  

Kubernetes

Kubernetes 是一種常見的開放原始碼容器協調器,軟體開發人員可使用它們來部署、擴展和管理大量微服務。它有一個宣告式模型,使容器自動化更容易。宣告式模型可確保 Kubernetes 會根據組態檔案採取適當的動作來滿足需求。 

什麼是虛擬機器?

虛擬機器 (VM) 是主機實體硬體和作業系統的數位副本。一台主機可能有多個虛擬機器共用其 CPU、儲存區和記憶體。管理程式是監控虛擬機器的軟體,它會將運算資源分配給所有虛擬機器,不論應用程式是否使用它們。

容器化與虛擬機器的比較

容器化是虛擬機器的一個類似但改進的概念。容器化不會複製硬體層,而是將作業系統層從獨立的環境中移除。這可讓應用程式獨立於主機作業系統執行。容器化可避免資源浪費,因為應用程式提供所需的確切資源。 

什麼是無伺服器運算?

無伺服器運算是指雲端運算技術,雲端供應商可利用該技術完全管理支援應用程式的伺服器基礎架構。這意味著開發人員和組織無需在雲端伺服器上設定、維護或佈建資源。憑藉無伺服器運算,組織能夠根據工作負載自動擴展運算資源。 

容器化與無伺服器運算的比較

無伺服器運算可讓您立即部署應用程式,因為這不涉及程式庫或組態檔案等相依項。當無伺服器應用程式閒置時,雲端廠商不會收取運算資源費用。另一方面,容器更可攜,讓開發人員能夠完全控制應用程式的環境。 

什麼是雲端原生?

雲端原生是一種軟體開發方法,它可在雲端中建置、測試和部署應用程式。術語雲端原生意味著應用程式誕生並駐留在雲端運算環境中。組織可建置雲端原生應用程式,因為它們具有高度擴展性、彈性和靈活性。

容器化與雲端原生的比較

與傳統單體式應用程式相比,雲端原生應用程式開發需要不同的技術和方法。容器化是允許開發人員建置雲端原生應用程式的技術之一。它可與其他雲端原生技術 (例如服務網格和 API) 搭配使用,使微服務在雲端原生應用程式中保持一致性運作。 

什麼是 AWS App2Container?

AWS App2Container 是一種容器化工具,可讓軟體開發人員將舊式應用程式現代化。開發人員使用 App2Container 將 Java 和 .NET 應用程式轉換為容器化應用程式:

  • App2Container 提供各種標準工具,可將以平台為基礎的現有應用程式遷移至 AWS 環境。
  • 使用 App2Container,開發人員可在擴展雲端應用程式時確保安全性。
  • 開發人員可使用 App2Container,在建立容器映像時簡化對相依項和組態的識別。

 立即註冊 AWS 帳戶,開始使用 AWS 上的容器化。

AWS 容器化後續步驟

查看額外的產品相關資源
進一步了解有關運算服務的資訊 
註冊免費帳戶

立即存取 AWS 免費方案。 

註冊 
開始在主控台進行建置

開始在 AWS 管理主控台使用 AWS 進行建置。

登入