架構寶典( 簡體 字) | |
作者:中生代技術社區 | 類別:1. -> 程式設計 -> 綜合 |
出版社:電子工業出版社 | 3dWoo書號: 50822 詢問書籍請說出此書號! 有庫存 NT售價: 375 元 |
出版日:3/1/2019 | |
頁數:280 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121360664 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1 篇 架構方法論
1 有關架構的概念認知............... 2 1.1 引言................. 2 1.2 認識架構................ 2 1.3 規劃、架構與設計.............. 4 1.3.1 三個不同層次的概念.............. 4 1.3.2 規劃與架構............... 4 1.3.3 架構與設計............... 5 1.4 解耦與服務化................ 6 1.5 分工與組件化................ 6 1.6 集中與分布............... 7 1.7 規劃還是演化................ 8 1.8 簡化也很必要................ 9 1.9 架構與軟件開發(軟件過程) ............11 1.9.1 敏捷軟件開發..............11 1.9.2 敏捷軟件開發與微服務架構...........12 1.10 探討傳統企業IT 系統架構.............12 1.10.1 從架構角度解決企業應用痛點...........13 1.10.2 企業應用系統架構服務化遷移步驟...........13 1.10.3 企業應用系統架構服務化參考模型...........14 1.11 總結................15 2 以終為始的架構設計...............16 2.1 緣起..................16 2.2 我們的思考方式..............17 2.3 為什么要做架構設計.............18 2.3.1 由模型到實施..............18 2.3.2 業務規模發展帶來的復雜度...........19 2.3.3 從溝通視角看軟件架構.............20 2.4 如何做架構設計..............20 2.4.1 以終為始,不忘初心.............21 2.4.2 PMC 框架...............21 2.4.3 從多視角、多層次看架構.............23 2.4.4 滿足利益相關者的需要.............25 2.4.5 聚焦SLA...............26 2.4.6 抽象、協作、擴展、復用.............28 2.4.7 分析全息視圖..............29 2.5 架構是什么................29 2.5.1 架構兼具組成和決策的特點...........30 2.5.2 架構是演進來的.............30 2.5.3 無純粹的非功能特性.............31 2.6 總結..................32 3 閉環架構方法................34 3.1 系統提升的一般性方法和反饋環............34 3.2 產品創新閉環...............36 3.3 組織閉環.................37 3.4 研發流程閉環...............39 3.5 系統架構閉環...............40 3.6 一個反饋閉環實例...............41 3.7 總結..................44 4 復雜與架構演進的關系..............46 4.1 什么是復雜................46 4.1.1 規模...............47 4.1.2 結構...............51 4.1.3 變化...............58 4.2 用架構思維控制復雜.............67 4.2.1 分而治之,控制規模.............67 4.2.2 保持架構的清晰與一致.............67 4.2.3 擁抱變化...............70 4.3 總結..................71 5 架構師的核心能力...............72 5.1 架構師承擔的職責...............72 5.2 架構師的核心能力...............73 5.2.1 經驗...............73 5.2.2 溝通...............74 5.2.3 快速學習...............74 5.2.4 解決問題的能力.............76 5.3 架構能力的修煉..............76 5.4 總結..................77 第2 篇 面向架構的架構(微服務) 6 快速繼承微服務實踐...............80 6.1 概述..................80 6.2 我們希望的微服務是什么樣子的............81 6.3 實現微服務................82 6.4 實現的考量及調研...............83 6.4.1 gRPC 有什么問題..............83 6.4.2 如何提高易用性.............83 6.5 讓微服務快速落地...............87 6.6 總結..................89 7 微服務架構下的事務處理..............90 7.1 概述..................90 7.2 使用傳統的本地事務和分布式事務保證一致性........90 7.3 在微服務架構中應滿足數據最終一致性原則.........92 7.4 微服務架構實現最終一致性的三種模式..........92 7.4.1 可靠事件模式..............93 7.4.2 業務補償模式..............101 7.4.3 TCC(Try-Confirm-Cancel)模式..........106 7.5 總結................109 8 微服務架構模式與實踐..............110 8.1 微服務的主要架構模式............110 8.1.1 一體化模式..............110 8.1.2 聚合模式..............110 8.1.3 代理模式..............111 8.1.4 資源共享模式..............112 8.1.5 異步消息模式..............112 8.2 大量微服務帶來的挑戰............112 8.3 微服務在好雨的解決方案.............113 8.3.1 服務發現和注冊.............113 8.3.2 彈性伸縮與負載均衡.............115 8.3.3 容錯處理(斷路器與限流)...........116 8.3.4 監控與報警..............116 8.3.5 數據存儲與共享.............116 8.3.6 日志分析..............117 8.4 總結................118 9 微服務與DevOps 架構實踐.............119 9.1 概述................119 9.2 某金融創業公司的微服務架構選型...........122 9.3 設計思想...............124 9.4 總體架構...............125 9.4.1 總體架構的特性.............125 9.4.2 具體實現..............126 9.5 對微服務的支撐..............128 9.6 DevOps 平臺總體架構..............130 9.7 面向微服務的研發團隊介紹...........131 9.8 總結................133 10 基于云的微服務架構..............134 10.1 概述................134 10.2 德比軟件數據對接平臺的架構............134 10.3 德比軟件微服務架構基礎設施............135 10.4 API 網關...............136 10.5 服務框架................136 10.5.1 高可用RPC..............137 10.5.2 服務依賴管理..............138 10.6 基礎服務................140 10.6.1 配置中心..............140 10.6.2 安全數據服務..............141 10.6.3 數據存儲服務..............141 10.6.4 訂單服務..............142 10.7 服務降級................142 10.8 自動化.................142 10.9 日志處理................143 10.10 調用鏈追蹤..............144 10.11 服務健康狀態..............144 10.11.1 報警...............144 10.11.2 監控...............145 10.12 發布管理................146 10.13 總結.................147 11 Service Fabric:平臺架構解析.............148 11.1 Service Fabric 概述.............148 11.1.1 Service Fabric 的特點.............148 11.1.2 Service Fabric 的適用場景...........149 11.2 Service Fabric 編程模式............150 11.3 Service Fabric 服務通信............152 11.3.1 Service Fabric 的微服務開發工具...........153 11.3.2 對Service Fabric 的微服務進行監控和診斷........153 11.4 Service Fabric 可靠服務概述............154 11.4.1 Service Fabric 可靠服務——有狀態服務的體系結構......154 11.4.2 Service Fabric 可靠服務——無狀態服務的體系結構......156 11.4.3 Service Fabric 可靠服務——備份...........157 11.5 Service Fabric 可靠執行組件............157 11.6 Service Fabric 容器應用程序............159 11.7 總結................160 第3 篇 面向業務的架構 12 如何搭建高可伸縮的移動電商架構...........162 12.1 概述微服務的主要架構模式...........162 12.2 移動端的混合架構.............162 12.3 服務器端的SOA 架構............164 12.4 PC 端和移動端的開發協作管理..........166 12.5 基于容器的虛擬化.............166 12.6 關于電商的私有云建設............167 12.7 如何應用彈性云來應對電商大促...........169 12.8 應對電商大促峰值的“獨孤九劍”...........170 13 消費信貸系統“白付美”是如何持續優化的..........172 13.1 “白付美”介紹..............172 13.2 “白付美”從0 到1..............172 13.3 大促期間的性能保證..............174 13.4 大促期間的穩定性保證............177 13.5 為服務多平臺所做的優化.............178 13.6 未來的優化方向..............179 13.7 總結................180 14 美麗聯合集團支付系統架構演進...........182 14.1 概述................182 14.2 支付系統1.0 ..............182 14.2.1 業務問題..............183 14.2.2 系統問題..............184 14.2.3 資金問題..............185 14.3 支付系統2.0 ..............185 14.3.1 拆分系統邊界..............185 14.3.2 支付系統2.0 系統詳解.............187 14.3.3 統一平臺業務上下文.............192 14.3.4 直面數據一致性挑戰.............192 14.4 性能提升................194 14.5 穩定性提升................201 14.5.1 監控先行..............201 14.5.2 分離核心鏈路..............201 14.5.3 服務依賴梳理..............203 14.5.4 限流降級..............203 14.6 壓測................204 14.7 成效................204 14.7.1 業務支撐能力..............204 14.7.2 系統服務能力..............205 14.8 總結................206 15 金融撮合架構...............207 15.1 概述................207 15.2 系統總體設計..............208 15.2.1 系統核心模塊..............208 15.2.2 撮合算法設計..............209 15.2.3 基于內存撮合..............212 15.2.4 災備的多機設計.............212 15.2.5 狀態機復制..............213 15.2.6 系統架構..............215 15.3 總結................218 第4 篇 面向性能的架構 16 一線架構師帶你玩性能優化.............220 16.1 什么是系統優化..............220 16.2 系統優化的方法論、思路和原則...........220 16.2.1 常用方法論..............221 16.2.2 優化思路..............221 16.2.3 優化原則..............222 16.3 性能優化................222 16.3.1 常見的性能問題.............222 16.3.2 性能優化的具體工作.............223 16.3.3 JVM 優化...............230 16.3.4 數據庫優化..............233 16.3.5 負載均衡優化..............235 16.4 總結................237 17 性能優化的常見模式及趨勢.............238 17.1 性能優化的優缺點.............238 17.2 性能優化的兩種模式..............239 17.3 單應用優化................239 17.3.1 優化的基本思路.............239 17.3.2 確定性能瓶頸/熱點的常見方法..........240 17.3.3 壓測時通常觀察的內容及其所使用的工具.........240 17.3.4 常見的優化手段及模式.............240 17.4 結構型優化................241 17.5 兩個結構型優化的案例............245 17.5.1 處理單點/網絡瓶頸的可行方式..........245 17.5.2 處理數據庫連接池瓶頸的可行手段.........245 17.6 總結................247 18 性能優化之幾種常見的壓測模型及其優缺點..........248 18.1 壓測模型抽象..............248 18.1.1 壓測環境準備..............249 18.1.2 壓測任務準備..............249 18.1.3 壓測執行閉環..............249 18.2 線下壓測模型..............250 18.3 線上引流壓測模型.............251 18.4 線上全鏈路壓測模型..............252 18.5 總結................253 19 緩存為王——無線緩存架構優化............254 19.1 無線緩存的定義、限制條件及影響...........254 19.2 無線緩存要從全局考慮............254 19.2.1 服務器端架構對無線緩存的影響...........254 19.2.2 無線緩存對服務器端架構的影響...........255 19.2.3 大流量下無線緩存作用的劣化...........256 19.2.4 無線緩存與本機移動端組件的關系.........256 19.2.5 無線緩存存儲介質的選擇...........257 19.3 數據、資源緩存及失效策略...........257 19.3.1 架構詳論..............257 19.3.2 實現失效策略..............259 19.4 總結................263 本書從架構設計概念、方法、模式、實踐案例等4 個方面進行闡述,內容豐富,是一本可以很好指導實踐的書籍,更是各位資深專家和架構師的經驗總結。本書共分為4 部分:第一部分介紹架構設計的概念、方法論,以及架構師的核心能力;第二部分介紹微服務架構選型、架構模式與實踐、數據一致性保證、微服務與DevOps 的關系以及如何設計云微服務架構;第三部分介紹移動電商、消費信貸、支付系統、金融撮合等領域的優秀實踐;第四部分介紹優化系統架構性能的方法論、案例、關鍵技術等。本書適合即將步入架構領域的技術專家,以及致力于提升軟件架構設計能力的架構師、設計人員和開發人員閱讀,希望本書能夠為讀者的實際工作和個人成長提供幫助。
序
2015 年年底,有感于成都技術氛圍亟待提升,來自螞蟻金服的于君澤(右軍)和我組織成立了中生代技術社區,旨在為技術人員提供一個更便于交流的平臺。中生代社區的成立,一方面可以壯大成都技術交流圈,另一方面可以匯集一線城市的技術力量,通過技術交流與分享助力技術水平的提升。3 年時間里,社區連接了5000 多位技術大咖,組織了數百場線上技術分享,以及數十場線下技術沙龍。 2017 年,出版社的編輯老師找到我們,希望通過出版圖書的方式將技術架構方面的知識傳播給更多的讀者。于是社區邀請了來自一線互聯網公司的技術架構專家和架構領域布道者進行經驗分享,并把這些技術大咖的分享內容進行了系統的整理,經過重新編排、精心打磨、多次迭代、推陳出新,中生代技術社區的《架構寶典》終于在兩年后的今天與大家見面了。 本書凝聚了社區技術架構專家們的心血,涵蓋架構設計、技術選型、實際案例、技術原理等方方面面的知識,對于即將步入架構領域的技術專家和需要繼續提升專業素養的架構師而言都是不可或缺的案頭書。 本書的出版離不開眾多朋友的大力支持,感謝本書策劃人右軍、孔慶龍、李偉山,他們共同確立了本書的內容架構,同時還負責組織作者,溝通技術細節,為出版提供了有力保障。同時感謝石頭(石濤生)和老曹(曹洪偉),他們在項目前期的策劃和統稿階段付出了許多心血。 感謝本書的作者,他們是李曉時、右軍、楊波、張逸、孔慶龍、劉地生、田向陽、劉凡、王東、朱攀、朱永光、黃哲鏗、王輝(覺遠)、陳宗(鐵手)、李偉山、陳顯銘(山丘)、高磊,是他們近兩年來夜以繼日的努力,才讓本書日臻完善。 感謝編輯劉恩惠和其他編輯老師,是他們的專業讓本書的出版成為可能,他們不厭其煩地審閱、校正,保障了本書內容的專業性。 最后要特別感謝一直以來大力支持中生代技術社區的10 多萬名朋友,沒有你們的共同參與,就沒有社區的今天,更沒有本書的誕生,感謝你們! 王友強 中生代技術社區創始人 前言 軟件架構定義的多樣性和各個企業對架構師的定位不同,導致很多程序員在向架構師轉型的過程中有些茫然。本書匯聚了國內一線互聯網公司的技術架構專家、架構領域布道者在架構方法論、微服務、業務架構、性能架構幾個方面的經驗,從系統架構設計和實踐方法與技巧兩個方面進行闡述,非常具有指導意義,希望讀者能在這里找到解惑的鑰匙或突破瓶頸的方法。 這本書在形式上與《論語》類似,是匯集各個領域專家經驗的文集,讀者可以根據自己的關注點有針對性地進行閱讀,既可以縱向了解各個行業IT 系統建設的演進過程,也可以橫向對比分析某類問題的解決思路和方法。 本書共分為4 部分: 第一部分將介紹架構設計的概念、方法論、架構治理,以及架構師需要具備的核心能力等基礎內容,能讓讀者對架構設計的整個過程有一個基礎的認知。 第二部分將介紹微服務的各個細節,包括架構設計的技術選型、架構模式與實踐、數據一致性保證、微服務與DevOps 的關系,以及如何設計云微服務架構。通過這一部分的學習,讀者將了解微服務建設涉及的方方面面內容。 第三部分將介紹移動電商、消費信貸、支付系統、金融撮合幾個業務領域的優秀實踐案例,以及系統架構設計和迭代演進的過程,從支撐業務發展的視角闡述架構設計和業務的關系。 第四部分將介紹優化系統架構性能的方法論、案例、關鍵技術等,希望能使讀者了解性能優化的常見招式,并通過這些招式突破系統性能的瓶頸,明確當前應用所處的發展階段及下一步演進的目標。 回想自己從程序員成長為架構師的歷程,期間有過迷茫,也走過彎路,很慶幸在成長的各個階段都遇到了一些摯友指點迷津,使我能在致力于成為一名合格架構師的道路上堅持探索。 我認為,個人能力的高低取決于很多方面的因素,它們之間滿足如下關系: 能力=f(認知,洞察,實踐,經驗總結) 在按照上述公式中的幾個關鍵因素審閱本書初稿并與各位作者進行交流的過程中,我受益匪淺。如果本書的相關內容能為讀者進一步提升個人能力帶來一點思考和裨益,那么作者們就心滿意足了。 本書非常適合各位IT 從業者閱讀、參考。能參與本書的出版,我深感榮幸,各位作者“開放、協作、分享”的互聯網精神令我非常敬佩。感謝各位作者和本書編輯劉恩惠,他們認真負責、不辭勞苦地對本書進行了多次修訂和審校,提出了很多有價值的意見,保證了本書的質量。感謝幾位參與前期內容創作的作者,他們提供的思路和建議,為本書最終出版做出了巨大的貢獻。 孔慶龍 2019 年1 月 |