第1單元:軟件架構文檔和架構視圖-如何有效描述架構藍圖
內容一:軟件架構的視圖
軟件架構的視圖原理
軟件架構視圖的意義, 軟件架構師的多維思考
邏輯視圖、開發視圖、部署視圖、運行視圖、場景視圖,數據視圖 ,實現視圖
如何和怎樣繪制軟件架構視圖
UML建模工具在架構視圖的應用
典型案例分析:結合多個電信,金融行業項目案例,分析真實項目軟件架構視圖
內容二: 軟件架構的文檔編寫
軟件架構文檔的意義
軟件架構模板(根據實際項目情況選擇合適內容)
軟件架構文檔的結構(避免出現不必要的重復和缺少關鍵信息)
軟件架構文檔必須包含的內容(通過多個項目,分析不同系統包含系統內容不同)
文檔的后期管理(使文檔保持更新)
軟件架構文檔的評審
典型案例分析:結合多個電信項目案例,進行分析和評審軟件架構文檔
典型案例分析:結合多個電信項目案例,進行分析和評審軟件架構文檔
第2單元:軟件架構設計關注點(哪些因素驅動架構設計,是架構開始設計之前必須知道的?)和架構最佳策略
內容一:軟件架構設計關注點(軟件架構師在架構設計之前必須考慮的要素)
架構設計的關注是什么
軟件架構的驅動因素(改變傳統以功能實現和新技術為驅動的策略)
軟件質量需求對架構的影響(質量屬性場景定義和對應架構策略)
軟件功能需求對架構的影響(分析功能需求變化點和進化點)
軟件約束條件與架構的影響(業務,運行環境,開發團隊,實現技術等約束)
如何使功能性需求,非功能性需求和平臺細節在架構中能保持分離,從而改善可維護性和可擴展性
處理功能需求,非功能性需求,平臺細節.制定架構目標
典型案例分析:結合項目,因為分析驅動因素的錯誤,導致項目不能如期驗收的失敗案例
內容二:軟件架構最佳策略
重新認識系統質量屬性,如何定義質量屬性和相應的架構策略
系統架構的可擴展性設計策略
系統架構的可靠性設計策略
系統架構的高性能設計策略
系統架構的可維護性設計策略
系統架構的易用性設計策略
系統架構質量屬性和架構模式的應用
通過分析案例,了解基本架構策略如何應用
第3單元:軟件架構設計過程
內容一、軟件架構設計過程
軟件架構設計過程方法論(步驟和相應的成果)
軟件系統邊界和外部系統接口的定義
大型軟件系統的劃分子系統原則
子系統功能模塊的分解
子系統間的通信接口的設計
如何應對系統內部緊耦合、高內聚
軟件系統關鍵質量屬性樹和可行性分析
軟件系統部署架構(分布式/數據分布/通信/安全)
軟件系統部署容量評估(主機/中間件/數據庫等資源容量評估)
應用系統的類型和架構風格
架構模式在實際項目的應用
軟件架構立方體圖(軟件架構的分層,分區和基礎服務)
軟件架構通用機制的分析(如何處理基礎設施擴展和具體有什么方法做基礎設施擴展, 掌握如何分離這些基礎設施用例)
使用質量場景屬性進行迭代架構設計
軟件架構各層的架構策略(針對企業應用分層,每層的架構策略)
軟件系統線程架構策略(結合Apache HTTP Server分析線程和進程的架構)
數據架構(數據模型/數據分布/數據存取,以及核心數據流)
用例視圖(抽取典型,有分險和客戶最關心用例進行分析,結合架構進行設計)
實現視圖(架構,設計和開發,實現原則和指南)
完成架構文檔,對架構文檔進行評估
典型案例分析:結合3G增值服務項目,分析物理架構設計
第4單元:軟件架構應用
內容一、架構設計的評估和驗證
軟件架構的驗證(軟件架構風險驗證)
軟件架構的驗證方法和指標(基于問題檢查表和質量屬性樹)
軟件架構的驗證注意事項
軟件架構的評估方式
軟件詳細設計和實現時期,架構師的職責和架構的監控
典型案例分析:結合項目實例,分析如何進行驗證架構和架構設計的后期重構技巧
內容二、架構設計重構和復用
軟件架構重構概述
軟件架構常見的壞癥狀
軟件架構的重構手段
軟件架構的復用
結合某著名公司全球架構師團隊架構實例,分析架構重構和架構復用技巧
第二篇: 軟件架構分層架構和每層核心策略
第5單元:軟件架構核心策略
內容一:領域模型層架構
領域模型架構策略
領域模型建模(關聯,屬性)
多個系統數據模型不一致和領域模型的同步
公共數據模型(CDM)
領域模型分析模式(模型的選擇會影響最終產生系統的靈活性和可重用性)
根據電信計費系統和網絡資源管理案例分析領域模型的架構
內容二:業務邏輯層
業務邏輯架構模式(事務腳本/領域模型/服務層模式)
業務流程架構策略
基于容器的業務邏輯架構(EJB和輕量級,以及容器提供的基礎服務)
面向方面的業務架構和AOP技術在業務邏輯架構的應用
狀態管理架構策略(有狀態和無狀態服務,以及對可擴展性的影響)
業務邏輯的分布式架構策略(遠程或本地/同步或異步)
并發和同步架構模式(Half-Sync/Half-Async和Leader/Followers和Active Object和Monitor Object)
基于中間件的業務邏輯架構(Corba/Tuxedo/MQSeries/J2EE/.net)
典型案例分析:結合某銀行交易系統分析業務邏輯架構
內容三:數據存取(持久性)層架構
數據存取架構策略(對象和關系數據庫的映射)
對象關系阻抗/ORM技術/數據映射SQLMapper
緩存技術在存取層的應用/緩存數據和數據庫數據一致性
分布式數據存取策略(讀寫分離/分布數據/異構數據存取)
數據同步和一致性策略
數據訪問層的性能考慮
事務管理(本地事務和分布式事務,以及事務補償)
數據鎖管理(悲觀鎖和樂觀鎖)
典型案例分析:結合零售行業POS項目分析數據訪問層的架構設計
內容四:數據架構
數據架構概述
數據建模原則和優化策略
數據復制和同步策略
數據一致性和分布式事務
大數據量數據庫可擴展性(水平和垂直擴展,讀寫分離)以及單表記錄過大拆分策略
數據庫集群規劃
分布式數據存取策略(跨多個庫, 可能數據庫異構類型)
數據備份與恢復
數據庫性能規劃
數據安全策略
與遺留系統的數據庫兼容性考慮
結合電信,金融,零售POS項目實例分析,系統數據架構設計策略
內容五:系統基礎服務組件架構
系統基礎服務組件架構策略
系統通用服務層與業務邏輯分離
系統必備13種基礎服務架構(異常處理/事務管理/緩存/工作流/校驗/通信/安全/日志/定時觸發/狀態/消息通信/系統監控/配置管理)
業務通用服務架構實現策略
結合多個項目實例分析,架構師如何萃取基礎服務組件和怎樣設計實現
第6單元:軟件應用類型和參考架構(不同應用類型,必須采用不同架構風格)
內容一:軟件應用類型和參考架構
聯機交易類架構
Web應用系統/大規模高并發Web2.0互聯網系統
Client/Server系統(銀行交易系統)
連接分析分析系統(移動經營分析系統)
大規模實時并發系統(電信計費系統)
Portal系統(個性化和頁面集成系統 )
EAI企業集成系統(基于大規模消息集成系統)
基于WAP系統(多渠道/多種手機接入系統)
后臺批處理系統(高并發后臺批處理類型 銀行后臺系統)
基于SOA架構系統
結合多個項目案例分析每種應用類型的架構風格特點,主要架構挑戰和相應對策
第三篇:大型高可用高并發分布式系統架構設計與實踐
第7單元 大型分布式架構設計最佳實踐
內容一:大型分布式架構核心概念
無狀態化設計;
冗余設計;
負載均衡設計;
分級管理設計;
純異步調用(狀態機等方式)設計;
調用合理超時設計;
服務降級設計;
冪等設計;
我們的實踐案例;
內容二:大型分布式系統服務降級設計與實踐
服務限流降級概念;
服務限流降級使用業務場景;
服務限流降級設計環節;
服務限流降級之原則篇、架構篇、框架篇、業務篇;
移動時代服務限流降級如何打造;
我們的實踐案例;
內容三:大型分布式系統緩存設計與實踐
互聯網使用緩存類型有哪些?各自作用是什么?
分布式緩存冗余如何設計?
高可用架構緩存一致性如何保證?
高可用架構緩存高性能如何保證?
我們的實踐案例;
緩存系統在大型網站架構中發揮的作用
單機緩存系統自研與選型
Memcached與Redis的異同及應用場景
深入剖析Redis技術
Redis主要數據結構剖析
Redis性能優化及配置優化
Redis復制機制與持久化機制
Redis缺陷與陷阱
分布式緩存技術剖析
擴展Redis集群,如何實現集群彈性伸縮,無縫擴容
Redis Cluster官方集群擴展方案及缺陷
業界主流Redis集群方案剖析
內容四:大型分布式系統性能優化
系統性能優化的模式都有哪些;
系統性能優化常用的步驟是什么;
系統性能優化的環節都能哪些;
我們的實踐案例;
內容五:分布式系統數據庫架構設計與實踐
數據庫架構設計基本概念;
高可用性設計與實踐;
高并發設計與實踐;
讀性能設計與實踐;
一致性設計與實踐;
擴展性設計與實踐;
我們的實踐案例;
內容六:分布式系統數據庫架構設計與實踐
數據庫架構設計基本概念;
高可用性設計與實踐;
第四篇:微服務架構
第8單元 微服務架構
內容一:微服務架構誕生—為什么出現微服務架構
單塊架構及其面臨的挑戰
分層應用架構
單塊架構特點
單塊架構面臨的挑戰
通過某傳統ERP系統為案例分析上線后問題
內容二:微服務架構與SOA架構
SOA的基本概念
SOA方法學和其他方法學的比較
面向服務的分析和設計概述
SOA概念層次
SOA參考架構
SOA基礎架構設施
ESB基礎概念和職責
協議驅動和API驅動的ESB
BPM概念和SOA
業務流程建模和基于服務的BPM
軟件體系結構的演變和面向服務的設計原則
通過多個SOA架構案例分析
內容三:微服務架構
為什么需要微服務架構
如何解決傳統應用架構的問題
微服務架構是什么
微服務架構概念
微服務架構參考架構模式
通過分析多個微服務架構案例,了解微服務架構的參考模式
內容四:微服務架構開發實現---SpringBoot
Spring Boot概述
運用Spring Boot
Groovy與Spring Boot CLI
在Spring Boot中使用Grails
深入Actuator
部署Spring Boot應用程序
Spring Boot 的數據訪問
Spring Boot 企業級開發
Spring Boot 開發部署與測試
多個基于SpringBoot實際項目的架構分析(為何這樣設計/優點/缺點/當初的考慮)
內容五:微服務架構與云架構--Spring Cloud平臺
云計算平臺架構
為什么選擇Spring Cloud
Spring Cloud
服務治理:Spring Cloud Eureka
客戶端負載均衡:Spring Cloud Ribbon
服務容錯保護:Spring Cloud Hystrix
聲明式服務調用:Spring Cloud Feign
分布式配置中心:Spring Cloud Config
消息總線:Spring Cloud Bus
多個基于SpringBoot和SpringCloud云架構,談微服務和云架構
內容六:微服務注冊
為什么要服務注冊
服務注冊實現方式
使用NetflixEureka/SpringCloud實現服務注冊
使用NetflixRibbon/SpringCloud實現客戶端負載均衡
內容七:微服務發現
為什么要服務發現
服務發現的實現方式
第五篇: 架構師與架構職責
第9單元: 軟件架構師成長
內容一、軟件架構師成長
軟件架構師職責
軟件架構師與項目經理,產品經理,需求分析師不同
軟件架構師技能模型
軟件架構師如何成長
中國特色的架構師(目前國內很多架構師是身兼多職) |