課程簡介
本課程首先將系統(tǒng)地講述高質(zhì)量的軟件架構(gòu)該設(shè)計(jì)過程,包括如何運(yùn)用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的思想貫穿整個(gè)架構(gòu)設(shè)計(jì),又如何使軟件系統(tǒng)在衍變中調(diào)整架構(gòu),從而適應(yīng)需求的變化;如何運(yùn)用5視圖的方法,全面地思考軟件架構(gòu)各方面的問題,從需求入手逐步落實(shí)到可行的技術(shù)架構(gòu);從全局的角度進(jìn)行軟件分層、技術(shù)選型、模塊劃分等方面的設(shè)計(jì);運(yùn)用數(shù)據(jù)持久化的方式設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu);運(yùn)用“屬性->場(chǎng)景->決策”的過程把握非功能設(shè)計(jì);從部署、網(wǎng)絡(luò)、性能的角度進(jìn)行物理架構(gòu)的設(shè)計(jì),從而有效避免架構(gòu)設(shè)計(jì)時(shí)遺漏關(guān)鍵風(fēng)險(xiǎn)點(diǎn),使架構(gòu)設(shè)計(jì)過程變得有序。
目標(biāo)收益
培訓(xùn)對(duì)象
課程大綱
第一章 企業(yè)架構(gòu)設(shè)計(jì)概述 |
什么是軟件架構(gòu) 情景劇:軟件架構(gòu)設(shè)計(jì)的價(jià)值 一個(gè)人的軟件設(shè)計(jì)過程 7-8個(gè)人的軟件設(shè)計(jì)過程 幾十個(gè)人的軟件設(shè)計(jì)過程 結(jié)論:軟件架構(gòu)是從宏觀上說明一套系統(tǒng)的組成與特性 1)業(yè)務(wù)架構(gòu)設(shè)計(jì) 2)應(yīng)用架構(gòu)設(shè)計(jì) 3)數(shù)據(jù)架構(gòu)設(shè)計(jì) 4)技術(shù)架構(gòu)設(shè)計(jì) 5)物理架構(gòu)設(shè)計(jì) 什么是企業(yè)架構(gòu)設(shè)計(jì) 1.站在全局角度去規(guī)劃整個(gè)企業(yè)的架構(gòu) 1)企業(yè)中各個(gè)產(chǎn)品線的業(yè)務(wù)規(guī)劃 → 打通業(yè)務(wù)流 2)企業(yè)中各個(gè)產(chǎn)品線的技術(shù)規(guī)劃 → 建立技術(shù)平臺(tái) 3)企業(yè)中各個(gè)產(chǎn)品線的數(shù)據(jù)規(guī)劃 → 建立數(shù)據(jù)中臺(tái) 4)企業(yè)中各個(gè)產(chǎn)品線的組織規(guī)劃 → 建立開發(fā)規(guī)范與組織原則 2.需求驅(qū)動(dòng) vs. 架構(gòu)驅(qū)動(dòng) 需求驅(qū)動(dòng):整理現(xiàn)有的、已知的碎片化需求 架構(gòu)驅(qū)動(dòng):從全局的角度探索未知的業(yè)務(wù),摸索未來發(fā)展的模態(tài) 1)業(yè)務(wù)上 → 各部門精益協(xié)作,降本增效(敏捷轉(zhuǎn)型) 2)數(shù)據(jù)上 → 打通上下游產(chǎn)業(yè)鏈,建立生態(tài)(數(shù)字化轉(zhuǎn)型) 3)技術(shù)上 → 搭建統(tǒng)一、規(guī)范的平臺(tái),并持續(xù)改進(jìn)(架構(gòu)演化) 軟件架構(gòu)設(shè)計(jì)的發(fā)展歷程 1. 什么是軟件架構(gòu)及其架構(gòu)發(fā)展歷程 2. 介紹與比較當(dāng)今主流的企業(yè)架構(gòu)設(shè)計(jì)框架與方法論: Zachman,TOGAF,F(xiàn)EAF/FEA,DDD與中臺(tái)架構(gòu) 3. TOGAF架構(gòu)設(shè)計(jì)思想與框架 4. DDD架構(gòu)設(shè)計(jì)思想與框架 5. 中臺(tái)架構(gòu)設(shè)計(jì)思想與框架 |
第二章 業(yè)務(wù)架構(gòu)設(shè)計(jì)與領(lǐng)域驅(qū)動(dòng) |
業(yè)務(wù)架構(gòu)的規(guī)劃與設(shè)計(jì)過程 一、業(yè)務(wù)架構(gòu)的概念與重要作用 二、業(yè)務(wù)架構(gòu)的梳理與設(shè)計(jì)過程 1. 對(duì)現(xiàn)有架構(gòu)的梳理:對(duì)企業(yè)當(dāng)前IT建設(shè)現(xiàn)狀的梳理與分析 2. 價(jià)值流分析:以客戶價(jià)值為中心,識(shí)別業(yè)務(wù)能力短板,制訂架構(gòu)建設(shè)目標(biāo) 3. 組件化模型分析:從內(nèi)部、外部兩個(gè)方向梳理,制訂組件化改造方向 對(duì)現(xiàn)有架構(gòu)的梳理與架構(gòu)藍(lán)圖 實(shí)戰(zhàn)演練:某服裝行業(yè)的企業(yè)業(yè)務(wù)架構(gòu)梳理過程 1. 組織模型與應(yīng)用架構(gòu)覆蓋率的分析,發(fā)現(xiàn)應(yīng)用架構(gòu)的短板 2. 基于價(jià)值流的分析,建立業(yè)務(wù)能力與應(yīng)用架構(gòu)的映射 3. 基于價(jià)值流的業(yè)務(wù)能力,規(guī)劃企業(yè)的應(yīng)用架構(gòu)與數(shù)據(jù)架構(gòu) 價(jià)值流分析與業(yè)務(wù)架構(gòu)梳理過程 1. 分析企業(yè)的組織架構(gòu)(內(nèi)部/外部/利益相關(guān)者) 2. 分析組織架構(gòu)中不同角色的價(jià)值主張,形成價(jià)值流地圖 3. 分析價(jià)值流與相關(guān)的業(yè)務(wù)能力之間的關(guān)系 4. 將價(jià)值流進(jìn)一步細(xì)化,形成端到端的流程清單 5. 在流程清單中增加角色智能,繪制端到端的流程圖 基于組件的模型分析與優(yōu)化 一、CBM組件化模型的概念與設(shè)計(jì)思想 1. 內(nèi)部專業(yè)化:整合內(nèi)部業(yè)務(wù)職能,把流程優(yōu)化轉(zhuǎn)變?yōu)闃I(yè)務(wù)模塊化建設(shè) 2. 外部專業(yè)化:集成外部商業(yè)合作伙伴,打造端到端的行業(yè)生態(tài)系統(tǒng) 二、CBM分析與改造的三個(gè)階段:洞察、架構(gòu)、投資 DDD領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與領(lǐng)域模型 DDD是解決業(yè)務(wù)復(fù)雜性的問題 1.最初的產(chǎn)品需求并不復(fù)雜,但隨著業(yè)務(wù)的拓展越來越復(fù)雜 2.隨著業(yè)務(wù)的拓展,系統(tǒng)規(guī)模越來越大,交付速度越來越慢 3.越來越激烈的市場(chǎng)競(jìng)爭(zhēng),需要越來越快的交付速度 4.越來越快的技術(shù)更迭,需要軟件系統(tǒng)越來越快速的技術(shù)更迭 解決方案: 1.認(rèn)知負(fù)載理論揭示系統(tǒng)越復(fù)雜,業(yè)務(wù)變更成本越高 2.領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的解決方案: 1)問題空間與解空間的設(shè)計(jì)思路 2)劃分子域、限界上下文與領(lǐng)域建模 3)將限界上下文的劃分落實(shí)到微服務(wù)的開發(fā) 基于業(yè)務(wù)領(lǐng)域知識(shí)的業(yè)務(wù)探索 1. 傳統(tǒng)的業(yè)務(wù)需求分析方法 2. 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì):原文分析法 3. 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì):事件風(fēng)暴法 事件風(fēng)暴領(lǐng)域建模過程 事件風(fēng)暴法與敏捷軟件開發(fā)的融合 演練案例:在線訂餐系統(tǒng)的領(lǐng)域設(shè)計(jì)過程 1. 從領(lǐng)域中吸取業(yè)務(wù)領(lǐng)域知識(shí) 2. 統(tǒng)一語言建模:與用戶溝通需求的高級(jí)技巧 3. 事件風(fēng)暴會(huì)議 1) 梳理業(yè)務(wù)流程,識(shí)別領(lǐng)域事件 2) 為每個(gè)領(lǐng)域事件識(shí)別參與者、行為、相關(guān)事物 3) 標(biāo)記事物之間的關(guān)系、聚合、聚合根 4) 根據(jù)業(yè)務(wù)劃分限界上下文 5) 遍歷所有事件,確定上下文映射 4. 業(yè)務(wù)領(lǐng)域建模 1) 為每個(gè)領(lǐng)域事件構(gòu)建業(yè)務(wù)領(lǐng)域模型 2) 劃分主題域、支撐域、通用域 3) 落實(shí)各子域之間的聯(lián)系、接口及事件通知機(jī)制 |
第三章 應(yīng)用架構(gòu)設(shè)計(jì)與架構(gòu)規(guī)劃 |
應(yīng)用架構(gòu)的概念與設(shè)計(jì)思路 一、系統(tǒng)規(guī)劃與接口定義 案例:遠(yuǎn)程智慧醫(yī)療平臺(tái)的系統(tǒng)規(guī)劃過程 二、系統(tǒng)分層與技術(shù)中臺(tái)設(shè)計(jì) ? 剖析常見的架構(gòu)設(shè)計(jì)模式及其設(shè)計(jì)思想 ? 1. 整潔架構(gòu)與六邊形架構(gòu)設(shè)計(jì) ? 2. CQRS架構(gòu)設(shè)計(jì)與讀寫分離 ? 3. 互聯(lián)網(wǎng)與分布式架構(gòu)設(shè)計(jì) 三、開發(fā)架構(gòu)的技術(shù)選型 四、軟件開發(fā)規(guī)范的制訂 基于領(lǐng)域驅(qū)動(dòng)的微服務(wù)架構(gòu)設(shè)計(jì) 1. 小而專的微服務(wù)設(shè)計(jì) 2. 限界上下文與微服務(wù)拆分 3. 上下文地圖與微服務(wù)接口 4. 各微服務(wù)中實(shí)體、值對(duì)象與服務(wù)的設(shè)計(jì) 5. 各微服務(wù)中聚合、工廠與倉庫的設(shè)計(jì) 6. 領(lǐng)域模型4種關(guān)系3種繼承的數(shù)據(jù)庫設(shè)計(jì) 7. 聚合層的設(shè)計(jì)、工廠和倉庫的實(shí)現(xiàn) 8. 基于DDD的微服務(wù)架構(gòu)分層 DDD+微服務(wù)的設(shè)計(jì)難題與解決思路 1. 跨庫查詢的設(shè)計(jì)難題與設(shè)計(jì)實(shí)現(xiàn) 2. 領(lǐng)域事件的通知機(jī)制與設(shè)計(jì)實(shí)現(xiàn) 3. 微服務(wù)接口的防腐層設(shè)計(jì) 4. 狀態(tài)查詢跟蹤的設(shè)計(jì)思路與代碼實(shí)現(xiàn) |
第四章 數(shù)據(jù)架構(gòu)設(shè)計(jì)與數(shù)據(jù)庫設(shè)計(jì) |
數(shù)據(jù)架構(gòu)設(shè)計(jì)思路與過程 一、數(shù)據(jù)架構(gòu)的設(shè)計(jì)思路:將數(shù)據(jù)從資源變?yōu)橘Y產(chǎn) 1.數(shù)據(jù)生產(chǎn):信息化建設(shè)過程中,制訂數(shù)據(jù)標(biāo)準(zhǔn)、提高數(shù)據(jù)質(zhì)量 2.數(shù)據(jù)加工:將分散在各系統(tǒng)的數(shù)據(jù)收集起來,通過加工形成資產(chǎn) 3.數(shù)據(jù)利用:進(jìn)行數(shù)字化建設(shè),讓數(shù)據(jù)為業(yè)務(wù)賦能 數(shù)據(jù)資產(chǎn)管理與數(shù)據(jù)治理 數(shù)據(jù)資產(chǎn)管理的思路 1. 數(shù)據(jù)資產(chǎn)的構(gòu)成:業(yè)務(wù)數(shù)據(jù)、分析數(shù)據(jù)、主數(shù)據(jù) 2. 數(shù)據(jù)資產(chǎn)管理的核心是數(shù)據(jù)治理 數(shù)據(jù)治理面臨的難題 1. 雜亂無章的數(shù)據(jù)來源 2. 晦澀難懂的數(shù)據(jù)語義 3. 千差萬別的數(shù)據(jù)格式 4. 無處不在的數(shù)據(jù)問題 數(shù)據(jù)治理的目標(biāo) 1. 數(shù)據(jù)資產(chǎn)清理 2. 數(shù)據(jù)標(biāo)準(zhǔn)統(tǒng)一 3. 數(shù)據(jù)質(zhì)量管理 4. 數(shù)據(jù)職責(zé)清晰 數(shù)據(jù)治理的過程 1. 通過領(lǐng)域模型梳理各業(yè)務(wù)系統(tǒng)的業(yè)務(wù) 2. 將領(lǐng)域模型轉(zhuǎn)換成多維數(shù)據(jù)模型 3. 探查數(shù)據(jù)質(zhì)量,建立ETL過程 4. 將數(shù)據(jù)導(dǎo)入數(shù)據(jù)倉庫,劃分主題模型 案例:智慧遠(yuǎn)程大數(shù)據(jù)平臺(tái)的建設(shè)過程 將領(lǐng)域模型轉(zhuǎn)換成多維數(shù)據(jù)模型 1. 建立多維數(shù)據(jù)模型 a) 動(dòng)態(tài)數(shù)據(jù):核心業(yè)務(wù)數(shù)據(jù),有業(yè)務(wù)發(fā)生時(shí)間,最終形成事實(shí)表 b) 靜態(tài)數(shù)據(jù):相關(guān)的檔案、信息表、數(shù)據(jù)字典,最終形成維度表 2. 多維數(shù)據(jù)模型優(yōu)化 a) 雪花模型轉(zhuǎn)換為星型模型 b) 日期維、組合維、層級(jí)維 c) 一對(duì)多、多對(duì)多的模型轉(zhuǎn)換 3. 數(shù)據(jù)主題域的劃分 4. 數(shù)據(jù)中臺(tái)的分層: 原始數(shù)據(jù)層、細(xì)節(jié)數(shù)據(jù)層、輕度綜合層、數(shù)據(jù)集市層 5. 數(shù)據(jù)集市與數(shù)據(jù)分析挖掘 |
第五章 技術(shù)架構(gòu)設(shè)計(jì)與技術(shù)規(guī)劃 |
探討技術(shù)架構(gòu)的設(shè)計(jì)過程 1. 關(guān)注關(guān)鍵點(diǎn)與難點(diǎn)而不是全局 2. 屬性→場(chǎng)景→決策的分析過程 3. 架構(gòu)跑道、意圖架構(gòu)與使能故事 互聯(lián)網(wǎng)分布式系統(tǒng)的架構(gòu)演化 案例:講解某互聯(lián)網(wǎng)系統(tǒng)的架構(gòu)演進(jìn)過程 初始狀態(tài):All-in-One集中式架構(gòu)設(shè)計(jì) 1) 多級(jí)集中式架構(gòu)及其弊病 2) CDN內(nèi)容分發(fā)網(wǎng)絡(luò)及其應(yīng)用 1000萬以內(nèi):前后端分離的架構(gòu)設(shè)計(jì) 1) 前后端分離的應(yīng)用實(shí)戰(zhàn) 案例:基于vue+springboot+mybatis的架構(gòu)實(shí)踐 2) 數(shù)據(jù)接入的高可用設(shè)計(jì)實(shí)踐 案例:Nginx的高可用設(shè)計(jì)實(shí)踐 案例:F5+LVS多層負(fù)載均衡的設(shè)計(jì)實(shí)踐 案例:k8s接入層ingress的設(shè)計(jì)實(shí)踐 1000萬以上:讀寫分離的架構(gòu)設(shè)計(jì) 案例:生產(chǎn)庫和基于生產(chǎn)庫微服務(wù)設(shè)計(jì)實(shí)踐 1. 數(shù)據(jù)庫的橫向縱向切分 1) 數(shù)據(jù)庫的縱向切分與微服務(wù)的設(shè)計(jì) 2) 數(shù)據(jù)庫的橫向切分與分布式數(shù)據(jù)庫 2. 分布式緩存的設(shè)計(jì) 3. 異步化操作與分布式隊(duì)列 4. NewSQL數(shù)據(jù)庫的原理與應(yīng)用 案例:查詢庫和基于查詢庫微服務(wù)設(shè)計(jì)實(shí)踐 1. 讀寫分離后查詢庫的設(shè)計(jì)思路 1) 查詢庫“寬表”的設(shè)計(jì)思路與實(shí)踐 2) T+1模式與基于消息的實(shí)時(shí)數(shù)據(jù)同步 2. NoSQL數(shù)據(jù)庫的原理及其應(yīng)用 億級(jí)流量的架構(gòu)設(shè)計(jì):通過分層實(shí)現(xiàn)逐級(jí)限流 1. SOA架構(gòu)的設(shè)計(jì)局限 2. 高并發(fā)、高可用微服務(wù)的架構(gòu)設(shè)計(jì) 1) 微服務(wù)的拆分原則與分布式云部署 2) 通過Kubernetes實(shí)現(xiàn)微服務(wù)的彈性擴(kuò)容與高可用 3) 微服務(wù)的高可用措施:故障轉(zhuǎn)移、熔斷、降級(jí)、限流措施 |
第六章 物理架構(gòu)設(shè)計(jì)與云部署 |
探討物理架構(gòu)設(shè)計(jì)過程 1. 案例講解一些常見物理架構(gòu)設(shè)計(jì) 2. 案例講解IT架構(gòu)規(guī)劃與網(wǎng)絡(luò)部署 3. 案例講解一些技術(shù)方案的編寫 云原生(Cloud Native)的概念 1. 面向互聯(lián)網(wǎng)分布式系統(tǒng)運(yùn)維的難點(diǎn)與痛點(diǎn) 2. 云原生=微服務(wù)+DevOps+持續(xù)交付+容器化bus 3. 云原生架構(gòu)的核心思想與“12因素(12-Factors)” 4. 云原生的設(shè)計(jì)實(shí)現(xiàn):Kubernetes、微服務(wù)、服務(wù)網(wǎng)格 分布式云原生的自動(dòng)化運(yùn)維平臺(tái) 1.基于Jenkins與pipeline構(gòu)建持續(xù)發(fā)布平臺(tái) 2.基于SonarQube與Jacoco構(gòu)建質(zhì)量監(jiān)督平臺(tái) 3.基于Docker+Kubernetes構(gòu)建容器化部署平臺(tái) 4.包含各種分布式緩存、分布式隊(duì)列、分布式事務(wù)的PaaS云平臺(tái) 5.基于NoSQL/NewSQL分布式數(shù)據(jù)庫的DaaS數(shù)據(jù)平臺(tái) 6.基于Skywalking的鏈路跟蹤與系統(tǒng)調(diào)優(yōu)平臺(tái) 7.基于Prometheus+Grafana的自動(dòng)化監(jiān)控告警平臺(tái) 8.基于EFK的分布式日志監(jiān)控平臺(tái) |
第一章 企業(yè)架構(gòu)設(shè)計(jì)概述 什么是軟件架構(gòu) 情景?。很浖軜?gòu)設(shè)計(jì)的價(jià)值 一個(gè)人的軟件設(shè)計(jì)過程 7-8個(gè)人的軟件設(shè)計(jì)過程 幾十個(gè)人的軟件設(shè)計(jì)過程 結(jié)論:軟件架構(gòu)是從宏觀上說明一套系統(tǒng)的組成與特性 1)業(yè)務(wù)架構(gòu)設(shè)計(jì) 2)應(yīng)用架構(gòu)設(shè)計(jì) 3)數(shù)據(jù)架構(gòu)設(shè)計(jì) 4)技術(shù)架構(gòu)設(shè)計(jì) 5)物理架構(gòu)設(shè)計(jì) 什么是企業(yè)架構(gòu)設(shè)計(jì) 1.站在全局角度去規(guī)劃整個(gè)企業(yè)的架構(gòu) 1)企業(yè)中各個(gè)產(chǎn)品線的業(yè)務(wù)規(guī)劃 → 打通業(yè)務(wù)流 2)企業(yè)中各個(gè)產(chǎn)品線的技術(shù)規(guī)劃 → 建立技術(shù)平臺(tái) 3)企業(yè)中各個(gè)產(chǎn)品線的數(shù)據(jù)規(guī)劃 → 建立數(shù)據(jù)中臺(tái) 4)企業(yè)中各個(gè)產(chǎn)品線的組織規(guī)劃 → 建立開發(fā)規(guī)范與組織原則 2.需求驅(qū)動(dòng) vs. 架構(gòu)驅(qū)動(dòng) 需求驅(qū)動(dòng):整理現(xiàn)有的、已知的碎片化需求 架構(gòu)驅(qū)動(dòng):從全局的角度探索未知的業(yè)務(wù),摸索未來發(fā)展的模態(tài) 1)業(yè)務(wù)上 → 各部門精益協(xié)作,降本增效(敏捷轉(zhuǎn)型) 2)數(shù)據(jù)上 → 打通上下游產(chǎn)業(yè)鏈,建立生態(tài)(數(shù)字化轉(zhuǎn)型) 3)技術(shù)上 → 搭建統(tǒng)一、規(guī)范的平臺(tái),并持續(xù)改進(jìn)(架構(gòu)演化) 軟件架構(gòu)設(shè)計(jì)的發(fā)展歷程 1. 什么是軟件架構(gòu)及其架構(gòu)發(fā)展歷程 2. 介紹與比較當(dāng)今主流的企業(yè)架構(gòu)設(shè)計(jì)框架與方法論: Zachman,TOGAF,F(xiàn)EAF/FEA,DDD與中臺(tái)架構(gòu) 3. TOGAF架構(gòu)設(shè)計(jì)思想與框架 4. DDD架構(gòu)設(shè)計(jì)思想與框架 5. 中臺(tái)架構(gòu)設(shè)計(jì)思想與框架 |
第二章 業(yè)務(wù)架構(gòu)設(shè)計(jì)與領(lǐng)域驅(qū)動(dòng) 業(yè)務(wù)架構(gòu)的規(guī)劃與設(shè)計(jì)過程 一、業(yè)務(wù)架構(gòu)的概念與重要作用 二、業(yè)務(wù)架構(gòu)的梳理與設(shè)計(jì)過程 1. 對(duì)現(xiàn)有架構(gòu)的梳理:對(duì)企業(yè)當(dāng)前IT建設(shè)現(xiàn)狀的梳理與分析 2. 價(jià)值流分析:以客戶價(jià)值為中心,識(shí)別業(yè)務(wù)能力短板,制訂架構(gòu)建設(shè)目標(biāo) 3. 組件化模型分析:從內(nèi)部、外部兩個(gè)方向梳理,制訂組件化改造方向 對(duì)現(xiàn)有架構(gòu)的梳理與架構(gòu)藍(lán)圖 實(shí)戰(zhàn)演練:某服裝行業(yè)的企業(yè)業(yè)務(wù)架構(gòu)梳理過程 1. 組織模型與應(yīng)用架構(gòu)覆蓋率的分析,發(fā)現(xiàn)應(yīng)用架構(gòu)的短板 2. 基于價(jià)值流的分析,建立業(yè)務(wù)能力與應(yīng)用架構(gòu)的映射 3. 基于價(jià)值流的業(yè)務(wù)能力,規(guī)劃企業(yè)的應(yīng)用架構(gòu)與數(shù)據(jù)架構(gòu) 價(jià)值流分析與業(yè)務(wù)架構(gòu)梳理過程 1. 分析企業(yè)的組織架構(gòu)(內(nèi)部/外部/利益相關(guān)者) 2. 分析組織架構(gòu)中不同角色的價(jià)值主張,形成價(jià)值流地圖 3. 分析價(jià)值流與相關(guān)的業(yè)務(wù)能力之間的關(guān)系 4. 將價(jià)值流進(jìn)一步細(xì)化,形成端到端的流程清單 5. 在流程清單中增加角色智能,繪制端到端的流程圖 基于組件的模型分析與優(yōu)化 一、CBM組件化模型的概念與設(shè)計(jì)思想 1. 內(nèi)部專業(yè)化:整合內(nèi)部業(yè)務(wù)職能,把流程優(yōu)化轉(zhuǎn)變?yōu)闃I(yè)務(wù)模塊化建設(shè) 2. 外部專業(yè)化:集成外部商業(yè)合作伙伴,打造端到端的行業(yè)生態(tài)系統(tǒng) 二、CBM分析與改造的三個(gè)階段:洞察、架構(gòu)、投資 DDD領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與領(lǐng)域模型 DDD是解決業(yè)務(wù)復(fù)雜性的問題 1.最初的產(chǎn)品需求并不復(fù)雜,但隨著業(yè)務(wù)的拓展越來越復(fù)雜 2.隨著業(yè)務(wù)的拓展,系統(tǒng)規(guī)模越來越大,交付速度越來越慢 3.越來越激烈的市場(chǎng)競(jìng)爭(zhēng),需要越來越快的交付速度 4.越來越快的技術(shù)更迭,需要軟件系統(tǒng)越來越快速的技術(shù)更迭 解決方案: 1.認(rèn)知負(fù)載理論揭示系統(tǒng)越復(fù)雜,業(yè)務(wù)變更成本越高 2.領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的解決方案: 1)問題空間與解空間的設(shè)計(jì)思路 2)劃分子域、限界上下文與領(lǐng)域建模 3)將限界上下文的劃分落實(shí)到微服務(wù)的開發(fā) 基于業(yè)務(wù)領(lǐng)域知識(shí)的業(yè)務(wù)探索 1. 傳統(tǒng)的業(yè)務(wù)需求分析方法 2. 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì):原文分析法 3. 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì):事件風(fēng)暴法 事件風(fēng)暴領(lǐng)域建模過程 事件風(fēng)暴法與敏捷軟件開發(fā)的融合 演練案例:在線訂餐系統(tǒng)的領(lǐng)域設(shè)計(jì)過程 1. 從領(lǐng)域中吸取業(yè)務(wù)領(lǐng)域知識(shí) 2. 統(tǒng)一語言建模:與用戶溝通需求的高級(jí)技巧 3. 事件風(fēng)暴會(huì)議 1) 梳理業(yè)務(wù)流程,識(shí)別領(lǐng)域事件 2) 為每個(gè)領(lǐng)域事件識(shí)別參與者、行為、相關(guān)事物 3) 標(biāo)記事物之間的關(guān)系、聚合、聚合根 4) 根據(jù)業(yè)務(wù)劃分限界上下文 5) 遍歷所有事件,確定上下文映射 4. 業(yè)務(wù)領(lǐng)域建模 1) 為每個(gè)領(lǐng)域事件構(gòu)建業(yè)務(wù)領(lǐng)域模型 2) 劃分主題域、支撐域、通用域 3) 落實(shí)各子域之間的聯(lián)系、接口及事件通知機(jī)制 |
第三章 應(yīng)用架構(gòu)設(shè)計(jì)與架構(gòu)規(guī)劃 應(yīng)用架構(gòu)的概念與設(shè)計(jì)思路 一、系統(tǒng)規(guī)劃與接口定義 案例:遠(yuǎn)程智慧醫(yī)療平臺(tái)的系統(tǒng)規(guī)劃過程 二、系統(tǒng)分層與技術(shù)中臺(tái)設(shè)計(jì) ? 剖析常見的架構(gòu)設(shè)計(jì)模式及其設(shè)計(jì)思想 ? 1. 整潔架構(gòu)與六邊形架構(gòu)設(shè)計(jì) ? 2. CQRS架構(gòu)設(shè)計(jì)與讀寫分離 ? 3. 互聯(lián)網(wǎng)與分布式架構(gòu)設(shè)計(jì) 三、開發(fā)架構(gòu)的技術(shù)選型 四、軟件開發(fā)規(guī)范的制訂 基于領(lǐng)域驅(qū)動(dòng)的微服務(wù)架構(gòu)設(shè)計(jì) 1. 小而專的微服務(wù)設(shè)計(jì) 2. 限界上下文與微服務(wù)拆分 3. 上下文地圖與微服務(wù)接口 4. 各微服務(wù)中實(shí)體、值對(duì)象與服務(wù)的設(shè)計(jì) 5. 各微服務(wù)中聚合、工廠與倉庫的設(shè)計(jì) 6. 領(lǐng)域模型4種關(guān)系3種繼承的數(shù)據(jù)庫設(shè)計(jì) 7. 聚合層的設(shè)計(jì)、工廠和倉庫的實(shí)現(xiàn) 8. 基于DDD的微服務(wù)架構(gòu)分層 DDD+微服務(wù)的設(shè)計(jì)難題與解決思路 1. 跨庫查詢的設(shè)計(jì)難題與設(shè)計(jì)實(shí)現(xiàn) 2. 領(lǐng)域事件的通知機(jī)制與設(shè)計(jì)實(shí)現(xiàn) 3. 微服務(wù)接口的防腐層設(shè)計(jì) 4. 狀態(tài)查詢跟蹤的設(shè)計(jì)思路與代碼實(shí)現(xiàn) |
第四章 數(shù)據(jù)架構(gòu)設(shè)計(jì)與數(shù)據(jù)庫設(shè)計(jì) 數(shù)據(jù)架構(gòu)設(shè)計(jì)思路與過程 一、數(shù)據(jù)架構(gòu)的設(shè)計(jì)思路:將數(shù)據(jù)從資源變?yōu)橘Y產(chǎn) 1.數(shù)據(jù)生產(chǎn):信息化建設(shè)過程中,制訂數(shù)據(jù)標(biāo)準(zhǔn)、提高數(shù)據(jù)質(zhì)量 2.數(shù)據(jù)加工:將分散在各系統(tǒng)的數(shù)據(jù)收集起來,通過加工形成資產(chǎn) 3.數(shù)據(jù)利用:進(jìn)行數(shù)字化建設(shè),讓數(shù)據(jù)為業(yè)務(wù)賦能 數(shù)據(jù)資產(chǎn)管理與數(shù)據(jù)治理 數(shù)據(jù)資產(chǎn)管理的思路 1. 數(shù)據(jù)資產(chǎn)的構(gòu)成:業(yè)務(wù)數(shù)據(jù)、分析數(shù)據(jù)、主數(shù)據(jù) 2. 數(shù)據(jù)資產(chǎn)管理的核心是數(shù)據(jù)治理 數(shù)據(jù)治理面臨的難題 1. 雜亂無章的數(shù)據(jù)來源 2. 晦澀難懂的數(shù)據(jù)語義 3. 千差萬別的數(shù)據(jù)格式 4. 無處不在的數(shù)據(jù)問題 數(shù)據(jù)治理的目標(biāo) 1. 數(shù)據(jù)資產(chǎn)清理 2. 數(shù)據(jù)標(biāo)準(zhǔn)統(tǒng)一 3. 數(shù)據(jù)質(zhì)量管理 4. 數(shù)據(jù)職責(zé)清晰 數(shù)據(jù)治理的過程 1. 通過領(lǐng)域模型梳理各業(yè)務(wù)系統(tǒng)的業(yè)務(wù) 2. 將領(lǐng)域模型轉(zhuǎn)換成多維數(shù)據(jù)模型 3. 探查數(shù)據(jù)質(zhì)量,建立ETL過程 4. 將數(shù)據(jù)導(dǎo)入數(shù)據(jù)倉庫,劃分主題模型 案例:智慧遠(yuǎn)程大數(shù)據(jù)平臺(tái)的建設(shè)過程 將領(lǐng)域模型轉(zhuǎn)換成多維數(shù)據(jù)模型 1. 建立多維數(shù)據(jù)模型 a) 動(dòng)態(tài)數(shù)據(jù):核心業(yè)務(wù)數(shù)據(jù),有業(yè)務(wù)發(fā)生時(shí)間,最終形成事實(shí)表 b) 靜態(tài)數(shù)據(jù):相關(guān)的檔案、信息表、數(shù)據(jù)字典,最終形成維度表 2. 多維數(shù)據(jù)模型優(yōu)化 a) 雪花模型轉(zhuǎn)換為星型模型 b) 日期維、組合維、層級(jí)維 c) 一對(duì)多、多對(duì)多的模型轉(zhuǎn)換 3. 數(shù)據(jù)主題域的劃分 4. 數(shù)據(jù)中臺(tái)的分層: 原始數(shù)據(jù)層、細(xì)節(jié)數(shù)據(jù)層、輕度綜合層、數(shù)據(jù)集市層 5. 數(shù)據(jù)集市與數(shù)據(jù)分析挖掘 |
第五章 技術(shù)架構(gòu)設(shè)計(jì)與技術(shù)規(guī)劃 探討技術(shù)架構(gòu)的設(shè)計(jì)過程 1. 關(guān)注關(guān)鍵點(diǎn)與難點(diǎn)而不是全局 2. 屬性→場(chǎng)景→決策的分析過程 3. 架構(gòu)跑道、意圖架構(gòu)與使能故事 互聯(lián)網(wǎng)分布式系統(tǒng)的架構(gòu)演化 案例:講解某互聯(lián)網(wǎng)系統(tǒng)的架構(gòu)演進(jìn)過程 初始狀態(tài):All-in-One集中式架構(gòu)設(shè)計(jì) 1) 多級(jí)集中式架構(gòu)及其弊病 2) CDN內(nèi)容分發(fā)網(wǎng)絡(luò)及其應(yīng)用 1000萬以內(nèi):前后端分離的架構(gòu)設(shè)計(jì) 1) 前后端分離的應(yīng)用實(shí)戰(zhàn) 案例:基于vue+springboot+mybatis的架構(gòu)實(shí)踐 2) 數(shù)據(jù)接入的高可用設(shè)計(jì)實(shí)踐 案例:Nginx的高可用設(shè)計(jì)實(shí)踐 案例:F5+LVS多層負(fù)載均衡的設(shè)計(jì)實(shí)踐 案例:k8s接入層ingress的設(shè)計(jì)實(shí)踐 1000萬以上:讀寫分離的架構(gòu)設(shè)計(jì) 案例:生產(chǎn)庫和基于生產(chǎn)庫微服務(wù)設(shè)計(jì)實(shí)踐 1. 數(shù)據(jù)庫的橫向縱向切分 1) 數(shù)據(jù)庫的縱向切分與微服務(wù)的設(shè)計(jì) 2) 數(shù)據(jù)庫的橫向切分與分布式數(shù)據(jù)庫 2. 分布式緩存的設(shè)計(jì) 3. 異步化操作與分布式隊(duì)列 4. NewSQL數(shù)據(jù)庫的原理與應(yīng)用 案例:查詢庫和基于查詢庫微服務(wù)設(shè)計(jì)實(shí)踐 1. 讀寫分離后查詢庫的設(shè)計(jì)思路 1) 查詢庫“寬表”的設(shè)計(jì)思路與實(shí)踐 2) T+1模式與基于消息的實(shí)時(shí)數(shù)據(jù)同步 2. NoSQL數(shù)據(jù)庫的原理及其應(yīng)用 億級(jí)流量的架構(gòu)設(shè)計(jì):通過分層實(shí)現(xiàn)逐級(jí)限流 1. SOA架構(gòu)的設(shè)計(jì)局限 2. 高并發(fā)、高可用微服務(wù)的架構(gòu)設(shè)計(jì) 1) 微服務(wù)的拆分原則與分布式云部署 2) 通過Kubernetes實(shí)現(xiàn)微服務(wù)的彈性擴(kuò)容與高可用 3) 微服務(wù)的高可用措施:故障轉(zhuǎn)移、熔斷、降級(jí)、限流措施 |
第六章 物理架構(gòu)設(shè)計(jì)與云部署 探討物理架構(gòu)設(shè)計(jì)過程 1. 案例講解一些常見物理架構(gòu)設(shè)計(jì) 2. 案例講解IT架構(gòu)規(guī)劃與網(wǎng)絡(luò)部署 3. 案例講解一些技術(shù)方案的編寫 云原生(Cloud Native)的概念 1. 面向互聯(lián)網(wǎng)分布式系統(tǒng)運(yùn)維的難點(diǎn)與痛點(diǎn) 2. 云原生=微服務(wù)+DevOps+持續(xù)交付+容器化bus 3. 云原生架構(gòu)的核心思想與“12因素(12-Factors)” 4. 云原生的設(shè)計(jì)實(shí)現(xiàn):Kubernetes、微服務(wù)、服務(wù)網(wǎng)格 分布式云原生的自動(dòng)化運(yùn)維平臺(tái) 1.基于Jenkins與pipeline構(gòu)建持續(xù)發(fā)布平臺(tái) 2.基于SonarQube與Jacoco構(gòu)建質(zhì)量監(jiān)督平臺(tái) 3.基于Docker+Kubernetes構(gòu)建容器化部署平臺(tái) 4.包含各種分布式緩存、分布式隊(duì)列、分布式事務(wù)的PaaS云平臺(tái) 5.基于NoSQL/NewSQL分布式數(shù)據(jù)庫的DaaS數(shù)據(jù)平臺(tái) 6.基于Skywalking的鏈路跟蹤與系統(tǒng)調(diào)優(yōu)平臺(tái) 7.基于Prometheus+Grafana的自動(dòng)化監(jiān)控告警平臺(tái) 8.基于EFK的分布式日志監(jiān)控平臺(tái) |