內容簡介
《Mesos:大數據資源調度與大規模容器運行最佳實踐》結合大量實例介紹了Mesos 的使用方法、核心原理及框架開發的相關內容。通過這些內容讀者可以在數據中心環境中利用Mesos搭建分散式系統、進行大數據分析及開發分散式套用。
《Mesos:大數據資源調度與大規模容器運行最佳實踐》分為8章分別從使用、開發和運維等角度全面展示了Mesos 作為數據中心核心的強大能力、設計方面的精髓及在工程中的最佳實踐。《Mesos:大數據資源調度與大規模容器運行最佳實踐》還介紹了Mesos 項目的最新進展和未來的發展方向,並給出了大量參考文獻和相關連結方便讀者進一步深入了解Mesos。適合分散式系統的研發、運維人員及相關技術愛好者閱讀。
內容提要
《Mesos:大數據資源調度與大規模容器運行最佳實踐》結合大量實例介紹了Mesos 的使用方法、核心原理及框架開發的相關內容。通過這些內容讀者可以在數據中心環境中利用Mesos搭建分散式系統、進行大數據分析及開發分散式套用。
《Mesos:大數據資源調度與大規模容器運行最佳實踐》分為8章分別從使用、開發和運維等角度全面展示了Mesos 作為數據中心核心的強大能力、設計方面的精髓及在工程中的最佳實踐。《Mesos:大數據資源調度與大規模容器運行最佳實踐》還介紹了Mesos 項目的最新進展和未來的發展方向,並給出了大量參考文獻和相關連結方便讀者進一步深入了解Mesos。適合分散式系統的研發、運維人員及相關技術愛好者閱讀。
目錄
前言 xiv
第1章運行Mesos 1
1.1 現代數據中心 1
1.2 集群計算框架 2
1.3 Mesos簡介 2
1.3.1 master 3
1.3.2 slave 4
1.3.3 框架 4
1.4 為什麼使用Mesos 4
1.5 單節點Mesos集群 5
1.5.1 Mac OS 5
1.5.2 Fedora 6
1.5.3 安裝依賴軟體包 6
1.5.4 構建Mesos 8
1.5.5 啟動Mesos 10
1.6 運行測試框架 11
1.7 Mesos Web UI 15
1.8 多節點Mesos集群 15
1.9 Amazon EC2 上的Mesos集群 16
1.10 使用 Vagrant 運行Mesos 18
1.11 Mesos社區 19
1.11.1 案例研究 19
1.11.2 郵件列表 20
1.12小結 20
第 2 章在Mesos上運行 Hadoop 21
2.1 Hadoop 介紹 21
2.2 Mesos上的 Hadoop 22
2.3 在Mesos上安裝 Hadoop 23
2.4 Hadoop 作業示例 26
2.5 Mesos上 Hadoop 的高級配置 27
2.5.1 任務資源分配 27
2.5.2 度量報告 29
2.5.3 認證 32
2.5.4 容器隔離 33
2.5.5 其他配置參數 33
2.6 小結 34
第 3 章在Mesos上運行 Spark 35
3.1 Spark 介紹 35
3.2 Spark 作業調度 36
3.3 Spark Standalone模式 38
3.4 在Mesos上的 Spark 40
3.5 在Mesos上 Spark 的調優 41
3.6 小結 43
第 4 章Mesos上的複雜數據分析44
4.1 複雜數據和 Lambda 架構的興起 44
4.2 Storm 46
4.2.1 Mesos上的 Storm 47
4.2.2 Storm-Mesos配置 49
4.3 Spark Streaming 50
4.3.1 在Mesos上運行 Spark Streaming 52
4.3.2 Spark Streaming 調優 53
4.4 Mesos上的 NoSQL 55
4.4.1 Mesos上的 Cassandra 55
4.5 小結 57
第 5 章在Mesos上運行服務 59
5.1 服務的介紹 59
5.2 Marathon 60
5.2.1 Marathon API 61
5.2.2運行 Marathon 62
5.2.3 Marathon 樣例 63
5.2.4約束條件 65
5.2.5事件匯流排 66
5.2.6 artifact store 66
5.2.7套用組 66
5.2.8應用程式健康檢查 67
5.3 Chronos 68
5.3.1 Chronos REST API 68
5.3.2運行Chronos 70
5.3.3 Chronos樣例 71
5.4 Aurora 71
5.4.1 作業的生命周期 73
5.4.2運行 Aurora 74
5.4.3 Aurora 集群配置 75
5.4.4 Aurora 作業配置 76
5.4.5 Aurora 客戶端 80
5.4.6 Aurora 樣例 82
5.4.7 Aurora cron作業 83
5.5 服務發現 83
5.5.1 Mesos-DNS 83
5.5.2安裝Mesos-DNS 84
5.5.3 Mesos-DNS 配置 85
5.5.4運行Mesos-DNS 86
5.6 打包 87
5.7 小結 87
第 6 章理解Mesos內部機制 88
6.1Mesos架構 88
6.1.1 Mesos slave 90
6.1.2 Mesos master 91
6.1.3框架 92
6.1.4通信 92
6.1.5附屬服務 93
6.2 資源分配 94
6.2.1 Mesos調度器 95
6.2.2 加權 DRF 96
6.2.3 資源預留 97
6.3 資源隔離 101
6.3.1 Mesos容器機 102
6.3.2 Docker 容器機 103
6.3.3 外部容器機 105
6.4 容錯 107
6.4.1 ZooKeeper 108
6.4.2 故障檢測及處理 109
6.4.3 Registry 111
6.5 擴展Mesos 112
6.5.1 Mesos模組 112
6.5.2分配模組 116
6.5.3 Mesos hook 和修飾器 119
6.5.4任務標籤 119
6.6 小結 119
第 7 章開發Mesos框架 120
7.1 Mesos API 120
7.1.1 Mesos訊息 121
7.1.2調度器 API 122
7.1.3調度器驅動 API 124
7.1.4執行器 API 125
7.1.5調度器驅動 API 126
7.2 開發一個Mesos框架 127
7.2.1 搭建開發環境 127
7.2.2加入框架調度器 128
7.2.3加入框架啟動器 130
7.2.4部署框架 131
7.3 構建框架 133
7.3.1 給框架加入執行器 137
7.3.2 更新框架調度器 141
7.3.3 運行多個執行器 144
7.4 高級主題 147
7.4.1 一致性調解 147
7.4.2 有狀態套用 148
7.5 開發者資料 148
7.5.1 框架設計模式 149
7.5.2 框架測試 149
7.5.3 RENDLER 149
7.5.4 Akka-mesos 150
7.6 小結 150
第 8 章管理Mesos 151
8.1 部署 151
8.2 升級 152
8.3 監控 153
8.3.1 容器網路監控 153
8.4 多租戶 155
8.4.1 授權和鑒權 155
8.4.2 API 速率限制 158
8.5 高可用 160
8.5.1 master 高可用 160
8.5.2 限制 slave 移除速率 162
8.5.3 slave 恢復 162
8.6 維護狀態 163
8.7 Mesos接口 165
8.7.1 Mesos REST 接口 165
8.7.2 Mesos CLI 167
8.8配置 170
8.8.1 Mesos master 171
8.8.2 Mesos slave 174
8.8.3 Mesos構建選項 179
小結 181
精彩節摘
推薦序 1
很高興受DockOne 社區的邀請,為Apache Mesos Essentials的中譯版《Mesos:大數據資源調度與大規模容器運行最佳實踐》作序。隨著分散式計算技術在大數據處理方面的廣泛套用,分散式集群已經成為企業數據中心的標準配置。分散式集群雖然性能優異、成本低廉,但是由於伺服器數量眾多,集群管理複雜度很高,只有Google、Amazon、Facebook、Microsoft之類的IT巨頭能夠建造和管理,而且這幾家巨頭的集群管理系統並不開源,不給其他企業使用。再者,雲計算技術的興起,極大地改變了企業IT 系統的運作方式,從傳統物理伺服器搭建數據中心到軟體定義數據中心。相應地,集群管理系統也從管理物理伺服器向雲時代作業系統轉變。Apache Mesos 的出現,正好滿足了廣大企業對雲時代數據中心管理的需求,Mesos也正在逐漸向雲時代作業系統演化。
Apache Mesos 是源自UC Berkeley(加州大學伯克利分校)的分散式集群管理系統。Mesos最早的發起人之一Benjamin Hindman,當時還是UC Berkeley 的計算機系博士生,他在Google 實習的時候,受Google 的分散式集群管理系統Borg 的啟發開始研發Mesos。2010年,Benjamin 在Twitter 做了關於Mesos 的講座,然後Twitter 逐漸開始使用Mesos,最終成為Mesos 最大規模的企業用戶。在Twitter,最大規模的Mesos 集群有超過一萬台伺服器。矽谷的其他高科技公司,比如Apple、Airbnb、Yelp、ebay 等,都在使用Mesos來管理分散式集群。2013 年,Mesos 成為Apache 頂級項目,同年Benjamin 創立了Mesosphere 公司,專門推廣和商業化Mesos。2014年,首屆Mesos大會在芝加哥召開,有二百多人參會。2015 年,Mesos大會將在西雅圖召開,預計有近千人參加。
Mesos 為什麼在企業有很成功的大規模套用?個人覺得這主要得益於Mesos 簡單易用。分散式集群管理是個很複雜的系統,比如Google 的Borg,功能很強大也很複雜,Borg 管理了Google數千萬台伺服器,其複雜程度可想而知。但是Mesos的理念是要把分散式集群管理系統變得簡單易用。Mesos 採用了兩級調度算法來管理分散式集群。兩級調度指的是資源分配和任務調度。Mesos 本身只負責資源分配這一件事(Mesos 本來也有任務隔離功能,在Docker出來以後,人們更傾向於用Docker來做任務隔離),Mesos本身並不做任務調度,而是把任務調度的功能交給基於Mesos 之上的各種framework 來完成。比如,Mesos 之上可以運行Hadoop、Spark 之類的大數據平台,Mesos 只負責將集群資源分配給Hadoop、Spark 任務,然後Hadoop、Spark 負責調度各自的任務,如申請任務資源、重啟失敗任務等。Mesos 這樣設計,降低了集群管理系統複雜度,進而降低了開發難度,方便Mesos 作為開源項目來開發維護。畢竟開源項目不是商業軟體,開源項目如果設計複雜度很高,會使得項目開發捉襟見肘,項目質量也很難得到保證。
近來Mesos 很流行的一個重要原因是Mesos 對Docker 的原生支持。Docker 自2013 年開源以後,發展得如火如荼,已基本成為新一代套用發布標準。2014 年下半年,Mesos 發布0.20 版本開始原生支持Docker,這樣一來,Docker 任務可以很方便地在Mesos 管理的集群上運行。於是Docker公司的創始人兼CTO,Solomon Hykes,在2014年年底歐洲的Docker大會上說:“Mesos 是在大規模集群生產環境中運行Docker 的黃金搭檔。”可以說,Docker的出現簡化了開發人員對應用程式的測試和交付工作,Mesos 加上Docker,又極大地方便了企業在生產環境中大規模使用Docker。Mesos 和Docker 互相推波助瀾,會深刻改變未來企業IT系統。
Mesos 另外一個優點是開放性,採用Mesos 來管理集群並不意味著就排除了使用其他集群管理系統的可能性。Mesos 的核心是分散式集群的資源分配,不負責任務調度,因而Mesos 可以和其他集群管理系統協同工作。比如Google 開發的Kubernetes,Docker 公司推出的Swarm 等,這些面向Docker 的集群管理系統都可以運行在Mesos 之上,成為Mesos的framework,Mesos 為Kubernetes 或Swarm 調度Docker 任務分配資源。企業如果已經採用了Mesos 來管理其集群,還可以採用Kubernetes 或Swarm 來做任務調度,充分利用不同集群管理系統的特性。
當然Mesos 目前處於比較早期的階段,還不能說非常成熟。Mesos 主要實現了分散式集群管理系統中的資源分配功能,其他功能主要靠額外的組件來實現,比如服務發現和負載均衡用Marathon 加HAproxy 來實現等。再者,Mesos 對於存儲管理還沒有很成熟的解決方案,對於多租戶管理也不夠強大。
最後,我對Mesos 的發展做出一點展望。隨著雲計算技術蓬勃發展,企業的數據中心都將移到公有雲或私有雲上,未來Mesos 會逐步演化為雲時代的作業系統。有了雲時代作業系統,企業使用整個數據中心就像使用一台伺服器一樣簡便易行,再也不用操心數據中心的管理運維,只需要專注於發展業務。進而,所有企業級軟體都是通過雲作業系統來分發,不論是在公有雲或私有雲上,都能做到一鍵部署、免維護、免升級等,真正把企業級軟體變成SaaS模式。
數人科技創始人王璞
推薦序2
於此,我推薦本書給您,希望它成為您的千里馬,陪伴您征服事業的最顛峰。如果Docker容器像海運業的貨櫃(即容器),則Mesos集群就像一座巨大的現代化港口或碼頭。所以專家們常稱讚:Docker 和Mesos 是一長串絕佳搭檔的最新組合,就像花生醬和果凍、牛奶和餅乾那樣完美。例如,Mesos 已經是一個相當穩定的平台了,並且可以使用Docker 鏡像來部署形形色色的Mesos套用。
由於兩者是力與美的最先進組合,對於新一代雲平台的開發者或維運人員而言,孰悉Mesos的架構、程式及管理模式,將是徹底掌握Docker + Mesos的最佳途徑。在這本書里,原作者從現代基礎架構對數據中心作業系統的需求出發,闡述了Mesos 如何為企業大規模運行容器提供最實用的方法,讓企業有信心克服一連串關於可用性、規模和性能等方面非常深層次的挑戰。例如,第2、第3 章深入淺出地探討了如何在Mesos 上使用Hadoop 處理大數據及如何調優Mesos上的Spark。
俗語說:眾星拱月。雖然Docker 是一彎明亮的月兒,但在Mesos 平台上還可結合許多其他的架構和服務,例如,第4、第5 章演示了Mesos 上部署lambda 架構,並詳細討論了Marathon、Chronos和Aurora框架,幫助大家理解如何在Mesos上部署這些服務。
當你孰悉了上述Mesos 架構之後,即可深入理解這一平台的實現、開發和運維的細節了。理解在大規模使用場合,如何實現高度自動化的環境,跨成百上千台伺服器集群下運行容器和處理大數據。這些都是你所需要的關鍵技術。因此,本書後段的第6、第7、第8 章詳細介紹Mesos 的資源限制、隔離等管理策略,Mesos 框架API,以及Mesos 平台的運維細節。這些都能幫你建立紮實根基和豐富經驗。
剛才已經提到了,Mesos + Docker 是一個力與美的最佳組合。一旦你用心學完本書的內容,就掌握了大規模運行Docker 容器的基本觀念和使用方法了。隨著近年來Docker 貨櫃技術的流行,容器式軟體設計思維已迅速蔚為風潮,正在強力改變終端與雲平台的整體設計理念和方法。這跟半世紀前,海上船運業的貨櫃風潮,對整個產業的革命性改變,其力道來源和產生經濟效益,可說具有異曲同工之妙。因之,本書將是你登上這一革命性技術潮流之巔的最佳墊腳石,也是你的幸運草,將替你或你的企業帶來可觀的商業利益,也為你帶來新的機遇。
一旦掌握了Mesos 和Docker 的知識,擁有了雲平台的運維和管理技能,你就能強力支持網際網路和大數據的各種套用系統開發了。在需求、數據和軟體愈來愈碎片化的趨勢下,容器包裝了微服務成為主流。這些微服務在運行時間(Run-time)經常需要動態組合成為各式各樣的套用來支撐企業多變的業務流程。此時,你就有足夠的能力去促進終端與雲平台的一致性設計,有效協助創造業務套用系統之間極為迅速的、瞬間的動態組合,來支撐企業流程和活動,以創新模式將它們組合起來,創造端雲整合的最佳用戶體驗。
台灣Docker論壇主席高煥堂
作者簡介
DharmeshKakadia,微軟研究院的研究員,負責開發下一代集群管理系統。在加入微軟研究院之前,他在海得拉巴信息技術國際研究所獲得碩士學位,致力於改進雲和大數據系統的任務調度。他對系統和數據的交集部分非常感興趣,在資源管理領域發表了多篇研究報告。他熱衷於開源技術,活躍在多個開源社區里。他的Twitter 賬號是@DharmeshKakadia。
DockOne.io成立於 2014 年,是國內最大的容器社區。社區主要關注 Docker、Mesos、CoreOS、Kubernetes、Ceph、OpenStack 等容器生態圈相關軟體,致力於為廣大容器愛好者提供一個分享、學習和交流的平台,目前已有活躍會員逾50000,精品文章 1000 余篇。
劉夢馨,靈雀雲軟體工程師,從事CaaS平台的研發工作。曾任開發、測試、運維相關職位,專注於雲計算和虛擬化技術。個人部落格 http://oilbeater.com。
崔婧雯,具有近10年軟體測試開發經驗。現就職於IBM,高級軟體工程師,負責IBM WebSphere業務流程管理軟體的系統測試和自動化CI測試平台的開發工作。曾就職於VMware從事桌面虛擬化產品的質量保證工作。對Dokcer,虛擬化,業務流程管理等技術有濃厚的興趣。
媒體評論
相比於容器生態圈的其他開源項目,Apache Mesos 絕對可以稱得上是“前輩”,因為它在2013 年成為Apache 的頂級項目之時,Docker 技術才剛剛開始發展。也正是由於Docker 等容器技術的蓬勃發展,才讓人們重新審視Mesos 的價值。Mesos 目前已在Twitter、Airbnb等公司得到廣泛套用,這也充分證明其已足夠健壯,可以滿足企業生產環境的需求。容器時代,它更被看作是Docker 的黃金搭檔。
InfoQ 在很早之前就已經開始關注Mesos 技術的發展,今年也陸續策劃了相關專題,目的只有一個,那就是讓容器技術在國內能夠得到更好的套用,從而更好地推動業務發展。很高興看到國內這么快就有了關於Mesos 的中文書籍,我不得不感嘆,這真是一個屬於技術人的美好時代!
郭蕾InfoQ主編
大數據時代的到來對數據存儲和處理能力提出了新的要求,為了應對業務、數據量及時效性的需求,數據中心內往往存在複雜的應用程式和服務,比如批量計算、流式處理、多輪疊代式計算、各種線上服務等。如何對數據中心資源、作業服務進行統一的管理和調度成為了新的熱點,在這種形勢下,各種資源管理和調度系統應運而生,例如Borg(Google)、YARN(Apache Hadoop)、Matrix(百度)、Torca(騰訊)、Corona(Facebook)。Mesos作為其中的優秀代表解決了兩類問題,一是通過資源的統一管理和調度提升了利用率,二是通過自動化部署提升了服務運維效率。
《Mesos:大數據資源調度與大規模容器運行最佳實踐》這本書深入淺出地介紹了Mesos的基本原理、API 框架及多種典型的解決方案,既有原理,又有套用案例。無論是站在服務開發者還是服務運維者的角度,讀過此書後都會有一種醍醐灌頂的感覺,對Mesos 有一種全新的認識,在服務管理、構建和運維上獲得新的思路。
謝廣軍 百度公司高級技術經理,雲計算技術服務人
Mesos 的故事始於2009 年UC Berkeley 的AMP Lab,博士生Benjamin Hindman、AndyKonwinski和Matei Zaharia在研究集群資源的共享和調度時,創造了Mesos,開創了“數據中心工程師”的新時代。如今,Mesos 已經在Twitter、Airbnb 等國外網際網路公司得到了大規模的實踐套用,“分散式”、“微服務”、“容器”這些當下最熱門的技術辭彙中都可以看到Mesos的影子。
由DockOne 社區翻譯的《Mesos:大數據資源調度與大規模容器運行最佳實踐》一書,作為國內第一本關於Mesos 的書籍,從實踐入手,將帶你深入淺出地認識Mesos,對國內Mesos 實踐者來說,是很好的入門讀物。我司的劉夢馨有幸參與了本次翻譯工作,未來我們也會在社區和開發者的技術普及工作中貢獻更多的力量。
左玥靈雀雲創始人兼CEO
現如今,數據中心承載了越來越多複雜的數據處理業務,例如批量處理、流處理、圖形分析和實時處理等。也正是如此多樣化、差異化的數據業務推動著數據中心軟體技術的不斷演進。在眾多主流數據中心作業系統中,Mesos 脫穎而出,成為了最熱門的技術之一。其關鍵的技術特點在於它能夠利用資源的高度抽象和兩層調度機制,很好地解決多樣化數據處理業務的資源管理和使用問題。
本書首先詳細介紹了如何在Mesos 上搭建、運行和調優Hadoop、Spark 等技術的最佳實踐,具有很強的操作性。在對基本使用有了一定了解後,作者深入剖析了Mesos 的基本原理和開發、運維的技術細節。這是一本理論與實踐相結合的實踐性書籍,我相信無論是新手或是資深用戶,都可以從中獲得所需要的知識和技能。
汪洋華為開源能力中心開源戰略規劃專家
網際網路產品的推陳出新、快速疊代與海量訪問、尖鋒時刻等特點正在顛覆著傳統的運維規劃設計理念。從天、小時級回響加速到分鐘、秒級回響,彈性計算的能力越來越大地影響著用戶體驗。同時網際網路產品的開發、運營複雜程度已經不亞於汽車工業。對於開發工程師而言,如果可以不用過______多關心分散式的問題而專注於代碼實現將更有利於用戶體驗的提升。就在剛剛發布的0.23.0 版本中,我們看到了Mesos 的新特性更貼近業務場景,更接地氣,而這些都充分說明了Mesos 短短兩年時間就成為Apache 基金會明星項目的原因。如果你想了解Mesos 的一切,如果你想與矽谷最新技術同行,請與我們一起認真閱讀這本佳作。
塗彥騰訊遊戲運維總監
如何有效地調配與利用計算資源是IT 技術人員始終需要面對的事,為此人們做了大量的實踐和探索,而Apache Mesos 項目給了我們一個很好的選擇。本書覆蓋了Mesos 從實踐到機理及擴展等多個階段,一本書可窺項目全貌。更可貴的是本書譯者都是資深的IT 人,用精確的技術語言給予原書準確的翻譯,這在引進技術書籍當中是難得的。
DockOne 已經成為泛容器技術最大的技術社區。本次推動翻譯此書,反映了其對容器這個技術方向上的認識,希望社區發展得更大,在新技術的推動和推廣方面走得更遠。
周東波首都線上總工程師
微服務架構、輕量級組件、分散式設計、雲端部署和運維是未來軟體的趨勢。軟體如何充分利用雲平台能力的同時又避免平台鎖定(Cloud Locked-In),軟體如何以較低的成本實現網際網路級別的高可用性並且應對爆發式流量?這是擺在開發人員面前的兩大挑戰。
近年來DCOS(數據中心作業系統)引起了越來越多開發者和運維工程師的關注,以Mesos、Kubernetes、CloudFoundry 等為代表的DCOS,將有可能演化為套用和雲平台之間的抽象層,也就是雲時代的作業系統。這本Apache Mesos 最佳實踐,是了解和學習DCOS的優秀教材,兩位譯者在分散式領域實戰經驗豐富,譯文通俗易懂,是一本不可多得的好書。
喻勇DaoCloud聯合創始人
Docker 在短短兩年時間內迅速躥紅,帶動了周邊軟體生態圈的發展,其中Mesos + Docker就是最佳拍檔的典範。縱觀現在市面上競爭激烈的公有雲來說,OpenStack + KVM 確實是個很好的選擇,但由此帶來的統一計算Nova、統一網路Neutron、統一存儲Gluster/Ceph的難度也是不容小覷。而對於私有雲來說,我們只想靜靜地以業務為驅動,把公司的資源做深度整合和統一調度,真正做到容器化彈性可變化可擴展。Docker 的創新之處在於它的構建無論是對運維人員、開發人員還是測試人員都極其友好,統一Dockerfile,統一快速部署。當然,這就會遇到成百上千個容器如何運行管理、如何進行資源調_____度的問題,於是,基於Google Borg 的開源實現Apache Mesos 就是最好的解決方案,所以我相信對於私
有雲平台的構建來說,Mesos + Marathon + Docker 會是一個很好的解決方案。如果你跟我一樣為私有雲的使用而苦惱,不妨試試Mesos,體驗一個全新而有趣的思路,絕對會給你驚喜。
邵海楊UPYUN 聯合創始人兼運維總監
Mesos 作為DCOS 的發起者和推廣者,完美地向我們展示了如何藉助容器技術配合先進的資源管理與調度算法來完成對一個大規模機器集群的單機化抽象。不過這並不是關鍵。Mesos 的殺手鐧其實在於兩層調度和framework,這兩個特性使得Mesos 的使用者可以通過插拔式的過程在Mesos 之上構建各種各樣的服務。所以,從大數據時代的不冷不熱,再到容器時代的炙手可熱,Mesos 用一個完美的翻身教會了我們“兼容並包”而非“一味競爭”才是平台級項目生存下去的看家本領。本書從實踐到理論循序漸進,很好地展示了上述Mesos的核心功能和實現原理,是一本不可多得的國外技術書籍譯本,值得一看。
張磊博士浙江大學計算機學院雲計算團隊科研人員
近年來,虛擬化的深入普及消滅了絕大部分自行建設、維護機房的需求。然而,大多數套用仍然停留在傳統的單機模型上,無法充分發揮分散式雲計算的真正威力。
書中介紹的Mesos 是這樣一個充滿魔力的數據中心作業系統。它將整個集群抽象成一個大型資源池,託管在其中的套用可以自由伸縮、擴展,充分利用整個集群的資源。使用Mesos 框架就像操作著少數派報告中精巧的dashboard,控制著集群中幾十上百個套用的部署、啟動和結束任務,你只需動動手指,便可瞬間完成計算集群的重新配置。
在Mesos 框架下,節點不再是一個個獨立的個體,它們就像整齊劃一的軍隊,隨時接受著Mesos 的調配。透過Mesos 這樣一個透視鏡,你既可以站在幾萬英尺高的雲端觀看整個集群的微縮遠景,又可以深入到集群中每個節點中的每個小任務里看其具體的執行情況,一切盡在掌握。
相信讀過本書後,你也會迷上這個引領了雲計算發展方向的Mesos框架!
孫宇聰Coding CTO
《Apache Mesos Essentials》是一本出色的詳細解讀Mesos 並具備實踐運用的書籍,很高興看到它這么快就在國內有了中文譯本。Mesos 是Apache 下的開源分散式資源管理框架,被稱為是分散式系統的核心。其特點在於資源管理和調度,能夠消除集群硬體的差異化。在使用場景上,Mesos 可以作為資源池提供分配給上層的框架,同時支持多種用途的數據套用框架,比如Hadoop、Kafka、Spark 等。近兩年來以Docker 為代表的容器技術在雲計算行業大放異彩,而Mesos 作為專門的集群管理器,是最適合大規模容器運行的調度框架之一,國內像時速雲、靈雀雲、數人科技等都已經將Mesos 套用於實際的產品環境。本書籍不僅從理論上詳細闡述了Mesos,而且針對Mesos 開發者和數據中心規模管理者提供了最佳實踐,是一本不可多得的學習Mesos的書籍。
黃啟功時速雲創始人
為提高物理機的使用率,廣大運維同仁曾經埋首於各種私有雲技術,試圖實現資源池化,但實施起來往往勞民傷財,非常痛苦,甚至無疾而終。Mesos 的出現,徹底改變了這個局面,它提供了一種更先進、更友好、更可控的資源池化技術,實現了真正意義上的數據中心作業系統。
本書實操性非常強,而且編排方式獨特,首先直接闡述Mesos 的各種套用場景,之後再深入討論Mesos 的基本原理和框架細節,並在最後貼心地附上Mesos 運維的相關實踐技術,適合運維同仁作為Mesos工具書經常翻閱學習。
蕭田國高效運維技術社區創始人北京觸控科技運維總監
大概在2002 年的時候,曾經流行過格線計算的概念,大致就是把一組PC 伺服器組成資源池,通過資源調度最大化資源利用率並提高套用的可靠性。10 年之後,Mesos、Kubernetes又流行起來,感覺昨日重現,這裡面最重要的原因就是Docker,沒有Docker 就不會有Mesos的流行,所以希望大家深入閱讀此書。
趙鵬Hyper顧問
前言
Mesos使得開發並管理自動容錯且可擴展的分散式應用程式變得很容易。它支持為聚合的資源池編程,而無須考慮單台機器的資源管理。使用Mesos後,你心儀的所有框架,從長時間運行服務的數據處理到Web服務的數據存儲,都可以在同一個集群里共享資源。 Mesos的一致性基礎架構及容錯性也能簡化大規模部署的運維工作。運行Mesos時,單點故障不會影響到應用程式的持續運行。
使用Mesos,每個人都能開發分散式應用程式,並輕鬆將其擴展到成千上萬的節點上。
本書範圍
第 1 章解釋現代基礎架構對數據中心作業系統的需求,以及 Mesos 為何是滿足這一需求的絕佳選擇。還介紹了在各種環境裡,如何安裝單節點和多節點Mesos。
第2 章探討了如何在 Mesos 上使用 Hadoop 進行批量數據處理。
第3 章講述了如何在 Mesos 上運行 Spark,及如何調優 Mesos 上的 Spark。
第4 章演示了 Mesos 上部署 lambda 架構的多種選擇。詳細討論了 Mesos 上 Storm、 Spark Streaming 和 Cassandra 的搭建。
第5 章介紹了服務及在 Mesos 上服務架構的不同之處。詳細討論了 Marathon、 Chronos 和Aurora 框架,幫助大家理解如何在 Mesos 上部署這些服務。
第6 章深入 Mesos 基本原理。詳細介紹 Mesos 的資源分配、隔離和容錯的實現細節。
第7 章講述了在 Mesos 上框架開發的細節。通過構建 Mesos 框架學習 Mesos API。
第8 章探討 Mesos 的運維細節。討論了監控、多租戶、可用性和維護各方面及 REST API和配置細節。
本書要求
理解本書內容,需要熟悉 Linux,並且具備基本的編程知識。此外,由於Mesos 的分散式特性,如能夠訪問多台機器或者某個雲服務,將有助於加深對本書的理解。
本書面向的讀者
本書適合所有想要使用 Mesos開發和管理數據中心規模的應用程式的人。