|
-- 會員 / 註冊 --
|
|
|
|
Docker微服務架構實戰 ( 簡體 字) |
作者:蔣彪 | 類別:1. -> 作業系統 -> Docker |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 50207 詢問書籍請說出此書號!【有庫存】 NT售價: 345 元 |
出版日:11/1/2018 |
頁數:284 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121350337 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:Docker 與微服務是什么 到底什么是架構師?一名架構師的職責應該是什么? 很多年前,我作為一名架構初學者,便了解了架構師要做的事情。從方法論上來看,就是“識別利益相關者”“梳理各個層次的利益傳遞”和“根據利益線索設計有伸縮性的架構”。 同樣,以架構師的視角來看,到底什么是微服務呢?作為架構師,我所看到的微服務,是在團隊人數井噴,產品迭代周期太快,系統中的技術負債過剩導致不能將雞蛋放到同一個搖搖欲墜的籃子,投資人對產品功能特性提出夸張、多變要求的大背景下,在投資人、經理層、研發人員、測試人員、運維人員等各個利益相關者的逼迫下,被迫地將系統從并發、擴展、易維護等維度進行的拆分。 按照微服務的思想將系統拆分之后,我們發現,拆分得越厲害,系統的信息熵就越大,因此有了系統的拆分,就要有拆分之后的治理。 比如,如何保證拆分之后應用的注冊發現?如何保證拆分之后服務的熔斷限流監控?如何保證服務之間底層通信的可靠性和序列化? 為此,各種各樣的服務治理以及分布式服務協同框架便出現了。 那么是不是有了微服務的拆分再加上微服務的治理就足夠了呢?對于開發人員而言也許足夠了,但是對于運維人員而言,遠遠不夠。拆分使得系統的健壯性大大提高,但是也使系統的發布和運維異常復雜。試想一下,如何在一個分布式的環境下令幾萬個微服務快速啟停?如何實現幾萬個微服務的管理、編排與自動擴容? 為了解決這些問題,Docker 以及與Docker 關聯的各種容器編排技術便出現了。 因此,如果我們站在終點回望起點,就會知道為什么會有微服務,又為什么會有Docker,乃至為什么會有今天的Service Mesh。我們可以說,這些技術的產生一脈相承,它們的根本目的都是解決系統復雜度井噴之后的系統架構問題;從學術上來說,這些技術都是在和復雜分布式架構中的信息熵進行對抗;從工程上來說,這些技術是當今時代背景催生出的必然產物。
為什么寫此書 作為一名技術人員,比起知道技術的用法,更重要的是要知道如何使這項技術切合公司現有的技術棧、業務線,如何解決公司的痛點,如何在各個部門的協同下將技術實際落地。 一項技術再好,再優秀,在實際落地中也要“削足適履”,要根據公司的產品線走,跟著公司的技術現狀確定如何應用。畢竟絕大多數公司的第一要務是生存與盈利,能夠專職供養一支底層研究技術團隊的公司少之又少,更何況是對Docker 這樣的“底之又底”的技術棧。 對于一名架構師而言,當你決定引入Docker 的時候,你要知道,你在公司內引入的不是一個簡單的技術框架、一個中間件、一個自動化工具,而是一種思想、一個云平臺、一個新的開發習慣。 對于Docker 的引入,從入門到落地,需要架構師、運維工程師、網絡工程師、研發人員、測試工程師,乃至公司高層的全面支持和協作。把Docker 用到極致,就是在建設自己的云平臺和PaaS,對于這種體量的研究,若沒有一個全面的規劃和路線圖是無法完成的。 同時,對于Docker 的引入者而言,需要學習包括Docker 底層的原理、Docker 的網絡模型、Docker 的容器隔離、Docker 下的自動發布與自動運維,乃至常被很多人掛在嘴邊的Docker 容器編排、Docker 與微服務、Docker 與DevOps 在內的方方面面的知識。 上述所有的知識,若能夠集中在一個人身上,實在是難得。畢竟,在IT 行業,每個人都有自己的知識短板。 甚至我可以負責任地說,在很多公司中,若想找到一支能夠搞定底層到上層方方面面建設的專業團隊,都是很困難的。 舉個例子,我見過很多Docker 實際應用的場景,在一些中型場景中,通常直接用bridge端口來轉發通信,為什么會這樣?因為很多公司雖然不缺少優秀的程序員,但是缺少網絡方面的架構師,不懂也不敢嘗試復雜的網絡模式。再比如,我親眼見到有的項目在落地的時候,采用Docker 掛載卷軸的方式發布代碼,為什么?因為這些公司缺少專門的人來維護CI/CD 平臺。 正是因為有這些困難,所以筆者將自己在中小型企業中推廣微服務和Docker 的親身經歷和親眼所見總結出來,從技術選型和架構切入的層面進行梳理,希望通過這本書將這些好的經驗傳遞給需要的讀者,幫助更多的人。
本書內容 本書共包括三個部分,共計13 章,每部分及每章的簡要內容如下。 第一部分 Docker 與微服務基礎 第1 章 微服務架構概述 本章介紹了微服務具體是什么,為什么要使用微服務,微服務的架構設計原則,以及從單體到微服務的演進過程。 第2 章 微服務中的技術選型 本章主要介紹了微服務架構中的各種技術選型,包括服務治理、服務網關、服務發現、請求鏈路追蹤等。 第3 章 Service Mesh 本章主要介紹了目前非常前沿的一個微服務架構Service Mesh,講述其定義、優勢、發展歷程以及未來可能的發展趨勢。 第4 章 Docker 技術簡介 本章主要介紹了Docker 技術是什么,Docker 與傳統VM 的區別,Docker 的作用和優勢,Docker 生態圈的現狀與發展,以及微服務與Docker 的聯系等。 第二部分 Docker 架構與生態 第5 章 Docker 技術架構 本章介紹了Docker 的進程模型,Docker 在宿主機上的進程特征,Docker 容器的底層實現機制,以及Docker 在運行時的技術模型。 第6 章 Docker 邏輯架構 本章介紹了Docker 中各個核心組件之間的邏輯架構關系,講解了各個組件之間是如何進行耦合的,最后簡單介紹了開源倉庫Harbor 的原理和部署方式。 第7 章 Docker 網絡架構 本章介紹了Docker 在單機環境下的網絡通信模式,包括Bridge、Host、Container、None等,同時介紹了Docker 在跨主機集群環境下的常見網絡通信模式,比如Flannel、L2-FLAT 等。 第8 章 Docker 安全架構 本章介紹了Docker 技術中常見的安全問題,比如Docker 自身隔離機制不足導致的安全缺陷、Docker 鏡像被注入惡意代碼導致的安全缺陷等,同時提出了一系列的Docker 安全檢查基線,最后介紹了幾種常見的Docker 安全工具。 第9 章 Docker 與DevOps 本章介紹了Docker 中的代碼如何掛載,如何在Docker 容器中實現服務注冊發現,同時介紹了Dockerfile 的寫法和規范,以及如何在Docker 中收集日志、實施監控,如何與CI/CD 平臺整合等。 第10 章 容器編排 本章介紹了容器編排技術的概念、用途和具體用法,列舉了常見的幾種容器編排技術,比如Swarm、Kubernetes 和Mesos 等,對它們進行了比較,簡單介紹了它們的部署安裝及使用方法。 第三部分 Docker 落地之路 第11 章 企業級Docker 容器云架構 本章介紹了在企業級環境下如何進行整體的Docker 架構設計,同時介紹了圍繞著Docker建立企業級容器云平臺架構的方法。 第12 章 基于Rancher 的容器云管理平臺 本章介紹了基于開源PaaS 軟件Rancher 建立企業級容器云平臺的各類方案,以及其中各種技術難點的解決方法。 第13 章 微服務與Docker 化實戰 本章介紹了如何在某條實際產品線的Docker 化落地過程中進行平滑切入,如何打通容器網絡和物理網絡,以及如何將產品線整合進Rancher 的容器云平臺。 |
內容簡介:微服務與Docker 是近年來分布式大規模服務架構中兩個主流的技術趨勢,本書主要介紹中小型企業在架構落地過程中柔性地切入微服務和Docker 虛擬化的各種方法。書中主要介紹了微服務架構的各種技術選型、微服務拆分的各項原則、傳統應用向微服務架構過渡的方法論、Docker 技術原理、Docker 跨主機通信選型、Docker 與DevOps 的整合方法等要點,同時簡單介紹了利用Rancher 搭建Docker 容器云平臺的快速解決方案,非常適合云計算從業人員閱讀、學習。 |
目錄:第一部分 Docker 與微服務基礎 .......... 1 第1 章 微服務架構概述 ............ 2 1.1 什么是微服務 ............. 2 1.1.1 CORBA ............. 3 1.1.2 DCOM ............. 4 1.1.3 RMI .............. 5 1.1.4 SOA ............. 7 1.2 為什么要使用微服務 ........... 9 1.2.1 scale cube ............. 9 1.2.2 API 網關 ............ 13 1.3 微服務架構設計原則 ........... 15 1.3.1 業務架構 ............. 15 1.3.2 邏輯架構 ............. 16 1.3.3 技術架構 ............. 19 1.3.4 基礎架構 ............. 20 1.4 從單體到微服務 ............. 21 1.4.1 止損 ............. 22 1.4.2 前后端分離 ............. 23 1.4.3 提取服務 ............. 24 第2 章 微服務中的技術選型 ........... 26 2.1 服務治理 ............. 27 2.1.1 Dubbo .............. 27 2.1.2 Spring Cloud ............ 30 2.2 服務網關 ............. 35 2.2.1 OpenResty ............ 35 2.2.2 Orange ............. 38 2.2.3 Kong .............. 40 2.2.4 Zuul .............. 41 2.3 服務注冊發現 ............. 43 2.3.1 ZooKeeper ............. 43 2.3.2 Eureka .............. 49 2.4 配置中心 ............. 51 2.5 請求鏈路追蹤 ............. 57 第3 章 Service Mesh ............. 64 3.1 初識Service Mesh ............ 64 3.1.1 什么是Service Mesh ........... 64 3.1.2 為什么使用Service Mesh ......... 65 3.2 Service Mesh 的發展過程 .......... 66 3.2.1 早期的分布式計算 ........... 66 3.2.2 微服務時代的分布式計算.......... 68 3.3 主流的Service Mesh 框架 ........... 73 第4 章 Docker 技術簡介 ............ 75 4.1 Docker 是什么 ............ 75 4.2 Docker 的作用 ............ 77 4.2.1 用Docker 快速搭建環境 .......... 78 4.2.2 用Docker 降低運維成本 .......... 83 4.2.3 Docker 下自動發布 ........... 84 4.3 Docker 的生態圈 ............ 86 4.4 微服務與Docker ............ 89
第二部分 Docker 架構與生態 ............ 93 第5 章 Docker 技術架構 ............ 94 5.1 Docker 的進程模型 ............ 94 5.1.1 容器中進程啟動的兩種模式 .......... 96 5.1.2 容器中的進程隔離模型 ......... 101 5.1.3 容器的自重啟 ........... 102 5.1.4 容器中用戶權限的隔離和傳遞 ........ 103 5.1.5 Docker 守護進程宕機的處理機制 ....... 104 5.2 容器的本質 ............. 104 5.2.1 Namespace 解惑 ............ 105 5.2.2 Rootfs 解惑 ............ 106 5.2.3 CGroups 解惑 ............ 109 5.3 Docker 容器的運行時模型 ........... 111 第6 章 Docker 邏輯架構 ............ 113 6.1 Docker Registry 的技術選型 ...........114 6.2 Harbor 的部署 ............115 第7 章 Docker 網絡架構 ............ 120 7.1 Docker 的單機網絡模式 .......... 120 7.1.1 Bridge 模式 ........... 120 7.1.2 Host 模式 ............. 123 7.1.3 Container 模式 ........... 124 7.1.4 None 模式 ............ 125 7.2 Docker 的集群網絡模式 .......... 126 7.2.1 Bridge 端口轉發 ........... 126 7.2.2 扁平網絡 ............. 127 7.2.3 Flannel 模式 ............ 130 第8 章 Docker 安全架構 ............ 135 8.1 Docker 安全問題 ............ 135 8.2 Docker 安全措施 ............ 138 第9 章 Docker 與DevOps ........... 148 9.1 DevOps 概要 ............. 148 9.2 Docker 容器的代碼掛載機制 .......... 149 9.2.1 靜態導入 ............. 149 9.2.2 動態導入 ............. 150 9.3 Docker 與服務發現 ............ 150 9.4 Dockerfile 怎么寫 ............. 164 9.5 Docker 與日志 ............ 172 9.6 Docker 與監控 ............ 176 9.7 Docker 與CI/CD ............. 182 9.8 Docker 給運維團隊帶來的挑戰 .......... 184 第10 章 容器編排 ............. 186 10.1 容器編排概述 ............. 186 10.2 容器編排技術選型 ........... 189 10.2.1 Docker Swarm ........... 189 10.2.2 Kubernetes ........... 191 10.2.3 Marathon ............ 194 10.3 Kubernetes 實戰 ............ 197 10.3.1 Kubernetes 快速安裝 .......... 198 10.3.2 在Kubernetes 上部署應用 ......... 203 10.4 Docker Swarm 實戰 ............ 210 10.4.1 Docker Swarm 的快速安裝 ........ 212 10.4.2 在Decker Swarm 上部署應用 ........ 214
第三部分 Docker 落地之路 ........... 221 第11 章 企業級Docker 容器云架構 ........... 222 11.1 宏觀系統視角下的架構 ........... 222 11.2 容器云平臺邏輯架構圖 ........... 223 第12 章 基于Rancher 的容器云管理平臺 ......... 226 12.1 Rancher 概述 ............. 226 12.2 Rancher 的安裝 ............. 227 12.3 Rancher 對IaaS 的管理 .......... 228 12.4 Rancher 下多租戶多環境的管理 ......... 236 12.5 Rancher 對SaaS 的管理 ........... 240 12.6 Rancher 對容器的管理 ........... 242 12.7 Rancher 的L2-FLAT 網絡 ........... 248 12.8 Rancher 的服務治理 ............ 249 第13 章 微服務與Docker 化實戰 ........... 258 13.1 整體架構鳥瞰 ............. 258 13.2 基于log-pilot 的日志收集 ........... 261 13.3 基于Zabbix 的容器監控 .......... 263 13.4 簡單的DevOps 架構圖 .......... 264 13.5 推進方案和成本 ............. 266 |
序: |
|