選單

什麼是 Container?

主題
DevOps 解決方案

分享本頁

Container 是一種作業系統虛擬化的形式。單一 Container 可用於執行從小型微服務或軟體程序、到大型應用程式的任何作業。Container 內含所有必要的執行檔、二進位程式碼、程式庫和組態檔。不過,與伺服器或機器虛擬化方法相比,Container 不包含作業系統映像,這使它們更輕巧、更容易攜帶,而且例行成本也大幅降低。在較大型的應用程式部署中,可將多個 Container 部署為一或多個 Container 叢集,這類叢集可由 Container 協調工具加以管理,例如 Kubernetes。

Container 的優點

Container 是一種可在多個環境中建置、測試、部署和重新部署應用程式的簡化方式,其範圍從開發人員的本機筆記型電腦到內部部署資料中心,甚至是雲端皆可執行。Container 的優點包括:

  • 例行成本更低
    與傳統或硬體虛擬機器環境相比,Container 所需的系統資源較少,因為 Container 不含作業系統映像。
  • 可攜性更高
    在 Container 中執行的應用程式可輕鬆部署到多個不同的作業系統和硬體平台。
  • 作業更一致
    DevOps 開發維運團隊知道無論應用程式部署在何處,Container 中的應用程式都會執行相同的作業。
  • 效率更高
    Container 可讓應用程式更快速地部署、修補或擴充。
  • 更出色地完成應用程式開發
    Container 支援敏捷和 DevOps 開發維運作業,可加速開發、測試和正式作業週期。

Container 使用案例

組織使用 Container 的常見方式包括:

  • 將現有應用程式「負載平移」至現代化的雲端架構
    有些組織使用 Container 將現有應用程式移轉至更現代化的環境。雖然這種實務做法可提供關於作業系統虛擬化的一些基本效益,但卻不具備以 Container 為基礎的模組化應用程式架構的完整效益。
  • 為 Container 重構現有應用程式
    雖然重構比負載平移轉的工作更繁重,但它可以充分發揮 Container 環境的完整效益。
  • 開發新的 Container 原生應用程式
    這種方法與重構非常類似,可以充分發揮 Container 的完整效益。
  • 提供更好的微服務架構支援
    使用個別的 Container 建置區塊可以更輕鬆地隔離、部署和擴充分散的應用程式與微服務。
  • 提供 DevOps 開發維運支援以持續整合和部署 (CI/CD)
    Container 技術支援從相同的 Container 映像簡化建置、測試和部署。
  • 提供更輕鬆的重複工作與工作部署
    部署 Container 以支援一或多個類似的程序,這些程序通常會在背景執行,例如 ETL 功能或批次工作。

Docker 和 Kubernetes 與 Container 有何關聯?

需要 Container 環境的使用者可能聽說過兩種用於建置和管理 Container 的常用工具與平台,也就是 Docker 和 Kubernetes。

Docker 是一種熱門的執行時間環境,用於在容器內建立及建置軟體。它使用 Docker 映像(寫入時複製快照),在從開發到測試和正式作業的多種環境中部署容器化的應用程式或軟體。Docker 是以開放式標準和功能為基礎,建置在最常見的作業環境中,包括 Linux 、Microsoft Windows 以及其他內部部署或雲端型基礎架構。

然而、容器化應用程式可能會變得複雜。在正式作業中,許多應用程式可能需要數百到數千個獨立的 Container。在這種情況下,Docker 等 Container 執行時間環境會因為使用其他工具來協調或管理所有運作中的 Container 而受惠。

其中最受歡迎的工具之一是 Kubernetes,它是一種 Container 協調工具,可辨識多個 Container 執行時間環境,其中包括 Docker。

Kubernetes 可協調多個 Container 的運作,使其彼此協調一致。它管理的領域包括用於容器化應用程式的底層基礎架構資源,例如所需的運算、網路和儲存資源數量。Kubernetes 之類的協調工具可讓您更輕鬆地自動化和擴充目前正式作業環境中的容器型工作負載。

Container 與虛擬機器 (VM)

人們有時會將 Container 技術與虛擬機器 (VM) 或伺服器虛擬化技術混淆,它們雖然有一些基本的相似點,但 Container 與 VM 的差異頗大。

虛擬機器是在 Hypervisor 環境中執行,每個虛擬機器必須在其中包含自己的客體作業系統,以及相關的二進位檔、程式庫和應用程式檔案。尤其是當多個 VM 在同一部實體伺服器上執行時,因為每部 VM 都有自己的客體作業系統,這會消耗大量的系統資源和例行成本。

相較之下,每個 Container 共用相同的主機作業系統或系統核心,而且規模較小,通常只有幾 MB,這表示 Container 可能只需幾秒鐘就能啟動(相較於典型 VM 所需的 GB 容量和幾分鐘時間)。

NetApp 和 Container

NetApp 對容器技術充滿信心,並致力開發經得起考驗的工具與創新技術,以便為任何位置的任何應用程式提供及管理持續儲存空間。開發 Trident 就是其中一個重要例子,Trident 讓容器化應用程式能夠更輕鬆地隨需使用持續儲存空間。

我們正積極致力於透過提升軟體開發的速度與敏捷度來加速 DevOps 開發維運。使用諸如儲存設備等基礎架構資源應該是件很容易的事,NetApp 致力於透過 Container 管理解決方案和其他可幫助應用程式更輕鬆擴充及跨越各種平台的解決方案來實現這項目標。

相關解決方案與產品

DevOps 解決方案

全球資料管理與儲存領導廠商的成功案例

將安全通訊變成客戶洞見

Bandwidth 是一家 API 平台供應商,每天傳輸接通數百萬人的語音、簡訊和 911 服務。Bandwidth 的開發人員一直堅持不懈地追求創新,目的就是發展公司平台,加速將新服務推向市場。

瑞士銀行透過 NetApp Flash 和 MetroCluster IP 保存無處不在的檔案

PostFinance 仰賴專為瑞士市場開發或調整的前瞻性工具和技術,NetApp® 系統提供的檔案資料可確保銀行交易安全,並透過持續儲存來加速金融產品與服務的開發。  

看著過監視器分析的人
Drift chat loading