架構真意:企業級應用架構設計方法論與實踐

範鋼 孫玄 著

買這商品的人也買了...

商品描述

這是一部嘗試從架構本質的角度對傳統的企業級應用架構方法進行優化的著作,不僅提供了一套更優化的企業級應用架構方法論,能指導讀者構建高質量的應用;而且對當下熱門的分佈式系統和大數據平臺的架構方法進行了詳細講解,通過大量案例提供了可直接復用的經驗。
兩位作者在大型上市科技公司和大型互聯網企業從事研發和架構工作多年,本書融合了他們在不同領域的架構經驗。全書一共11章,分為三個部分:
第一部分(第 1~6 章)架構設計方法論
總結了一套切實可行、操作性強的高質量架構方法——“5視圖架構設計法”,並引入了領域驅動設計、規模化敏捷等先進的設計思想。
第二部分(第 7~9章) 分佈式架構設計與實踐
從實戰的角度講解了分佈式系統的架構與設計,包括分佈式的核心技術、微服務的架構設計,以及基於雲端的分佈式部署,旨在幫助讀者構建支持高並發、高可用的系統架構。
第三部分(第 10、11 章) 大數據架構設計
從更宏大的視角介紹了大數據平臺的架構與設計,包括數據中台以及大數據技術中台建設思路、路線圖和實踐經驗。

作者簡介

範鋼 
資深架構專家,前航天信息(大型上市公司)首席架構師,有超過15年的Java開發經驗和近20年軟件研發與架構設計經驗。
擅長軟件架構、軟件重構、分佈式系統、微服務、大數據,先後參與了數十個大型軟件項目,涉及國家財政、軍工、稅務、醫療等領域的大數據建設、風險防控與人工智能應用。
獨立諮詢顧問,服務的客戶包括中國銀行、華為、中興、貝爾、西門子等知名企業;資深培訓講師,曾多次受邀擔任Top100、Tid、SDCC、DDD、DevOps等業界知名技術峰會的分享嘉賓。暢銷書作者,著有《大話重構

目錄大綱

前言
第一部分 架構設計方法論
第1章 架構師的修煉5
1.1 何為軟件架構5
1.1.1 常見研發場景6
1.1.2 準確理解軟件架構7
1.2 如何成為合格的架構師9
1.2.1 架構師的職責9
1.2.2 架構師的思維模式10
1.3 如何成為頂級的架構師12
1.3.1 能夠將業務轉換為技術13
1.3.2 能合理利用技術支撐業務13
1.3.3 具備前瞻思維和戰略思維15
1.4 “5視圖法”架構設計16
第2章 邏輯架構設計18
2.1 用例模型分析19
2.1.1 用例模型20
2.1.2 由粗到細的用例分析21
2.1.3 用例描述23
2.1.4 事件流25
2.1.5 業務需求列表29
2.1.6 需求規格說明書30
2.2 界面原型分析32
2.3 領域模型分析34
2.3.1 軟件退化的根源34
2.3.2 兩頂帽子的設計方式38
2.3.3 領域驅動的設計思想41
2.3.4 領域驅動的變更設計42
2.3.5 領域驅動設計總結48
2.4 技術可行性分析50
第3章 數據架構設計52
3.1 數據架構的設計過程52
3.2 基於領域的數據庫設計54
3.2.1 傳統的4種關系55
3.2.2 繼承關系59
3.2.3 NoSQL數據庫的設計61
3.3 基於領域的程序設計63
3.3.1 服務、實體與值對象64
3.3.2 貧血模型與充血模型64
3.3.3 聚合70
3.3.4 倉庫與工廠71
3.3.5 問題域和限界上下文75
第4章 開發架構設計78
4.1 系統規劃與接口定義78
4.1.1 系統規劃79
4.1.2 接口定義80
4.2 系統分層與整潔架構82
4.2.1 系統分層82
4.2.2 底層技術更迭84
4.2.3 整潔架構設計86
4.2.4 易於維護的架構88
4.3 技術中台建設90
4.3.1 增刪改的架構設計91
4.3.2 查詢功能的架構設計94
4.3.3 支持領域驅動的架構設計99
4.3.4 支持微服務的架構設計107
4.4 技術選型與技術規劃109
4.4.1 軟件正確決策的過程109
4.4.2 商用軟件與開源框架110
4.5 模塊劃分與代碼規範111
第5章 運行架構設計114
5.1 屬性→場景→決策115
5.2 非功能性需求117
5.3 恰如其分的架構設計117
5.4 技術架構演化118
5.4.1 意圖架構119
5.4.2 使能故事120
5.4.3 架構跑道122
5.4.4 我們的實踐122
5.5 技術改造與軟件重構124
5.5.1 架構師的十年奮鬥125
5.5.2 演化式的技術改造思路126
5.5.3 一個遺留系統改造的故事127
第6章 物理架構設計131
6.1 集中式與分佈式132
6.2 網絡架構圖134
6.3 系統架構與應用架構135
第二部分 分佈式架構設計與實踐
第7章 分佈式架構設計141
7.1 互聯網架構演進141
7.1.1 All-in-One架構142
7.1.2 流量在1000萬以內的架構設計143
7.1.3 流量在1000萬以上的架構設計147
7.1.4 流量在5000萬以上的架構設計155
7.1.5 億級流量的架構設計160
7.2 分佈式技術165
7.2.1 分佈式緩存165
7.2.2 內存數據庫169
7.2.3 分佈式事務173
7.2.4 分佈式隊列179
7.2.5 分佈式數據庫182
第8章 微服務架構設計192
8.1 為什麽要採用微服務架構192
8.1.1 快速變化需要快速交付192
8.1.2 打造高效的團隊組織193
8.1.3 大前端+技術中台196
8.1.4 小而專的微服務197
8.1.5 微服務中的去中心化概念199
8.1.6 互聯網轉型利器202
8.2 微服務的關鍵技術204
8.2.1 註冊中心205
8.2.2 服務網關219
8.2.3 熔斷機制227
8.3 微服務的系統設計235
8.3.1 6種設計模式235
8.3.2 微服務設計實踐244
8.3.3 微服務測試調優262
8.4 微服務項目實戰過程276
8.4.1 在線訂餐系統項目實戰278
8.4.2 統一語言與事件風暴278
8.4.3 子域劃分與限界上下文282
8.4.4 微服務拆分與設計實現284
第9章 基於雲端的分佈式部署290
9.1 DevOps與快速交付290
9.2 Docker容器技術292
9.2.1 虛擬技術與容器技術292
9.2.2 對Docker容器的操作294
9.2.3 用Dockerfile製作鏡像296
9.2.4 微服務的Docker容器部署297
9.2.5 Docker容器的應用298
9.2.6 搭建Docker本地私服299
9.3 Kubernetes分佈式容器管理299
9.3.1 微服務發布的難題299
9.3.2 Kubernetes的運行原理300
9.3.3 Kubernetes的應用場景303
9.3.4 Kubernetes的虛擬網絡304
9.3.5 用Kubernetes部署微服務305
9.3.6 用有狀態集部署組件308
9.3.7 Kubernetes應用實踐310
9.4 自動化運維平臺實踐312
第三部分 大數據架構設計
第10章 大數據時代變革319
10.1 從IT時代向DT時代轉變319
10.2 數據分析與應用319
10.2.1 數據應用的發展歷程320
10.2.2 數據應用的成熟度321
10.3 數據中台建設325
10.3.1 對數據中台的正確理解325
10.3.2 數據中台建設的核心326
10.3.3 數據中台的建設思路332
10.3.4 數據中台的技術架構333
第11章 大數據技術中台335
11.1 大數據技術335
11.1.1 Hadoop技術框架336
11.1.2 Spark技術框架339
11.2 大數據採集345
11.2.1 結構化數據採集346
11.2.2 非結構化數據採集347
11.3 大數據治理350
11.3.1 SparkSQL大數據開發中台351
11.3.2 ETL過程的設計實踐353
11.3.3 數據倉庫建設357
11.3.4 數據標簽設計360
11.4 大數據展示362
11.4.1 大數據索引363
11.4.2 多維模型分析367
11.4.3 HBase數據庫369