商品描述
本書基於ISO 標準、架構行業發展情況編著,講解了軟件架構的基本概念、前沿理論和實踐應用。全書共7章,包括軟件架構概述、基礎架構剖析、高階架構剖析、雲計算架構、分布式架構、存儲系統架構,以及自定義架構實踐。書中對每種架構都詳細介紹了其理論基礎與具體實踐,並給出其優缺點及適用場景。註重理論與實踐相結合,使讀者能夠對每種架構的設計思想有深入的理解,幫助其在進行自定義架構設計時能使用不同風格的架構設計思想,並掌握架構風格分析、設計思想提取、設計思想應用的方法。 本書既可以作為架構設計的入門書籍,也可以作為深入理解架構設計思想的參考書,還可以作為架構設計時隨時查閱的工具書,以及了解架構發展趨勢的指南。本書不僅適合軟件架構師,幫助他們完善自己的架構理論及框架,還適合想從事架構工作的軟件開發者,使其對軟件架構有全面的認識並進行設計實踐。
作者簡介
谷雨豐,系統架構設計師, 專業技術資格,深圳市人力資源和社會保障局評審專家,深圳市科技專家庫專家。從事多年架構設計,精通自定義架構體系、ISO42系列架構體系、TOGAF、風險驅動架構、演進式架構等架構框架。 過多個大型覆雜項目的架構設計,對於中臺化有豐富經驗。
目錄大綱
前言
第1章 軟件架構概述/
1.1軟件架構理論體系/
1.1.1軟件架構的定義/
1.1.2架構屬性/
1.1.3架構說明/
1.1.4軟件需求與架構需求/
1.1.5架構定義流程與設計定義流程/
1.1.6架構師/
1.2軟件架構的發展歷程/
1.3軟件架構設計原則/
1.3.1架構設計的基本原則/
1.3.2演進式架構設計/
1.3.3架構設計的驅動內因/
1.3.4架構權衡/
1.4架構評價/
1.4.1架構評價的目的/
1.4.2架構評價的一般方法/
1.5架構生命周期/
1.5.1架構生命周期與軟件生命周期的關系/
1.5.2軟件生命周期的定義/
1.5.3架構生命周期的定義/
1.5.4不同開發模式下架構設計的側重點/
1.6架構治理/
1.6.1架構的演進與退化/
1.6.2重構/
第2章 基礎架構剖析/
2.1單體架構/
2.1.1單體架構的軟件架構定義/
2.1.2緊耦合的經濟性與敏捷性/
2.1.3快交付與難維護的權衡/
2.1.4中小型項目的優選/
2.1.5單體架構在自定義架構風格中的設計方法/
2.1.6單體架構風格實踐/
2.2面向服務架構/
2.2.1面向服務架構的軟件架構定義/
2.2.2服務可組合性的覆用和覆雜性管理/
2.2.3開發周期縮短與管理周期增長的權衡/
2.2.4不斷變化的覆雜系統的適用性/
2.2.5面向服務架構在自定義架構風格中的設計方法/
2.2.6面向服務架構風格實踐/
2.3客戶端-服務器架構/
2.3.1客戶端-服務器架構的軟件架構定義/
2.3.2分離與連接的跨平臺兼容性/
2.3.3關註點分離與版本控制的權衡/
2.3.4數據-程序分離場景的適用性/
2.3.5客戶端-服務器架構在自定義架構風格中的設計方法/
2.3.6客戶端-服務器架構風格實踐/
2.4分層架構/
2.4.1分層架構的軟件架構定義/
2.4.2層次化結構的覆雜性管理/
2.4.3覆用與溝通成本的權衡/
2.4.4多人協作場景的實用性/
2.4.5分層架構在自定義架構風格中的設計方法/
2.4.6分層架構風格實踐/
2.5事件驅動架構/
2.5.1事件驅動架構的軟件架構定義/
2.5.2異步通信的靈活性與性能/
2.5.3高性能與容錯性、覆雜性的權衡/
2.5.4異步通信場景的適用性/
2.5.5事件驅動架構在自定義架構風格中的設計方法/
2.5.6事件驅動架構風格實踐/
2.6無狀態架構/
2.6.1無狀態架構的軟件架構定義/
2.6.2狀態外部化的水平擴展與容錯性/
2.6.3可用性與覆雜性的權衡/
2.6.4大規模水平擴展場景的適用性/
2.6.5無狀態架構在自定義架構風格中的設計方法/
2.6.6無狀態架構風格實踐/
第3章 高階架構剖析/
3.1無狀態架構的演進——容器化架構/
3.1.1容器化架構的軟件架構定義/
3.1.2Docker架構/
3.1.3Kubernetes架構/
3.2面向服務架構的演進——微服務架構/
3.2.1微服務架構的軟件架構定義/
3.2.2分而治之的可伸縮性與疊代交付/
3.2.3靈活性與覆雜性的權衡/
3.2.4大型覆雜系統的適用性/
3.2.5微服務架構在自定義架構風格中的設計方法/
3.2.6微服務架構風格實踐/
3.3事件驅動架構的演進——流式架構/
3.3.1流式架構的軟件架構定義/
3.3.2分布式事件驅動的實時性/
3.3.3高吞吐量與成本、技術覆雜度的權衡/
3.3.4實時大規模數據處理場景的適用性/
3.3.5流式架構在自定義架構風格中的設計方法/
3.3.6流式架構風格實踐/
3.4客戶端-服務器架構的演進/
3.4.1CQRS架構/
3.4.2BFF架構/
3.4.3Database per service架構/
3.5分層架構的演進——六邊形架構/
3.5.1六邊形架構的軟件架構定義/
3.5.2內外分離的靈活性與可維護性/
3.5.3清晰的分層邊界與配置覆雜性的權衡/
3.5.4多團隊協作、不斷演進系統的適用性/
3.5.5六邊形架構在自定義架構風格中的設計方法/
3.5.6六邊形架構風格實踐/
第4章 雲計算架構/
4.1雲計算平臺/
4.1.1雲計算平臺的發展歷史/
4.1.2雲計算平臺的三層架構/
4.1.3雲計算賦能軟件架構/
4.2混合雲部署架構/
4.2.1本地部署架構/
4.2.2雲平臺部署架構/
4.2.3混合部署架構/
4.3雲平臺應用架構/
4.3.1雲微服務架構/
4.3.2無服務器架構/
4.3.3應用架構切換/
4.3.4自動化架構/
第5章 分布式架構/
5.1分布式架構基礎理論/
5.1.1分布式架構的軟件架構定義/
5.1.2自治性的高可用、高性能擴展與容錯性/
5.1.3高性能與一致性、覆雜性的權衡/
5.1.4高可用、高容錯需求場景的適用性/
5.1.5分布式架構在自定義架構設計中的設計方法/
5.1.6分布式架構風格實踐/
5.2分布式架構算法/
5.2.1分布式一致性/
5.2.2強一致性/
5.2.3弱一致性/
5.2.4CAP理論/
5.2.5BASE理論/
5.2.6Paxos及其衍生算法/
5.2.7分布式架構在自定義架構設計中的設計方法/
5.3分布式文件系統/
5.3.1分布式文件系統的基礎理論/
5.3.2HDFS架構分析/
5.3.3分布式文件系統在自定義架構設計中的設計方法/
5.3.4分布式文件系統實踐/
5.4分布式備份架構/
5.4.1分布式備份架構的基礎理論/
5.4.2Cassandra的分布式備份架構分析/
5.4.3分布式備份架構在自定義架構設計中的設計方法/
5.4.4分布式備份架構風格實踐/
5.5分布式計算架構/
5.5.1分布式計算架構的基礎理論/
5.5.2Hadoop架構分析/
5.5.3分布式計算架構在自定義架構設計中的設計方法/
5.5.4分布式計算架構設計實踐/
第6章 存儲系統架構/
6.1存儲系統架構概念/
6.2關系數據庫/
6.2.1關系數據庫基礎理論/
6.2.2MySQL中存儲引擎InnoDB架構分析/
6.2.3NoSQL架構分析/
6.2.4關系數據庫在自定義架構設計中的設計方法/
6.2.5存儲系統架構設計實踐/
6.3文檔數據庫/
6.3.1文檔數據庫基礎理論/
6.3.2MongoDB架構分析/
6.3.3文檔數據庫在自定義架構設計中的設計方法/
6.3.4文檔數據庫架構設計實踐/
6.4鍵值數據庫/
6.4.1鍵值數據庫基礎理論/
6.4.2Redis架構分析/
6.4.3鍵值數據庫在自定義架構設計中的設計方法/
6.4.4鍵值數據庫架構設計實踐/
6.5圖數據庫/
6.5.1圖數據庫基礎理論/
6.5.2Neo4j架構分析/
6.5.3圖數據庫在自定義架構設計中的設計方法/
6.5.4圖數據庫架構設計實踐/
6.6數據備份及恢覆機制/
6.6.1主從架構備份/
6.6.2對等架構備份/
6.6.3集群架構備份/
6.6.4差異備份/
6.6.5增量備份/
6.6.6快照備份/
6.6.7邏輯備份/
6.6.8事務日誌備份/
第7章 自定義架構實踐/
7.1自定義架構風格理論/
7.1.1架構需求分析/
7.1.2評估參考架構/
7.1.3參考架構設計思想提取/
7.1.4核心元素定義/
7.1.5設計方法與實現/
7.1.6架構驗證/
7.1.7優化與調整/
7.1.8權衡與Plan B/
7.2自定義架構風格實踐——多種約束條件的物聯網系統架構設計/
7.2.1物聯網系統架構需求分析/
7.2.2評估參考架構/
7.2.3參考架構設計思想提取/
7.2.4物聯網系統自定義架構核心元素定義/
7.2.5物聯網系統架構設計方法與實現/
7.2.6物聯網系統架構驗證/
7.2.7物聯網系統架構優化與調整/
7.2.8利益沖突下的權衡與Plan B/