NetApp Tech OnTap NetApp Logo
NetApp Tech OnTap
     
利用 Docker Container (容器) 技術迅速提供應用程式
Melissa Palmer
Melissa Palmer
NetApp 系統工程師

身為 NetApp 系統工程師,我經常留意讓客戶提升業務效率的新技術。NetApp 在 2015 年技術預測中提到一項快速成長的新技術,名為 Docker。「Docker 將會取代 Hypervisor,成為人們在橫向擴充應用程式時當做容器的選擇」,我完全同意這項看法。

我的專業背景是虛擬化技術,也積極參與虛擬化社群的活動,我曾擔任兩年的 vExpert,而 Docker 曾是為我指引方向的雷達。去年 11 月,我參加了線上虛擬化社群 Virtual Design Master(我協助經營的社群)舉辦的 30 天部落格挑戰(在 30 天內發表 30 篇部落格文章!)在挑戰期間,我曾發表幾篇有關 Docker 的部落格文章,自此之後便持續關注這個主題,對於 Tech OnTap 邀請我分享對 Docker 的看法,本人感到萬分榮幸。

什麼是 Docker?

在當代的技術趨勢中,有許多著重從硬體中將基礎架構抽離出來,而 Docker 是一種開放原始碼平台,能進一步從伺服器作業系統將其中執行的應用程式抽離出來。它能在單一作業系統執行個體上的容器內執行應用程式,而不需為每個應用程式建置一個虛擬機器。

Container (容器)

您可以在任何支援 Docker Engine(即 Docker 大腦)的平台上執行輕量型容器。不論是資料中心內的 Linux 伺服器、Windows 筆記型電腦或雲端環境,Docker Engine 幾乎能在所有場合中運作。Docker 容器則無論使用哪種基礎架構,都能以相同的方式運作。Docker 幾乎能在任何場所運作的能力,使其得以提供新的應用程式抽象層,成為建置、交付及執行分散式應用程式更簡便的方法,組織也因此能敏捷地根據需求而迅速且便利地擴充應用程式,並縮短上市時間。

Docker Hub

Docker 生態系統的另一個重要元件是 Docker Hub,這個集中式儲存庫用來存放 Docker 映像,以供在 Docker 社群內重複使用及共享。Docker Hub 內有幾個官方 Docker 儲存庫,例如 Ubuntu、mongoDB 及 Java,這些儲存庫有助於開發人員使用 Docker,因為他們能從 Docker Hub 取得官方映像、根據需求予以修改,然後將修改過的映像傳回 Docker Hub 以便小組成員或 Docker 社群存取。

有許多開發人員已在單一或一組容器內建立了預先封裝的 Web 伺服器來搭配資料庫與 NoSQL 環境,讓組織內外的其他部署團隊能夠使用。隨著 Docker 日漸普及,軟體廠商也開始利用容器形式提供產品。

對於需要將所有 Docker 活動限制在防火牆後方的組織,市面上也有企業版本的 Docker Hub 可供選擇。

虛擬機器就像是 Container(容器),對嗎?

不盡然。Docker Engine 不是 VMware ESXi 之類的 Hypervisor,它能在實體硬體、Hypervisor 上的虛擬機器或雲端平台上運作。虛擬機器擁有特定組態,包括作業系統,以及特定應用程式在該虛擬機器中運作所需的其他所有元件。

主要差異在於,每部虛擬機器都必須有一套自己專用的作業系統,這意味著使用者可能需要負擔諸如授權、作業系統專用組態及架構相依性等項目的額外支出。

Docker 容器含有一或多個應用程式以及應用程式運作所需的共享資源(例如二進位檔與程式庫)。您可以試想一下,當所有應用程式元件都在同一作業系統上的容器中運作時,能夠產生多好的效率。

一旦您將所有應用程式元件放入容器中,該容器便成為確保應用程式與工作負載彼此隔離的邏輯架構,憑藉這樣的特性,您可以利用多個應用程式來執行多租戶環境,而不需要擔心這些應用程式會相互干擾。

圖 1)虛擬機器與容器的比較。

虛擬機器與容器的比較。

資料來源:2015 年 NetApp 資料

Docker 與雲端

不論您是執行混合式雲端、公有雲端或私有雲端,Docker 的設計都能滿足雲端策略的需求。有許多像 Amazon Web Services (AWS) 這樣的超大規模雲端供應商,也都支援 Docker。由於可在幾分鐘內啟動測試用的新環境,因此 Docker 非常適合用於開發作業。Docker 容器在工作站上或資料中心內的行為並無相異之處,所以 AWS 之類的服務對於 Docker 開發人員來說將會是一大利器。

DevOps 支援

Docker 也能為營運團隊帶來多樣化的效益。應用程式環境不論是在內部或雲端上執行,Docker 都能以相同的方式支援,簡化動態應用程式的管理。

有許多組織已開始實作 DevOps 方法,以期進一步簡化他們的上市途徑。Docker 能搭配功能強大的經典 DevOps 工具,例如 Ansible 等自動化引擎,如此一來,您就能輕鬆整合現有與全新的開發程序,打造能隨處運作且效能驚人的自動化基礎架構。

社群專案也正在推動 Docker 生態系統之協調與部署工具的開發。此外,Docker, Inc. 已開發出叢集化與撰寫程式專用的 Machine、Swarm 及 Compose 建置與協調產品,對於積極開發工具讓 Docker 更平易近人的 Docker 社群來說,這類創新技術只是初試啼聲之作。

為 Docker 配置儲存資源

Docker 容器能在易於管理的環境內運用各種儲存設備。為 Docker 環境提供儲存服務的主要方法有兩種:

  • 在 Docker 容器內配置 Volume:您可以建立新的 Volume 並從 Docker 容器內部掛載,也可以從執行 Docker Engine 的主機作業系統將 Volume 掛載到 Docker 容器。
  • 建立資料 Volume 容器:您通常可以使用個別的資料 Volume 容器來搭配非持續性 Docker 容器, 例如,橫向擴充應用程式可以使用資料 Volume 容器來儲存持續性資料,因此您可在不遺失資料的情況下根據需求而橫向擴充或停止擴充多個 Docker 容器。

Docker 與 NetApp 叢集式 Data ONTAP

到目前為止,您可能會覺得 Docker 與 NetApp® 叢集式 Data ONTAP® 的運作方式有些雷同之處。叢集式 Data ONTAP 能當做 CPU、記憶體及磁碟機等儲存硬體的抽象層,不論該系統使用的磁碟機是 SATA、SAS 或 SSD。對於在 Data ONTAP 上運作的儲存虛擬機器 (SVM),其運作方式與在 Docker Engine 上運作的 Docker 容器非常相似。每部 SVM 都能擁有自己的命名空間,因此能夠簡化對 Docker 這類橫向擴充環境的支援。

Data Fabric 將效益延伸到雲端

NetApp 正利用其 Data Fabric 方法將叢集式 Data ONTAP 抽象化的優勢延伸到雲端,而 Docker 簡易的跨平台與跨雲端管理特性,恰恰符合採用 NetApp 技術之 Data Fabric 的需求。 您可以在資料中心內使用 FAS 儲存系統來執行 Docker,再使用 NetApp 雲端私有儲存設備解決方案(適用於 AWS、SoftLayer 及 Azure)或 Cloud ONTAP(適用於 AWS),在不變更環境的情況下將整個環境搬移到雲端,然後在任何位置使用相同的工具來執行所有資料管理作業。

若要深入瞭解部署 Docker 來搭配叢集式 Data ONTAP 的相關資訊,請閱讀白皮書《改善及加速混合式雲端環境之開發 / 營運作業的 NetApp 與 Docker 技術》。

搶搭 Docker 容器順風船

您可能會問「何時該搭上 Docker 這艘船?」答案取決於您的業務需求。Docker 能讓您改善開發與部署程序,縮短軟體的交付時間並提高品質,因此許多組織是在想要實作或升級應用程式時引進 Docker 平台。

Docker 的部署出乎意料地簡單,不論是在筆記型電腦上執行 Docker 或在 AWS 上執行,都是可行之道。在背後支持 Docker 的開放原始碼社群能夠提供大量資訊,您甚至可以在他們的網站上使用模擬器來測試 Docker,以便實際體驗 Docker 的基本概念。與 Ansible、Azure、AWS 及 OpenStack 等基礎架構元件的整合,就是 Docker 迅速成長與普及的最佳見證。

Docker 及持續發展的應用程式與服務容器化,對某些公司來說是一大轉變,最棒的是,在這段路上您隨時會遇到志同道合的夥伴。不論是部署團隊想要尋找更敏捷的程式碼部署與測試方法,抑或是營運團隊想在開發、測試及生產環境尋找能夠一致運作的方法,您都有機會找到見證 Docker 強大功能的使用案例。現在正是一窺這項符合 NetApp Data Fabric 願景之創新技術的好時機。

NetApp 系統工程師 Melissa Palmer

Melissa Palmer 將在部落格中定期發表有關 Docker、虛擬化、雲端及其他熱門技術主題的文章,她的部落格 vMiss.net: Secret Diary of a VM Girl 最近獲 vSphere-land.com 選為 2015 年最佳新部落格。如需詳細資訊,請參訪 vMiss.net

Tech OnTap
立即訂閱
Tech OnTap 每月提供 IT 見解,並有大量可助您瞭解真實世界的最佳實務做法、工作祕訣與工具、幕後工程訪談、示範、同儕評論,及更多其他相關資訊。

請到 NetApp 社群中瀏覽 Tech OnTap,立即訂閱這份實用資訊。

Microsoft 的 Docker 支援

2014 年 10 月,Microsoft 與 Docker 發表整合 Windows Server 生態系統與 Docker 社群的計畫。這點為什麼很重要?因為有很多應用程式是在 Windows 伺服器上執行,無論是在資料中心內、在雲端上,或是在 Azure 上。近期的 Azure-cloud-in-a-box 發表 讓眾人不禁將目光投射到 Microsoft 生態系統中的 Docker。

藉由在 Windows 平台上加入 Docker 功能,您可以將兩個領域中最棒的特性集結在一起。現在組織不僅能夠取用各種 Windows 組態管理與修補程式管理功能,而且開發人員可充分善用敏捷、快速、可重製及可預期之容器的效益。容器在現有 Windows 基礎架構上的可用度,將是吸引大量投資 Windows 之企業關注的要素。Microsoft 也正試圖以 Docker 託管目標的形式,在 Hyper-V 上支援相同的功能集。

TRUSTe
與我們連絡   |  如何購買   |   意見反應   |  工作機會  |   訂閱   |  隱私權政策   |   © 2015 NetApp