mesos是開源分散式資源管理框架,一個通用資源管理平台,用於收集各個節點上的計算資源然後提供給運行在mesos上的應用框架來使用;docker是一個開源的應用容器引擎,用於建立和管理容器。
本教學操作環境:linux7.3系統、docker-1.13.1版、Dell G3電腦。
mesos
Mesos:Mesos是通用資源管理平台,它所管理的核心目標物件既不是虛擬機/實體機,也不是容器,而是各種各樣的運算資源(CPU、memory、disk、port、GPU等等)。
Mesos會收集各個節點上的計算資源然後提供給運行在它之上的應用框架(例如:Spark、Marathon、甚至是Kubernetes)來使用,應用框架可以將收到的計算資源以自己喜歡的任何方式創建成計算任務來完成特定工作(例如:創建一個大數據任務計算個π什麼的)。由於容器技術近年來的火熱,Mesos也對容器進行非常深層的支持,它內部完整地實現了一個容器運行時(類似於Docker),所以,上層的應用框架可以方便地把自己的計算任務以容器的方式在Mesos管理的運算叢集中運作起來。
使用Mesos的門檻相對較高(需要應用框架編寫程式碼呼叫Mesos的API和其整合),但一旦用起來之後靈活性和可擴展性更高,因為Mesos並不限制應用框架如何使用運算資源(可以以容器的方式使用,也可以是其它方式,例如:傳統的進程),主動權完全在應用框架自己手中。
作為對比,Kubernetes只能管理容器,所有任務都必須以容器的方式來運作。為了解決門檻較高的問題(當然也是為了賺錢),Mesosphere(Mesos這個開源專案背後的商業公司)推出了DC/OS,其核心就是Mesos加一個內建的應用程式框架Marathon(可以用做容器編排),能夠達到開箱即用的效果,安裝好之後立刻就可以建立和管理容器和非容器類別的任務了。
Mesos 厲害之處在於資料中心資源統一管理,可以為多個框架分配資源,但不負責調度,可視為分散式作業系統內核,也可以部署在OpenStack 上,也支援實體資源。如果只用容器,Kubernetes 是不二之選;如果是運作的不僅僅是容器化的應用,Mesos 配合 Marathon 調度框架甚至 Kubernetes 都不錯。
Mesos是Apache的頂級開源項目,是最早期的提出二級資源調度開發Kernel,透過客製化上面的編排工具,可以快速自訂一套自家的PaaS解決方案,非常受開發者喜歡。畢竟在一家公司不做出一點驚天地泣鬼神的業績,也不好對上級交代。所以,Mesos是製作分散式系統最佳的基礎元件平台。
docker
Docker 是一個開源的應用程式容器引擎,讓開發者可以打包他們的應用程式以及依賴套件到一個可移植的映像中。
Docker:這裡我假定你指的是Docker engine(也叫做Docker daemon,或最新的名字:Moby),它是一種容器運行時(container runtime)的實現,而且是最主流的實現,幾乎就是容器業界的事實標準。
Docker是用來建立和管理容器的,它和容器的關係就好比Hypervisor(例如:KVM)和虛擬機器之間的關係。
當然,Docker公司對Docker engine本身的定位和期望不僅僅在於在單機上管理容器,所以近年來一直在向Docker engine中加入各種各樣的高級功能,例如:組建多節點的Docker叢集、容器編排、服務發現,等等。
推薦學習:《docker影片教學》
以上是mesos和docker是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!