![](/c49/99/12711102.jpg)
出版社:中國電力出版社 ISBN:9787519834852 版次:1 商品編碼:12711102 品牌:中國電力出版社(zhongguodianlichubanshe) 包裝:平裝 外文名稱:Designing 開本:16開 出版時間:2019-09-01 用紙:膠版紙 頁數:150 字數:186000 正文語種:中文 作者:Brendan,Burns,趙軍平,王天青
" 編輯推薦 容器及其編排繫統的快速發展極大地改變了分布式繫統的開發和部署方式,從此,我們有了全新的方式與接口來描述核心分布式繫統的開發模式及可重用的容器化組件。作為一本指導性手冊,本書主要介紹了常見的可重用的設計模式,以幫助開發人員更高效地開發可靠的分布式繫統。 之前開發者經常不得不從頭開發繫統,導致每個繫統架構看起來都各不相同。本書作者展示了如何利用現有的、驗證過的設計模式來構建可靠的分布式繫統。對於繫統工程師和應用開發者而言,可以從中學習如何借助設計模式強大的語言和框架表征優勢來顯著提高工程質量。
內容簡介 容器及其編排繫統的快速發展極大地改變了分布式繫統的開發和部署方式,從此,我們有了全新的方式與接口來描述核心分布式繫統的開發模式及可重用的容器化組件。作為一本指導性手冊,《分布式繫統應用設計》主要介紹了常見的可重用的設計模式,以幫助開發人員更高效地開發可靠的分布式繫統。 之前開發者經常不得不從頭開發繫統,導致每個繫統架構看起來都各不相同。 《分布式繫統應用設計》作者展示了如何利用現有的、驗證過的設計模式來構建可靠的分布式繫統。對於繫統工程師和應用開發者而言,可以從中學習如何借助設計模式強大的語言和框架表征優勢來顯著提高工程質量。 深入理解設計模式和可重用組件如何幫助開發者開發可靠分布式繫統。如何借助邊車、適配鬻和大使模式在單機環境中將功能分解成為一組容器。 掌握多節點常見的松耦合模式,以實現復制、擴展和組件之間的通信。 學習大規模批處理設計模式,如工作隊列、基於事件的處理和協調工作流程。 作者簡介 Brendan Burns,微軟Azure的傑出工程師,也是Kubernetes開源項目的共同創始人。在加入微軟之前,他曾在谷歌雲平臺工作,幫助構建了Deployment Manager和Cloud DNS等API。
精彩書評 “本書是介紹分布式繫統概要的絕好讀本,它可以指導開發者高效地構建Z新的分布式繫統,並通過Kubernetes編排繫統與其他雲原生應用很好的結合起來,共同搭建起繫統總體架構。” ——Anne Currie 首席戰略官, Container Solutions公司
目錄 目錄 前言1 第1章 概述7 繫統開發簡介7 軟件開發中的模式簡介8 模式,實踐和組件的價值10 小結12 第Ⅰ部分 單節點模式 第2章 邊車模式17 一個邊車模式的例子:為遺留繫統增加HTTPS 功能18 基於邊車模式的動態配置19 模塊化應用容器20 使用邊車模式構建一個簡單的PaaS22 基於邊車模式的模塊化和可重用性設計23 小結27 第3章 大使模式28 使用大使模式來做服務分片29 使用大使模式實現服務代理33 使用大使模式做請求驗證或拆分33 第4章 適配器37 監控38 日志40 第Ⅱ部分 服務模式 第5章 基於副本的負載均衡51 無狀態服務51 會話跟蹤服務55 應用層復制服務56 緩存層介紹56 擴展緩存層60 小結64 第6章 分片服務65 緩存分片66 深入了解分片函數73 支持副本的分配服務77 熱分片繫統77 第7章 分散模式與聚集模式79 在根節點上進行分散/聚集80 葉子分片82 第8章 函數與事件驅動處理87 何時采用FaaS87 FaaS的模式91 第9章 所有權選舉98 是否需要主副本選舉99 主副本選舉概要101 處理並發操作109 第Ⅲ部分 批處理計算模式 第10章 工作隊列繫統115 通用工作隊列繫統115 實踐:實現視頻縮略圖器122 動態擴展執行器123 多執行器模式125 第11章 事件驅動的批處理127 事件驅動批處理模式128 實踐:為新用戶注冊構建事件驅動流程134 發布者/訂閱者基礎結構136 實踐:部署Kafka137 第12章 協調批處理140 連接(或欄柵同步)140 Reduce142 實踐:圖像標記和處理流水線145 第13章 結論:一個新的開始149 查看全部↓ 前言/序言 前言 誰適合讀這本書 如今幾乎每個開發人員都堪稱為分布式繫統的開發人員或使用者(甚至兩者皆有)。即使相對簡單的移動應用也已經支持了雲API,因此數據可以來自客戶手中的任何設備。無論你是開發分布式繫統的新兵,還是經驗豐富的老手,本書所描述的設計模式和組件都可以幫助你將分布式繫統開發從藝術轉變為科學。分布式繫統的可重用組件和相關開發模式使得開發者可以更專注於應用的核心邏輯。本書的目標是幫助開發人員在構建分布式繫統時可以做得更好、更快、更高效。 為何寫這本書 從Web搜索到雲,在我的軟件繫統開發經歷中,曾經負責過許多可擴展、可靠的分布式繫統。總的來說,這些繫統幾乎每一個都是從頭開始構建的,而且其他很多分布式應用程序也是如此。雖然秉持著相同的設計理念,有時甚至是幾乎相同的邏輯,但如何合理采用合適的設計模式或重用組件,依然是擺在開發者面前極具挑戰性的任務。坦白講,在重新繫統實現上我浪費了太多的時間,而結果有時還不如原來那般精致。 最近興起的容器和容器編排繫統則從根本上改變了分布式繫統開發的格局。突然間,我們有了一個更好的對像與接口,來表示核心分布式繫統模式及構建可重用的容器化組件。我寫這本書主要是為了彙集分布式繫統從業者的經驗,提供一個可共享的語言和通用標準庫,以方便快捷地構建更好的繫統。 今天的分布式繫統世界 曾幾何時,人們編寫的程序主要在單機上運行和訪問。世界變化如此之快,現在幾乎每個大型應用程序都是運行在多臺機器上的分布式繫統,開放給世界各地的海量用戶並發訪問。然而設計和開發這些繫統通常像個黑盒子,僅由少部分人所掌握。與所有技術類似,分布式繫統也在不斷地快速演進、規範化和抽像化。本書主要描述了一繫列可重復的通用模式,這些模式可以使可靠的分布式繫統的開發更加簡單和高效。模式和可重用組件的采用使得開發人員無需再重復造輪子,的時間則可以專注於構建應用核心邏輯。 本書的主要內容 本書分為以下四部分: 第1章,概述 簡單介紹分布式繫統,並解釋為什麼模式和可重用組件可以在可靠的分布式繫統的快速開發中發揮重要作用。 第Ⅰ部分,單節點模式 第2~4章主要討論在單節點上的設計模式和可重用組件,包括邊車、適配器和大使模式。 第Ⅱ部分, 服務模式 第8章和第9章主要針對長期運行的服務(如Web應用程序)介紹多節點分布式模式,包括復制、伸縮和主節點選舉等。 第Ⅲ部分,批處理計算模式 第10~12章介紹用於大規模批處理數據處理的分布式繫統模式,包括工作隊列、基於事件的處理和協調的工作流程。 如果你是一位經驗豐富的分布式繫統工程師,可以跳過前面幾章,這些章節主要是介紹本書的期望,如何應用這些模式,以及為什麼分布式繫統模式概念如此重要。 幾乎每個人都能在單節點模式中找到一些很有幫助的實用工具,它們是本書最為通用和最可重用的模式。 根據你的學習目標和興趣點,可以選擇專注於大規模的大數據模式,或長期運行服務器模式(或兩者兼有)。這兩部分在很大程度上彼此獨立,可以按任意順序閱讀。 如果你已經有了豐富的分布式繫統經驗,可能會發現前面某些章節(例如,第II部分中關於命名、發現和負載平衡部分)已經非常熟悉,可以選擇性閱讀,但推薦快速瀏覽下其中的圖片或者框圖。 排版約定 本書使用以下排版約定: 斜體(Italic) 表示一個新術語、URL、電子郵件、文件名或者文件擴展名。 等寬字體(Constant width) 表示程序列表及段落內部用於引素,如變量或函數名稱、數據庫、數據類型、環境變量、函數語句和關鍵字等。 加粗等寬字體(Constant width bold) 表示由用戶所輸入的命令或其他文本。 斜體等寬字體(Constant width italic) 表示應由用戶所提供的實際值或根據上下文所確定的值來替換的文本。 在線資源 本書描述了一般適用的分布式繫統模式,但希望讀者熟悉容器和容器編排繫統。如果你沒有很多這方面的知識儲備,建議使用以下資源快速學習: ? https://docker.io ? https://kubernetes.io ? https://dcos.io 使用代碼示例 相關補充材料(包括代碼示例,練習等)可以從https://github.com/brendandburns/designing-distributed-systems下載。 本書是為了幫助你完成你的工作。通常對於本書提供的示例代碼,你可以在自己程序和文檔中使用它。除非復制了大部分代碼,否則無需與我們聯繫以獲得許可。使用本書中幾個代碼塊不需要許可,出售或分發O'Reilly書籍中的示例光盤則需要獲得許可,通過引用本書和示例代碼來回答一些問題則不需要許可,將本書中的大量示例代碼集成到產品文檔中則需要獲得許可。 我們很希望但並不強制要求你在引用本書內容時加上引用說明。引用說明一般包括書名、作者、出版社和ISBN。例如:“Designing Distributed Systems by Brendan Burns (O’Reilly). Copyright 2018 Brendan Burns, 978-1-491-98364-5”。 如果你認為對代碼示例的使用可能會超出合理的使用範圍或上述許可,請通過郵件permissions@oreilly.com與我們聯繫。 O’Reilly Safari Safari(之前稱為Safari Books Online)是一個基於會員的培訓和參考平臺,適用企業、政府、教育工作者和個人。 會員可以訪問來自250多家出版商的數千本書籍、培訓視頻、學習路徑、互動教程和策劃播放列表,包括O’Reilly Media、Harvard Business Review、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Adobe、Focal Press、Cisco Press、John Wiley&Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones&Bartlett和Course Technology等。 想了解更多信息,請訪問http://oreilly.com/safari。 如何聯繫我們 如有任何關於本書的反饋和意見,請聯繫出版商: 美國: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 中國: 北京市西城區西直門南大街2號成銘大廈C座807室(100035) 奧萊利技術咨詢(北京)有限公司 我們提供了一個本書的Web頁面,其中列出了勘誤表、示例和相關內容信息。 歡迎訪問http://bit.ly/designing-distributed-systems。 如有相關評論或技術問題,請發送電子郵件至bookquestions@oreilly.com。 有關我們的書籍、課程、會議和新聞的更多信息,請訪問我們的網站http://www.oreilly.com。 我們的Facebook:http://facebook.com/oreilly。 我們的Twitter:http://twitter.com/oreillymedia。 我們的YouTube:http://www.youtube.com/oreillymedia。 致謝 感謝我的妻子Robin和我的孩子們,她們讓我感到快樂和高效,並為此奉獻了很多,也非常感謝那些花時間幫助我學習這些知識的所有人,同時還要感謝我的父母。 查看全部↓
" |