
閑聊云服務(wù)技術(shù)系列#1--OpenStack
閑聊云服務(wù)技術(shù)系列#3--Kubernetes
云計(jì)算相關(guān)話題已經(jīng)寫了3篇,準(zhǔn)備再寫一篇,給這個(gè)系列做一個(gè)階段性的結(jié)尾,最后選擇了Mesos這個(gè)社區(qū)里又一個(gè)明星產(chǎn)品作為結(jié)尾。
回顧Mesos的歷史,其實(shí)Mesos并不是為Docker而生的,Mesos 始于加州大學(xué)伯克利分校UC Berkeley的下一代容器集群管理器項(xiàng)目,并應(yīng)用了從云計(jì)算級(jí)別的分布式基礎(chǔ)架構(gòu)中習(xí)得的經(jīng)驗(yàn)和教訓(xùn)。它產(chǎn)生的初衷是為spark做集群管理。而且,Mesos有自己的容器隔離,后來,隨著Docker的崛起,Mesos就開始支持Docker容器了。有了Docker助力,大家就開始去嘗試Mesos了。
Mesos 獨(dú)有的獨(dú)立管理各種工作負(fù)載的能力,包括 Java 這樣的傳統(tǒng)應(yīng)用程序、無狀態(tài) Docker 微服務(wù)、批處理作業(yè)、實(shí)時(shí)分析和有狀態(tài)的分布式數(shù)據(jù)服務(wù)。Mesos 廣泛的工作負(fù)載覆蓋來自于其兩級(jí)架構(gòu),從而實(shí)現(xiàn)了“應(yīng)用感知”調(diào)度。通過將應(yīng)用程序特定的操作邏輯封裝在“Mesos 框架”中來實(shí)現(xiàn)應(yīng)用程序感知調(diào)度。
資源管理策略Dominant Resource Fairness(DRF), 這是Mesos的核心,也是我們把Mesos比作分布式系統(tǒng)Kernel的根本原因。通俗講,Mesos能夠保證集群內(nèi)的所有用戶有平等的機(jī)會(huì)使用集群內(nèi)的資源,這里的資源包括CPU,內(nèi)存,磁盤等等。
Mesos Master資源管理器,提供這些底層基礎(chǔ)設(shè)施的框架部分,同時(shí)保持隔離。這種方法允許每個(gè)工作負(fù)載有自己專用的應(yīng)用程序調(diào)度器,它了解其對部署、縮放和升級(jí)的具體操作需求。應(yīng)用程序調(diào)度程序也獨(dú)立地被開發(fā)、管理和更新,這讓Mesos保持高度可擴(kuò)展性,支持新的工作負(fù)載,或者隨著時(shí)間的推移增加更多的操作能力。
很多朋友拿Kubernetes和Mesos進(jìn)行對比,Mesos更側(cè)重底層資源的管理,Kubernetes側(cè)重業(yè)務(wù)層的調(diào)度,容器服務(wù)編排,服務(wù)發(fā)現(xiàn)等。其實(shí)Kubernetes也可以運(yùn)行在Mesos上,也可以選擇兩者結(jié)合。Mesos相當(dāng)于一堆積木,通過組裝實(shí)現(xiàn)自己的業(yè)務(wù)模型,而Kubernetes已經(jīng)是組裝好的積木,直接拿來用就好了。
如果我們想構(gòu)建一個(gè)可靠的平臺(tái),用以運(yùn)行多任務(wù)關(guān)鍵工作負(fù)載,包括Docker容器和分布式數(shù)據(jù)服務(wù)(例如Spark、Kafka、Cassandra),并希望所有這些都可以在云或數(shù)據(jù)中心上可移植,那么,Mesos就是最適合的。