總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 計算技術、計算機技術
 
 
 
 
Service Mesh實戰:基於Linkerd和Kubernetes的微服務實踐
 叢書名稱: 雲計算與虛擬化技術叢書
 作  者: 楊章顯
 出版單位: 機械工業
 出版日期: 2019.01
 進貨日期: 2019/1/9
 ISBN: 9787111612209
 開  本: 16 開    
 定  價: 518
 售  價: 414
  會 員 價 : 380
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
內容簡介:

這是一部面向生產實踐環境的Service Mesh實戰指南,它講解了如何基於Linkerd和Kubernetes開發和部署微服務。
作者是思科的高級工程師,是國內Service Mesh領域的先驅者,較早將Linkerd應用到了生產實踐中。書中詳細介紹了Linkerd能解決什麼樣的問題,會給開發和運維人員帶來什麼樣的好處。融合作者使用Linkerd的一些經驗和教訓,詳細闡述了如何配置、部署和管理Linkerd以及在Kubernetes平台運行微服務,並且講述了如何開發自定義Linkerd插件實現特定功能。通過這一系列內容的學習,讀者將理解Linkerd的工作原理,甚至對學習或者開發他Service Mesh也具有深刻的借鑒意義。
全書共9章,分為三個部分:
第一部分(第1~2章) 基礎篇
第1章主要介紹了Service Mesh的起源、功能、現有產品,以及技術選型的考量;第2章是Linkerd的入門,講解了Linkerd及其工作環境的安裝、配置和部署。
第二部分(第3~6章) 中級篇
這部分內容是本書的核心之一,依次講解了Linkerd的配置、數據流工作原理、部署模式的選擇,以及它的控制面板Namerd如何管理多個Linkerd實例以及通過Linkerd實現運行時動態切換流量。
第三部分(第7~9章) 實戰篇
第7章首先講解了閱讀本書必須掌握的Kubernetes的基礎知識;第8章重點通過實例演示了如何以Linkerd作為Kubernetes的Service Mesh工具運行微服務;第9章講述了如何開發自定義的Linkerd插件來實現特定的功能。


作者簡介:

楊章顯
架構師和微服務技術專家,2012加入思科,擔任高級系統工程師。
具有多年企業級線上會議系統的運維以及軟體發佈、變更管理經驗。
熟悉微服務、容器和Service Mesh等技術,在容器編排(尤其是Nomad和Kubernetes)、自動化運維、部署、監控等方面有豐富的實戰經驗,是公司微服務平臺負責人之一。


圖書目錄:

前言
第一部分 基礎篇
第1章 Service Mesh簡介 2
1.1 微服務架構面臨的一些挑戰 2
1.2 技術架構演進 6
1.3 什麼是Service Mesh 9
1.4 Service Mesh的功能 10
1.5 業界Service Mesh產品 11
1.5.1 Linkerd 11
1.5.2 Envoy 12
1.5.3 Istio 13
1.5.4 Conduit 13
1.5.5 Linkerd、Envoy、Istio及Conduit比較 14
1.5.6 我們需要Service Mesh嗎 15
1.6 總結 15
第2章 Linkerd入門 16
2.1 Linkerd是什麼 16
2.2 Linkerd架構 17
2.3 Linkerd主要功能 19
2.4 安裝Linkerd 21
2.4.1 環境準備 21
2.4.2 傳統安裝方式 24
2.4.3 基於Docker的安裝方式 27
2.5 示例演示 28
2.5.1 示例準備 28
2.5.2 基於檔的服務發現 28
2.5.3 示例演示 29
2.6 總結 30
第二部分 中級篇
第3章 深入淺出Linkerd配置 32
3.1 示例應用 32
3.2 環境準備 34
3.2.1 虛擬機及Docker引擎 34
3.2.2 服務發現:Consul 35
3.2.3 服務註冊:Registrator 37
3.2.4 部署Linkerd 38
3.2.5 部署示例服務 41
3.3 Linkerd術語 45
3.4 Linkerd配置 46
3.4.1 配置構成 46
3.4.2 admin 48
3.4.3 namer 48
3.4.4 router 50
3.4.5 telemetry 55
3.4.6 usage 55
3.5 總結 55
第4章 深入Linkerd數據訪問流 56
4.1 dtab詳解 56
4.1.1 dtab定義 56
4.1.2 dtab路由原理 57
4.1.3 示例演示 60
4.2 數據訪問流詳解 62
4.2.1 鑒別 62
4.2.2 綁定 63
4.2.3 解析 64
4.2.4 轉換 64
4.2.5 負載均衡 65
4.3 總結 67
第5章 Linkerd部署模式 68
5.1 Linkerd部署模式 68
5.1.1 Per-host模式 68
5.1.2 Sidecar模式 69
5.1.3 Per-host模式和Sidecar模式 69
5.2 配置模型 70
5.2.1 service-to-linker模型 70
5.2.2 linker-to-service模型 73
5.2.3 linker-to-linker模型 76
5.3 總結 78
第6章 Linkerd控制層:Namerd 79
6.1 Namerd簡介 79
6.2 Namerd和Linkerd 80
6.3 Namerd配置詳解 82
6.3.1 admin配置 82
6.3.2 interface配置 83
6.3.3 storage配置 84
6.3.4 namer配置 85
6.4 連接Linkerd和Namerd 85
6.4.1 準備Namerd配置檔 85
6.4.2 啟動Namerd 86
6.4.3 準備Linkerd配置檔 88
6.4.4 啟動Linkerd 89
6.4.5 示例演示 90
6.5 管理dtab路由 90
6.5.1 Namerd API簡介 90
6.5.2 通過Namerd API管理dtab 91
6.5.3 通過namerctl CLI管理dtab 92
6.6 總結 93
第三部分 實戰篇
第7章 Kubernetes基礎 96
7.1 Kubernetes是什麼 96
7.2 為什麼需要Kubernetes 97
7.3 Kubernetes架構 99
7.4 使用Kubeadm部署Kubernetes集群 100
7.4.1 部署環境準備 100
7.4.2 部署Kubernetes集群 101
7.5 Kubernetes基本概念及資源生命週期管理 108
7.5.1 Container Runtime 108
7.5.2 Container 108
7.5.3 Pod 109
7.5.4 Label 112
7.5.5 RelicaSet 114
7.5.6 Deployment 116
7.5.7 Service 119
7.5.8 DaemonSet 121
7.5.9 ConfigMap和Secret 124
7.6 總結 128
第8章 基於Linkerd和Kubernetes的微服務實踐 129
8.1 部署服務於Kubernetes平臺 130
8.1.1 定義示例服務聲明檔 130
8.1.2 架構預覽 132
8.1.3 部署示例服務 133
8.1.4 驗證 134
8.2 Linkerd作為Kubernetes平臺的Service Mesh工具 135
8.2.1 架構預覽 136
8.2.2 Kubernetes平臺上如何配置Linkerd 137
8.2.3 運行Linkerd 141
8.2.4 部署示例服務 142
8.2.5 驗證 144
8.3 服務間端到端的TLS加密 145
8.3.1 SSL/TLS簡介 146
8.3.2 Linkerd透明TLS 147
8.3.3 架構預覽 150
8.3.4 生成證書 151
8.3.5 配置Linkerd 151
8.3.6 運行Linkerd及示例服務 152
8.3.7 驗證 153
8.4 Linkerd作為Kubernetes的Ingress Controller 155
8.4.1 架構預覽 156
8.4.2 Ingress Identifer簡介 157
8.4.3 配置Lnkerd 158
8.4.4 運行Linkerd及示例服務 160
8.4.5 驗證 160
8.5 Linkerd作為邊界流量入口 164
8.5.1 架構預覽 164
8.5.2 Ingress Controller局限性 165
8.5.3 部署內部Linkerd和示例服務 165
8.5.4 部署邊界Linkerd 166
8.5.5 HAproxy作為邊界Linkerd負載均衡器 167
8.6 Linkerd作為邊界出口 171
8.6.1 架構預覽 172
8.6.2 部署EgressLinkerd 173
8.6.3 部署示例服務 177
8.6.4 部署內部Linkerd 177
8.7 基於Linkerd實現運行時路由 182
8.7.1 運行時單個請求路由 182
8.7.2 基於Namerd實現全局動態路由 185
8.8 總結 198
第9章 開發Linkerd插件 199
9.1 Linkerd模組開發框架 199
9.2 如何開發自定義插件 202
9.2.1 需求定義 202
9.2.2 環境準備 203
9.2.3 代碼開發 203
9.2.4 編譯 207
9.2.5 安裝 209
9.2.6 驗證 210
9.3 總結 213


章節試讀:

前言
為什麼要寫這本書
2016年年初,位於三藩市的一家初創公司Buoyant開源了一款產品—Linkerd。對IT界來說, 每天都會發生很多類似的事情,各種新技術、新產品日新月異、層出不窮,開源一款產品幾乎是微不足道的事情。但就是Buoyant的Linkerd,開啟了一個新的時代 — Service Mesh(服務網格)時代,成為微服務和雲原生應用的引爆點,為微服務和雲原生應用在企業的推廣、應用和普及提供了更好的支撐點。
事實上,微服務架構已經被不少公司採納,而雲原生應用是在容器化技術和公有雲平臺的廣泛發展下衍生出來的技術架構。但是,無論是微服務還是雲原生應用架構,都面臨一些不可避免的問題:如何提高應用系統的穩定性和可靠性;如何保證系統的可擴展性、容錯及健壯性;如何增強系統的可見性、可管理性及安全性等。說到底,為什麼Linkerd的出現會成為引爆點?主要是因為Linkerd引入的Service Mesh概念使得我們可以使用更加通用、靈活的方法解決上述問題。這也是隨後多種Service Mesh產品的出現以及多家雲服務提供商也支持Service Mesh的原因。Linkerd作為Service Mesh的開山鼻祖,據其官網介紹,目前已經被全球多家公司採納,運行在產線環境為客戶提供各種服務。因此,很有必要學習和瞭解Linkerd的工作原理,以此解決工作環境中遇到的問題,以及借鑒其設計精華開發自己的Service Mesh產品。
幸運的是,在2016年年底,我所在的公司正好要將一些服務進行微服務化,嘗試新的技術架構帶來的好處和優勢,因此在進行技術方案選型的時候Linkerd就成為我們的主要目標,並最終選擇Linkerd作為我們微服務平臺中非常重要的組件。使用Linkerd之後,實實在在地給我們帶來不少好處和優勢。
首先,使得我們的應用開發工程師可以專注於業務邏輯的實現,避免將精力分散到服務與服務間可靠通信的實現和其他額外工作上。
其次,Linkerd使得我們的微服務運行時狀態可見性更高。在此之前,如果需要獲取服務運行時的狀態資訊,比如P99時延、請求處理成功率、失敗率及當前連接數等,需應用本身暴露這些資訊才行,否則,獲取並不容易。
再次,Linkerd為我們在不同環境進行測試提供了更加便利的方法,比如,通過其運行時動態切換流量的功能可實現不同環境間流量的切換。
最後,Linkerd使得開發人員無須擔心多語言支持的問題。
當然,Linkerd還帶來了其他好處,在此就不一一贅述了。
作為一本純技術的書籍,希望可以引導和幫助大家學習並在實際環境中使用Linkerd和其他Service Mesh產品,推廣Service Mesh產品及技術不斷向前發展,讓Service Mesh能切實解決我們面臨的問題。
讀者對象
微服務和雲原生開發人員
Devops工程師
SRE工程師
業務運維工程師
本書特色
作為業界早期的以Linkerd作為Kubernetes的Service Mesh工具的實戰指南,本書將教你如何通過Linkerd在Kubernetes平臺實現服務間可靠、安全、可控制地通信,增加服務的運行時可見性。
如何閱讀本書
本書分為三大部分:
第一部分為基礎篇,簡單介紹Service Mesh產生的原因、Service Mesh能解決現有架構中什麼樣的問題以及業界有哪些Service Mesh產品可供選擇,最後介紹Linkerd目前的使用狀況、提供哪些功能、如何安裝和配置,以及如何使用Linkerd進行服務通信。
第二部分為中級篇,著重講解如何配置Linkerd使其實現各種高級功能、闡述Linkerd的數據流工作機制,以及如何根據應用場景選擇Linkerd支持的部署模式和通過控制平面Namerd管理多個Linkerd實例等。
第三部分為實戰篇,在這一部分,我們用一章的篇幅講述Kubernetes的基本知識和概念,以幫助一些不了解Kuberentes的讀者對Kubernetes有簡單的認識,有利於後續內容的學習;有Kubernetes相關基礎的讀者,可跳過此章內容。剩下的章節便是通過實例演示Linkerd的工作機制,以及帶領大家開發自定義的Linkerd插件以滿足特定應用的需求。
勘誤和支持
由於作者的水準有限,編寫時間倉促,書中難免會出現一些錯誤或者不准確的地方,懇請讀者批評指正。書中的所有源碼均可在https://github.com/yangzhares/linkerd-in-action處找到,如果遇到任何問題,可直接在Github頁面提交問題,我將儘量線上上為你提供滿意的解答。另外,如果你有更多問題或者意見,歡迎將你的意見發送至我的郵箱yangzhangxian@gmail.com,期待能夠得到你的真摯回饋。
致謝
感謝Buoyant公司開源Linkerd這款優秀的軟體,讓我有機會接觸這麼優秀的Service Mesh產品,還要感謝在我面臨一些困惑時官方社區提供的詳細答疑及解惑。
感謝我的同事陳松和杭濱,他們給我提供了很多寶貴的建議並幫我認真改稿。
感謝機械工業出版社華章公司編輯楊福川,在這將近一年的時間堜l終支持我的寫作,你的鼓勵和幫助引導我順利完成全部書稿。
最後感謝我的爸爸、媽媽及所有家人,感謝你們的默默支持,並時時刻刻為我灌輸著信心和力量。特別是我的妻子,在這一年每天帶娃做家務,辛苦了,謝謝你。還有我的寶貝女兒,謝謝你沒有經常在我工作的時候來打擾我!
謹以此書獻給熱愛Linkerd和Service Mesh的朋友們!

楊章顯


圖片預覽:

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。