-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Service Mesh實戰:用Istio軟負載實現服務網格

( 簡體 字)
作者:周遙類別:1. -> 程式設計 -> 綜合
譯者:
出版社:電子工業出版社Service Mesh實戰:用Istio軟負載實現服務網格 3dWoo書號: 51082
詢問書籍請說出此書號!

缺書
NT售價: 375

出版日:4/1/2019
頁數:288
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121361920
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序 1
CNCF 所提出的云原生概念在相當短的時間內得到了來自 Alibaba、Google、IBM、Pivotal等公司的支持與參與,背后的核心驅動力在于通過打造“事實標準”的軟件去解決云廠商對客戶的鎖定問題。
云原生的本質,是解決應用的彈性(resiliency)、易用性(usability)和可移植性(portability)。當這“三性”得到妥善的解決后,客戶所開發的(分布式)應用可以方便、高效地同時部署于多個云廠商所提供的云服務之上,這不僅解決客戶所擔心的技術鎖定問題,還使得應用能很好地滿足法規(指要求某些影響國計民生的應用必須同時部署于多個云廠商的云上)、全球多活等嚴苛的要求。
在解決“三性”的道路上,Service Mesh 被視為新一代分布式應用架構的軟件基礎設施,并被明確地寫入了云原生概念的定義中。Service Mesh 可以理解為是微服務軟件架構(microservices)的進一步延伸,用于解決大規模微服務應用所面臨的多語言支持、服務全局最優治理、服務(全球)發現與路由、安全保障等挑戰的關鍵技術手段。
開源軟件 Istio 的出現,有望成為云原生中 Service Mesh 的軟件事實標準。Istio 所提出的“數據平面”(Istio 中的 Pilot-discovery、Mixer 等組件)和“控制平面”(Envoy)通過很好的概念切分踐行著軟件行業解決復雜問題的終級范式——分而治之,這兩個“平面”外加“運維平面”(Service Mesh 中并沒有定義)將能很好地助力解決云原生所致力于解決的“三性”問題。
Service Mesh 的最高境界在于讓分布式應用無須關注服務(全球)發現與路由、限流、降級、熔斷、安全等通用問題,但達到這一目標并非一蹴而就,這就需要同仁們在各自的崗位上共同學習、運用和成就這一技術。本書的出現能幫助讀者更好地理解以 Istio 為代表的 Service Mesh 技術背后的設計思路和了解階段性的探索成果。
——李云 阿里巴巴中間件高級技術專家

推薦序 2
近幾年,隨著 Kubernetes 的興起,云原生的理念得到了大規模的推廣。在整個業界,我們看到了云原生的理念正在重新塑造整個技術棧,從應用編排到服務化,再到Serverless,等等。
Linkerd 背后的公司 Bouyant 首先提出了 Service Mesh 的概念,隨后 Google、IBM、Lyft 共同推出了 Istio。目前來看,它有成為 Service Mesh 事實標準的趨勢。因此,想要了解云原生時代下微服務架構應該如何設計和實現,學習 Istio 是一條逃不開的路徑。
那么怎么學習 Istio ,就成了擺在 Istio 愛好者面前的一大難題——Istio 組件繁多,功能也非常強大,要搞清楚這些組件的功能,僅憑翻閱 Istio 官方文檔當然遠遠不夠。難上加難的是,市場上講述 Istio 的書屈指可數。
好在,周遙的這本《Service Mesh 實戰:用 Istio 軟負載實現服務網格》適時問世了,它詳細剖析 Istio 的各個核心功能,完整彌補了這方面的資料缺失,并且介紹了國內部分互聯網企業在 Service Mesh 上的實踐,可謂針對這一熱門技術不可多得的好書。對于想要快速了解 Istio功能,進而準備上手實踐的朋友來說,這本書是有限的選擇中最不會讓你后悔的一個。
——黃挺 螞蟻金服中間件技術專家


早在 2013 年,我供職的阿里巴巴集團(以下簡稱阿里)中間件軟負載團隊就受運維部門之托,開始著手研究新一代的內部服務調度與治理系統。那個時候微服務概念還沒有提出,但阿里在服務化方式上已經走在前列了——強壯的業務由擁有數量龐大的服務群及復雜的調用關系支撐著。運維的需求集中于希望能提供一種“更加靈活、響應更快速且更低成本”的方案來連接、控制、配置整套線上服務系統;因為在當時的 LVS 負載體系下,由于硬件的限制,是不可能做到快速響應的,而獨立部署的 LVS 集群在配置與多環境下都又略顯得有心無力。
當時我的領導蔣江偉(花名小邪)將這一重任交予了我并預示了 SDN(Software Defined Network,即軟件定義的網絡)的發展方向,我很榮幸能擁有這樣的機會,當然也沒有辜負他的期望。一年后,VIPServer 系統誕生,第一次在阿里內部以純軟路由的形式調度各大系統間的請求,并在兩年內完全主宰了內部的服務調用需求。
軟路由的好處在于“軟”,不與實體布線、交換機配置或硬件綁定,對于不同的流量流向什么樣的地方可以任意且隨時地變更,此即靈活。例如我們可以將來自 Android 客戶端的流量指定到鏈路中擁有 Test 標記的服務器,這樣可以實現諸如灰度發布的功能。分布式系統發布至今,系統數量空前爆炸,業務的關系與配置越來越復雜,因此對環境治理與隔離的要求也越來越高。
回顧應用容器的發展,從純硬件到硬件虛擬化、容器化再到彈性編排,無不都是走向“軟件定義”這個方向,因此軟負載領域也應該如此。
2017 年我加入挖財,發現對較大型企業而言,中小規模企業更加飽受服務環境治理之苦,因為中小規模的企業通常沒有過多精力自行研發屬于自己的軟負載體系,大多通過修改開源的組件來實現目的。這樣的問題在于無法組成一個平臺體系,雖然基本功能(如配置、服務發現)能夠滿足,一旦涉及多級協調功能(如鏈路壓測、故障注入體系)的時候,便捉襟見肘了。雖然阿里早些年已經擁有這樣的能力了,但想要將其直接復制到外部的企業卻是一項幾乎不可能完成的任務。阿里的關鍵技術都是定制的(如 RPC 服務 HSF),設計所針對的場景不一定適合中小企業,即關注的點不同;所以對于中小企業而言,需要的就是一個能夠連接各軟負載開源產品的平面,而且這個平面應該與主流的服務編排、RPC、配置及服務發現完美兼容,并最大限度地支持鏈路功能擴展。
帶著上述問題,我一直在思考這個產品的存在形式;而在 Istio 問世以后,我便相信這就是它的最佳形態。我個人看好服務網格(Service Mesh)在服務架構上的影響力,并且相信這是微服務架構的下一個階段,因為對多數企業而言架構本身的復雜度已經開始超越業務邏輯本身,如果不加以統一管理與規劃,那么只是維護成本就已經很高了。
服務網格的思想就像是分布式服務本身下沉到技術棧中,只對業務提供接口供其調用。Istio很巧妙地將其分成了“控制平面”與“數據平面”兩部分,使得接口本身更加清晰。接口清晰的好處在于更加容易地定義邊界與職能,例如“數據平面”部分,Istio 便可以直接依托于開源Envoy 來實現,而且這并不是唯一的選擇;而“控制平面”則為運維人員提供了統一的接口來操作整個鏈路,相較之前的零散的配置,僅這一點就可以節省不少的人力成本。
2018 年,阿里順勢推出了自己的 Nacos 1 來爭奪這一領域,螞蟻金服也公布了 SOFAMesh項目。這說明軟負載仍然是大型分布式系統基礎的重點,只有將環境與調用梳理清楚、高效利用起來,上層的業務及周邊的擴展基礎才能快速地推進。未來的分布式架構只會愈加專注,職能劃分愈加精細,計算愈加彈性靈活。
雖然在本書編寫過程中已經盡力反復去論證、實踐每一處,但難免遺誤,希望大家積極批評指正。最后我要感謝下面這些在編寫本書時一直支持我的朋友們,無論是幫忙訂正還是寫序,感謝你們!同時本書第 6 章得到了螞蟻金服團隊的大力支持,特別感謝你們!當然還有在背后一直支持我的家人們,謝謝!
內容簡介:

《Service Mesh實戰:用Istio軟負載實現服務網格》為網格服務技術的實戰詳解圖書。作者以初學者角度展示軟負載在分布式架構中承擔的角色,引入容器時代主角Kubernetes;再從路由層面全面展開對Service Mesh 與Istio 的系統介紹和深入剖析,包括其功能與特色;最后通過源碼剖析從實現細節上分析Istio 的幾大關鍵設計。不論你是剛開始接觸軟負載的初學者,還是有一定經驗的架構師,都可以在這本細致入微的圖書中找到想要的實用內容。
目錄:

第 1 章 分布式發展史 ........... 1
1.1 單機小型機時期 ............. 1
1.1.1 互聯網的誕生........... 2
1.1.2 復雜應用拆分........... 3
1.1.3 遭遇性能問題........... 3
1.2 集群化時期 ............. 4
1.2.1 從高端設備到普通 PC ........... 4
1.2.2 硬件負載均衡設備 ........... 5
1.2.3 資源配置問題........... 5
1.2.4 積少成多的優勢 ........... 6
1.2.5 集群化架構 ............ 6
1.2.6 軟件負載設備........... 7
1.3 服務化時期 ............. 8
1.3.1 應用到服務 ............ 8
1.3.2 遠程調用 ............ 8
1.3.3 虛擬 IP 地址 ........... 9
1.3.4 復雜的調用關系 ........... 10
1.3.5 服務治理 ............ 11
1.3.6 旁路負載 ............ 12
1.4 微服務時期 ............. 13
1.4.1 服務細化 ............ 13
1.4.2 架構輕量化 ............ 14
1.5 服務網格(Service Mesh)新時期 ......... 15
1.5.1 多語言的困難........... 15
1.5.2 指數級增加的系統復雜度 ......... 15
1.5.3 Linkerd 誕生 ............ 16
1.5.4 第一代服務網格架構 ........... 17
1.5.5 第二代服務網格架構 ........... 18
1.5.6 生產應用情況........... 19
1.6 本章小結 ............. 20
第 2 章 Service Mesh:以 Istio 為例 ........ 21
2.1 Istio 的設計理念 ............ 21
2.1.1 Istio 的誕生背景 ........... 22
2.1.2 控制一切的兩個平面 ........... 23
2.1.3 接口與平臺化........... 24
2.1.4 中心化與分散化的抉擇 ......... 25
2.2 數據平面 ............. 27
2.2.1 xDS-API ............ 27
2.2.2 服務負載及流量控制 ........... 28
2.2.3 入口與出口網關 ........... 31
2.2.4 故障應急機制........... 32
2.2.5 故障注入 ............ 32
2.3 控制平面 ............. 33
2.3.1 Pilot 結構及功能 ........... 33
2.3.2 Mixer 結構及功能 ........... 34
2.3.3 穩定性與容災能力 ........... 37
2.3.4 請求屬性(Attribute) .......... 37
2.3.5 操作配置(Operator Config) ........ 38
2.4 安全控制 ............. 40
2.4.1 Citadel 結構及功能 ........... 42
2.4.2 Istio 身份(Identity) ......... 42
2.4.3 認證(Authentication) ......... 43
2.4.4 鑒權(Authorization) .......... 44
2.5 Hello, Istio! ............. 45
2.5.1 安裝 Docker ........... 45
2.5.2 安裝 Kubernetes .......... 47
2.5.3 初始化 Master 節點 ........... 48
2.5.4 配置 weave 網絡插件 .......... 49
2.5.5 安裝 Istio ............. 49
2.5.6 向 Istio 部署第一個應用 .......... 50
2.5.7 部署 BookInfo 系統 ........... 51
2.6 動手體驗 Istio ............. 53
2.6.1 幾個基本概念........... 53
2.6.2 體驗 1:按版本路由 .......... 55
2.6.3 體驗 2:按權重分流 .......... 56
2.7 BookInfo 示例分析 ........... 57
2.7.1 IngressGateway ........... 57
2.7.2 IngressGateway 配置 .......... 58
2.7.3 Sidecar 路由配置 ........... 59
2.8 本章小結 ............. 62
第 3 章 理解 Istio 服務網格 .......... 65
3.1 Kubernetes 服務組網原理 ........... 65
3.1.1 四層服務部署結構 ........... 66
3.1.2 Node 內部流量路由 .......... 67
3.1.3 Pause 容器 ........... 69
3.1.4 節點間通信接口 CNI ........... 72
3.1.5 服務發現與 DNS ........... 74
3.2 Sidecar 流量接管原理 ........... 76
3.2.1 Sidecar 注入方式 ........... 76
3.2.2 優雅的容器調試方式 ........... 78
3.2.3 Sidecar 流量劫持配置 ......... 79
3.3 Istio 服務組網 ............. 81
3.3.1 鏈路優勢總結........... 81
3.3.2 服務傳輸路徑全覽 ........... 82
3.4 組建零信任安全網絡(Zero Trust Network) ....... 83
3.4.1 點對點的安全傳輸 ........... 84
3.4.2 身份認證(Authentication) ......... 86
3.4.3 安全命名(Secure Naming) ........ 89
3.4.4 服務鑒權(Authorization) ........ 89
3.4.5 啟用 Istio 服務網格安全 .......... 91
3.5 Istio 的擴展設計 ............ 96
3.5.1 Sidecar 對接適配 ........... 96
3.5.2 平臺適配 ............ 100
3.5.3 擴展模板(Template) .......... 104
3.6 本章小結 ............. 108
第 4 章 Istio 周邊生態一覽 ........... 109
4.1 鏈路跟蹤 Jaeger/Zipkin ........... 110
4.1.1 鏈路跟蹤誕生的前因后果 ......... 110
4.1.2 Jaeger 能做什么 .......... 110
4.1.3 如何在 Istio 中使用 Jaeger ......... 112
4.1.4 使用 Trace ID 來查詢跟蹤信息 ....... 115
4.2 分布式監控 Prometheus .......... 117
4.2.1 監控需求的由來及現狀 ......... 117
4.2.2 Prometheus 的功能及特點 ........ 118
4.2.3 Prometheus 架構簡介 .......... 118
4.2.4 如何在 Istio 中使用 Prometheus ....... 120
4.2.5 配置監控報警來實時掌握應用狀態 ....... 124
4.3 監控大盤 Grafana ............ 129
4.3.1 什么是 Grafana .......... 129
4.3.2 如何在 Istio 中使用 Grafana ......... 130
4.3.3 生成新的 Grafana 儀表盤 ........ 132
4.3.4 配置 Grafana 報警通道 .......... 135
4.4 分布式日志 Fluentd........... 137
4.4.1 什么是 Fluentd .......... 137
4.4.2 如何在 Istio 中使用 Fluentd ......... 139
4.4.3 在 Kibana 中查看日志 ......... 147
4.4.4 Elasticsearch 映射配置 .......... 149
4.5 服務圖譜 ............. 156
4.6 本章小結 ............. 157
第 5 章 Istio 部分源碼剖析 ........... 159
5.1 Sidecar(Envoy)源碼分析 .......... 160
5.1.1 準備編輯器 ............ 160
5.1.2 編譯 Envoy 調試版本 .......... 161
5.1.3 配置 Envoy 調試環境 .......... 162
5.1.4 整體架構 ............ 168
5.1.5 過濾鏈與 HTTP 代理 ......... 171
5.1.6 xDS 相關邏輯 ............ 182
5.2 Pilot 源碼分析 ............ 187
5.2.1 Go 語言簡介 ............ 187
5.2.2 編譯 Istio 調試版本 ......... 188
5.2.3 配置 Istio 調試環境 ......... 192
5.2.4 用單元測試快速調試 ......... 195
5.2.5 如何進行啟動調試 ........... 196
5.2.6 Pilot 初始化與平臺對接 ......... 198
5.2.7 模型數據映射及 CRD 監聽 ......... 203
5.2.8 Envoy xDS 對接服務 .......... 206
5.3 Mixer 源碼分析 ............. 211
5.3.1 Mixer 初始化邏輯 ........... 213
5.3.2 前置檢查邏輯詳解 ........... 217
5.3.3 適配器數據流及模板原理 ......... 223
5.3.4 緩存原理與實現 ........... 233
5.4 本章小結 ............. 244
第 6 章 服務網格企業實踐 .......... 245
6.1 升級,值得嗎 ............. 246
6.1.1 升級服務網格的基本要求 ......... 246
6.1.2 如何評估是否需要升級 ......... 247
6.2 從架構上考慮的問題 ........... 248
6.2.1 當前系統所處的狀態 ......... 248
6.2.2 遷移中需要考慮的幾點 ......... 249
6.3 螞蟻金服 SOFAMesh 簡介 .......... 251
6.3.1 項目組成 ............ 251
6.3.2 特色功能 ............ 252
6.4 螞蟻金服漸近式遷移最佳實踐 ......... 253
6.4.1 制定總體路線........... 253
6.4.2 保證遷移前后服務網絡互通 ......... 256
6.4.3 透明攔截帶來的彈性升級 ......... 256
6.4.4 遺留架構在遷移過程中的問題 ......... 257
6.5 本章小結 ............. 260
第 7 章 結語及附錄 ............ 261
7.1 服務網格在整體架構中的定位 ......... 261
7.1.1 現代軟負載應具備的功能 ......... 261
7.1.2 服務網格在系統技術棧中的定位 ....... 262
7.2 軟負載發展方向與未來 ........... 263
7.2.1 技術發展的本質 ........... 263
7.2.2 再談軟負載的發展 ........... 264
7.3 附錄——A-Mixer 所有的支持屬性值 ........ 266
7.4 引用目錄 ............. 266
序: