Docker發布新的跨容器的分布式應用編排服務

jopen 9年前發布 | 11K 次閱讀 Docker

在剛剛結束的歐洲 DockerCon,Docker 發布了跨容器的分布式應用編排服務,編排服務可以幫助開發者和運維人員創建并管理新一代的可移植的分布式應用程序,新一代的分布式應用程序是由獨立且互通 的 Docker 容器快速組合而成,他們有動態的生命周期,并且可以在任何地方以可擴展的方式運行,不管是在開發者的筆記本上,還是在云端。

  “一開始用戶在幾臺主機上運行少量的 Docker 容器,但是現在他們已經在集群和不同的基礎設施中運行了大量的 Docker 容器,我們需要滿足用戶的需求,這非常重要”。Docker 的創始人兼 CTO Solomon Hykes 說道。“編排服務開放了原生的接口,可以保證應用的可移植性,并通過一個通用的 UI 整合了生態圈中的 18000 個工具和 60000 個容器化的應用。”

  Docker 編排服務已經得到了很多合作伙伴的支持,包括 Cisco、Digital Ocean、HP、IBM、Mesosphere、Microsoft 和 VMware。

  Docker 平臺加強了跨容器的分布式應用能力

  Docker 編排功能在開放平臺的基礎上構建,開放平臺能夠創建企業級標準的 Docker 容器:將分散的應用服務打包到可交互、可迭代、可隨處運行的容器中。Docker 編排服務可以滿足企業從整體式的應用轉移到容器化的分布式應用的需求,因為編排這些分布式應用需要多個容器、多個主機以及可以在這些設施中運行的工具和通 用 UI。

  編排服務為應用的開發和運維提供了一種新的方式

  Docker 的編排功能由 3 個新的平臺服務組成,它們覆蓋了分布式應用的所有動態生命周期,當新的代碼或者新的容器化服務改變時,應用可以在幾分鐘內部署到生產環境,而不是像之前一 樣需要幾個月。Docker 的編排服務是目前市場上功能最全面的服務,它們獨特的模塊化結構決定了其可以被不同的人員使用,包括開發者、運維人員以及其它合作伙伴。比如它其中就有一 項服務可以幫助開發人員方便地創建分布式的應用程序棧,而另外一個服務可以重點處理集群以及運維團隊的問題。

  這三個新的編排服務分別是:

  Docker Machine:這項服務進一步擴展了分布式應用的可移植能力,它為用戶提供了靈活的功能,用戶可以在任何主機上運行 Docker 容器,不管是筆記本、數據中心 VM 還是云端。這大幅度減少了開發者在手動設置、自定義腳本的時間,可以加快迭代和研發周期。

  具體來說,Docker Machine 是一個簡化 Docker 安裝的命令行工具,通過一個簡單的命令行即可在相應的平臺上安裝 Docker,比如 VirtualBox、 Digital Ocean、Microsoft Azure。Docker 官方是這樣介紹 Machine 的初衷的。

  Machine 做事也很聰明,很符合 Docker 公司的做事風格,他們號稱自己架構很好,方便第三方集成。所以 Machine 現在只支持有限的幾個平臺(VirtualBox、 Digital Ocean、Microsoft Azure),其它平臺的兼容留給那些愛 Docker 的第三方廠商以及開發者去做吧。所以接下來一定會有很多的廠商跟進,比如國內阿里云之類的,他們根據官方的接口開發個 Driver 即可加入 Machine 的能力。

  需要注意的是 Machine 是完全獨立于 Docker 項目的,目前的主要維護者是也是一位叫 Ben 的人,當然還是使用 Go 語言。GitHub 地址:https://github.com/docker/machine

  Docker Swarm:Docker Swarm 是一個支持 Docker 容器(由 Docker Machine 提供)的原生的集群服務,它在分布式的應用運行的主機提供了一個資源池。相比于手動管理資源的低效率以及易出錯的問題,Docker Swarm 可以自動平衡容器工作負載和分配資源,它更加高效。在行業中,Docker Swarm 是獨一無二的,它是專門為從開發到運維的一個持續的生命周期而設計的。開發者可以在生產環境的幾臺機器上測試集群服務,同時運維團隊可以使用相同的工具在 不同的架構中的上百臺主機上擴展相同的應用程序。Docker Swarm API 支持插件化的集群實現,以便客戶選擇其它的高可擴展的解決方案,比如 Mesosphere 需要管理上千個節點的容器。


  Docker Swarm 是一個 Docker 集群的控制工具,而對外部來說它就像一個虛擬的單主機。Swarm 使用了標準的 Docker API,所以 Docker 生態中的任何工具,比如 Docker client、dokku、fig、krane、flynn、deis、docker-ui、shipyard、drone.io、Jenkins 等,都能和 Swarm 對話。GitHub 地址:https://github.com/docker/swarm/

  Docker Compose:這項服務為開發者提供了應用組合的能力,這些應用基于獨立于任何底層基礎設 施的分散的、可交互的 Docker 容器之上構建,以便于分布式的應用棧可以隨時隨地部署并遷移。Docker Compose 通過一個簡單的 YAML 配置文件來定義分布式的應用程序棧以及依賴,這樣一個復雜的過程通過幾次鍵盤輸入就可以完成。這個強大的功能也就意味著一個新的集群應用可以在幾分鐘之內 構建完成,而這在之前是不可思議的。GitHub 上的說明:https://github.com/docker/docker/issues/9459

  原文鏈接: