課程簡介
通過4天深度研習,系統(tǒng)解析高并發(fā)(秒殺系統(tǒng)庫存優(yōu)化)、分布式事務(TCC/Saga混合方案)、高可用(Paxos/Raft工程實踐)及跨城容災(國標GB/T 20988落地)四大核心模塊,涵蓋微信紅包、招行支付等20+金融級實戰(zhàn)案例。課程獨創(chuàng)“技術(shù)-業(yè)務-組織”三角模型,揭示康威定律在架構(gòu)演進中的關(guān)鍵作用,傳授從標準化建設(shè)到混沌工程的全鏈路穩(wěn)定性保障體系。學員將掌握分庫分表深度調(diào)優(yōu)、全鏈路壓測實施、故障根因定位等硬核技能,獲得余老師親著的《億級系統(tǒng)架構(gòu)演進路線圖》及企業(yè)級容災方案模板,助力快速突破技術(shù)瓶頸,打造符合金融信創(chuàng)要求的高可用架構(gòu)。
目標收益
1、學會分布式領(lǐng)域- 高可用的方法論與實踐經(jīng)驗
2、學會分布式領(lǐng)域 - 分布式事務的方法論與實踐經(jīng)驗
3、學會常用架構(gòu)模式
4、學會跨城容災與異地多活的典型思路與策略
培訓對象
適合3年以上后端開發(fā)/架構(gòu)師,技術(shù)負責人參訓。
課程大綱
0、序言:課程脈絡、 技術(shù)理念與價值觀 |
1. 大型互聯(lián)網(wǎng)架構(gòu)演進史 2. 架構(gòu)的3角關(guān)系: 技術(shù)架構(gòu)、業(yè)務架構(gòu)、組織架構(gòu) 3. 技術(shù)架構(gòu) - 互聯(lián)網(wǎng)的4高的區(qū)別與聯(lián)系:高并發(fā)、高可用、高性能、高可靠 4. 業(yè)務架構(gòu) - 業(yè)務建模、DDD與微服務拆分 5. 組織架構(gòu) - 技術(shù)委員會/架構(gòu)委員會的作用、康威定律 6.架構(gòu)的術(shù)與道:什么是“術(shù)”?什么是“道”?道與術(shù)的關(guān)系? 7. 架構(gòu)與公司規(guī)模/公司發(fā)展階段的匹配度 小公司(幾十/百)、中型公司(千)、 大公司(萬) 8. 技術(shù)的標準化:從“游擊隊”到“正規(guī)軍”,從“小作坊”到“現(xiàn)代化工廠” 9. 技術(shù)深度與廣度的平衡問題 10. T字型發(fā)展 |
第1天 - 高并發(fā) 、分布式事務、 高可用 第1單元 高并發(fā) |
1. 高并發(fā) 和 高性能的本質(zhì)區(qū)別? 2. 高并發(fā)問題本質(zhì):全鏈路水平擴展 3. 高并發(fā)“讀”的典型場景與對應解決方案:緩存、并發(fā)讀、讀寫分離(重寫輕讀) 4. 重點問題: 中央緩存與本地緩存的方案對比 (典型案例:大型電商平臺-庫存系統(tǒng)) 5. 高并發(fā)“寫”的典型場景與對應解決方案:數(shù)據(jù)分片,任務分片,異步,批量,串行化 (典型案例:秒殺系統(tǒng)、廣告計費系統(tǒng)) 6. 專題:DB分庫分表的各種衍生問題解決, 非主鍵查詢、 跨庫Join、 排序分頁、分布式事務 |
第2單元 分布式事務 |
1.日常工作中所有分布式事務場景: (1)DB與DB的分布式事務 (2)DB與MQ的分布式事務 (3)DB與 緩存的分布式事務 (4)DB與服務的分布式事務 (4)服務與服務的分布式事務 2. 分布式事務解決方案對比與分析: (1)最終一致性的2種實現(xiàn)方案 (2)2PC與XA 2PC算法的詳細工程實現(xiàn)(XA協(xié)議) (3)TCC (4)1PC - 事務補償與對賬 (5)Saga (典型案例:訂單系統(tǒng)、微信紅包系統(tǒng)) 3. 融會貫通:TCC/Saga/1PC的融合案例 4. 專題-分布式事務典型案例剖析:電商平臺庫存系統(tǒng) |
第3單元 高可用 |
0. 高可靠 與 高可用有什么區(qū)別? 1. 高可用問題的引入 2. 高可用問題的思維框架-經(jīng)典5問 (1)如何實現(xiàn)故障探測? (2)如何避免腦裂? (3)如何對客戶端透明? (4)如何保證數(shù)據(jù)一致性? (5)如何破解單點依賴的連環(huán)套? 3. 常用的幾個系統(tǒng)是如何解決高可用問題:Mysql/Kafka都分別是如何解決高可用的? 4. 高可用的副產(chǎn)品:Paxos/Raft (1) 多副本一致性問題剖析 Kafka/Mysql中數(shù)據(jù)不一致問題剖析 (2) Paxos/Raft算法引入 (3)常用的Paxos/Raft的工程實現(xiàn) Paxos/Raft算法的工程應用 |
第2天 – 高可靠(穩(wěn)定性) 與 高性能 1. 從分布式鎖到CAP理論 |
1. 為什么需要分布式鎖? Mysql/Redis中的數(shù)據(jù)并發(fā)更新問題: 悲觀鎖/樂觀鎖 2. 實現(xiàn)一個分布式鎖有哪些坑? 3. RedLock剖析:實現(xiàn)一個“完美”的分布式鎖到底有多難? 4. CAP理論的引入 5. 分布式鎖的替代方案 – 串行化 6. 串行化的典型案例 |
第2單元 高可靠 (穩(wěn)定性) |
1.故障隔離 2. 容量規(guī)劃與全鏈路壓測 (1)容量規(guī)劃的基本思路 (2)壓測的實現(xiàn)思路:單機壓測、全鏈路壓測 3. 依賴下游/組件的可靠性評估 4. 異常處理機制 5. 完善的監(jiān)控、告警與日志體系 6. 限流與防刷:各種手段分析 RateLimiter、微服務框架內(nèi)置、基于隊列的限流 7. 熔斷與降級:各種手段分析 Sentinel、Hystrix 各種降級的場景舉例 8. 超時與重試 9. 灰度發(fā)布與回滾 10. 數(shù)據(jù)備份與兜底 |
第3單元 高性能 |
1. 性能優(yōu)化的目標設(shè)置:過早優(yōu)化是萬惡之源 2. 性能測試工具與方法: 應用測試、DB測試、網(wǎng)絡測試、磁盤測試、全鏈路測試 3. 監(jiān)控系統(tǒng)構(gòu)建與指標采集: 微服務、JVM、DB、Redis、操作系統(tǒng)等各種指標采集 4. 應用系統(tǒng)常見的各項指標理解: QPS,響應時間,并發(fā)數(shù),在線用戶數(shù),絕對并發(fā)數(shù),相對并發(fā)數(shù) 5. 操作系統(tǒng)常見的各項指標理解: CPU平均負載、使用率、磁盤IOPS、磁盤吞吐量... 6. 性能探索,找出性能瓶頸與根源 (1)工程常識:常用的性能數(shù)字 (2)黑盒分析法 (3)白盒分析法 7. 實施性能優(yōu)化技術(shù): CPU優(yōu)化 磁盤優(yōu)化 網(wǎng)絡優(yōu)化 內(nèi)存優(yōu)化 |
第3天 - 高可靠(穩(wěn)定性) - 進階 1. 穩(wěn)定性保障體系: 整體方法論 |
1.從軟件的整個生命周期來看,為什么會出問題? 2.穩(wěn)定性保障原則之一:事前預防 > 事后補救 3.穩(wěn)定性保障原則之二:及時止損 4.穩(wěn)定性保障:問題分析方法 5.BCP梳理方法論:穩(wěn)定性的3個問題源,上游、自身、下游 |
2.專題 – 可觀測性 |
1.監(jiān)控的整體方法論 2.微服務可觀測性:Trace 3.微服務可觀測性:Log 4.微服務可觀測性:Metrics |
3.專題 – 業(yè)務監(jiān)控與數(shù)據(jù)監(jiān)控 |
1.業(yè)務監(jiān)控案例1 – 混淆業(yè)務監(jiān)控與系統(tǒng)監(jiān)控 2.業(yè)務監(jiān)控案例2 – 混淆業(yè)務監(jiān)控與業(yè)務報表 3.業(yè)務監(jiān)控案例3 – 全鏈路業(yè)務追蹤 4.業(yè)務監(jiān)控案例4 – 數(shù)據(jù)監(jiān)控 5.數(shù)據(jù)監(jiān)控的分析方法 – 7種不同的異常模式 |
4.如何從“測試”上避免出問題 |
1.功能測試 2.壓力測試/性能測試 3.混沌工程 |
5.如何從“發(fā)布與變更管理”上避免出問題 |
1.變更的三板斧 2.代碼的灰度發(fā)布 3.配置的灰度發(fā)布 4.數(shù)據(jù)的灰度發(fā)布 5.線上環(huán)境的模擬仿真 |
6. 應急處理 |
1. 應急的值班制度 2. 發(fā)現(xiàn)問題的手段 3. 應急的各種手段 4. 應急預案 |
7.問題排查與根因定位 |
1. 問題排查的前提條件 2. 問題排查的分類 3. 問題排查的基本思維 |
8. 業(yè)務邏輯問題排查 |
1. 自身的業(yè)務邏輯問題 2. 上游的業(yè)務邏輯問題 3. 下游的業(yè)務邏輯問題 |
9.技術(shù)問題排查 |
1. CPU飆高 – 排查技巧與解決 2. 內(nèi)存泄漏 – 排查技巧與解決 3. GC頻繁 – 排查技巧與解決 4. 其它種類問題 5. 問題排查的其他建議 6. 事故復盤機制 |
第4天 - 高階內(nèi)容 - 跨城容災與異地多活 第一單元 容災標準與原則 |
1.1信息系統(tǒng)容災國標 GB/T 20988-2007 1.2金融行業(yè)信息系統(tǒng)容災標準 1.3 常用業(yè)務場景的容災要求 (1)信息提供類:比如搜索/推薦,電商商品查詢系統(tǒng) (2)消息通信類:比如IM (3)信息更新類:比如商品庫存系統(tǒng) (4)資金類:金融、支付 1.4 原則 (1)不要追求完美 (2)方案的循序漸進 – 演進路線圖 (3)覆蓋業(yè)務的循序漸進 – 業(yè)務分級、數(shù)據(jù)分級 (4) 技術(shù)約束:物理約束、基礎(chǔ)架構(gòu)約束(DB復制技術(shù)、KV復制技術(shù)、跨城消息中間件) (5) 根據(jù)業(yè)務場景選擇合適的數(shù)據(jù)復制模式:復制模式、分片模式、自治模式的選型 (6) 成本、業(yè)務價值、團隊能力、風險的權(quán)衡 |
第二單元 跨城容災對基礎(chǔ)架構(gòu)的要求 |
(1) 廣義網(wǎng)負載均衡: DNS與GSLB (2) 局域網(wǎng)負載均衡: F5, TGW/MGW/VGW (3) API網(wǎng)關(guān)(Nginx/Apache/自研等) (4) 微服務框架支持 (5) Mysql/KV/MQ跨城能力 |
第三單元 跨城容災的方法論 |
第三單元 跨城容災的方法論 3.1 數(shù)據(jù)一致性保證 3.2 可靠切換 3.3 切換演習 & 容災演習 1. FMEA風險分析方法 2.方案設(shè)計 3.實施、記錄 4.復盤 5.常態(tài)化 3.4全鏈路統(tǒng)籌協(xié)調(diào)能力:開發(fā)、運維、測試、業(yè)務的4方協(xié)同問題 3.5 成本權(quán)衡 |
第四單元 典型案例剖析 | 案例介紹 |
0、序言:課程脈絡、 技術(shù)理念與價值觀 1. 大型互聯(lián)網(wǎng)架構(gòu)演進史 2. 架構(gòu)的3角關(guān)系: 技術(shù)架構(gòu)、業(yè)務架構(gòu)、組織架構(gòu) 3. 技術(shù)架構(gòu) - 互聯(lián)網(wǎng)的4高的區(qū)別與聯(lián)系:高并發(fā)、高可用、高性能、高可靠 4. 業(yè)務架構(gòu) - 業(yè)務建模、DDD與微服務拆分 5. 組織架構(gòu) - 技術(shù)委員會/架構(gòu)委員會的作用、康威定律 6.架構(gòu)的術(shù)與道:什么是“術(shù)”?什么是“道”?道與術(shù)的關(guān)系? 7. 架構(gòu)與公司規(guī)模/公司發(fā)展階段的匹配度 小公司(幾十/百)、中型公司(千)、 大公司(萬) 8. 技術(shù)的標準化:從“游擊隊”到“正規(guī)軍”,從“小作坊”到“現(xiàn)代化工廠” 9. 技術(shù)深度與廣度的平衡問題 10. T字型發(fā)展 |
第1天 - 高并發(fā) 、分布式事務、 高可用 第1單元 高并發(fā) 1. 高并發(fā) 和 高性能的本質(zhì)區(qū)別? 2. 高并發(fā)問題本質(zhì):全鏈路水平擴展 3. 高并發(fā)“讀”的典型場景與對應解決方案:緩存、并發(fā)讀、讀寫分離(重寫輕讀) 4. 重點問題: 中央緩存與本地緩存的方案對比 (典型案例:大型電商平臺-庫存系統(tǒng)) 5. 高并發(fā)“寫”的典型場景與對應解決方案:數(shù)據(jù)分片,任務分片,異步,批量,串行化 (典型案例:秒殺系統(tǒng)、廣告計費系統(tǒng)) 6. 專題:DB分庫分表的各種衍生問題解決, 非主鍵查詢、 跨庫Join、 排序分頁、分布式事務 |
第2單元 分布式事務 1.日常工作中所有分布式事務場景: (1)DB與DB的分布式事務 (2)DB與MQ的分布式事務 (3)DB與 緩存的分布式事務 (4)DB與服務的分布式事務 (4)服務與服務的分布式事務 2. 分布式事務解決方案對比與分析: (1)最終一致性的2種實現(xiàn)方案 (2)2PC與XA 2PC算法的詳細工程實現(xiàn)(XA協(xié)議) (3)TCC (4)1PC - 事務補償與對賬 (5)Saga (典型案例:訂單系統(tǒng)、微信紅包系統(tǒng)) 3. 融會貫通:TCC/Saga/1PC的融合案例 4. 專題-分布式事務典型案例剖析:電商平臺庫存系統(tǒng) |
第3單元 高可用 0. 高可靠 與 高可用有什么區(qū)別? 1. 高可用問題的引入 2. 高可用問題的思維框架-經(jīng)典5問 (1)如何實現(xiàn)故障探測? (2)如何避免腦裂? (3)如何對客戶端透明? (4)如何保證數(shù)據(jù)一致性? (5)如何破解單點依賴的連環(huán)套? 3. 常用的幾個系統(tǒng)是如何解決高可用問題:Mysql/Kafka都分別是如何解決高可用的? 4. 高可用的副產(chǎn)品:Paxos/Raft (1) 多副本一致性問題剖析 Kafka/Mysql中數(shù)據(jù)不一致問題剖析 (2) Paxos/Raft算法引入 (3)常用的Paxos/Raft的工程實現(xiàn) Paxos/Raft算法的工程應用 |
第2天 – 高可靠(穩(wěn)定性) 與 高性能 1. 從分布式鎖到CAP理論 1. 為什么需要分布式鎖? Mysql/Redis中的數(shù)據(jù)并發(fā)更新問題: 悲觀鎖/樂觀鎖 2. 實現(xiàn)一個分布式鎖有哪些坑? 3. RedLock剖析:實現(xiàn)一個“完美”的分布式鎖到底有多難? 4. CAP理論的引入 5. 分布式鎖的替代方案 – 串行化 6. 串行化的典型案例 |
第2單元 高可靠 (穩(wěn)定性) 1.故障隔離 2. 容量規(guī)劃與全鏈路壓測 (1)容量規(guī)劃的基本思路 (2)壓測的實現(xiàn)思路:單機壓測、全鏈路壓測 3. 依賴下游/組件的可靠性評估 4. 異常處理機制 5. 完善的監(jiān)控、告警與日志體系 6. 限流與防刷:各種手段分析 RateLimiter、微服務框架內(nèi)置、基于隊列的限流 7. 熔斷與降級:各種手段分析 Sentinel、Hystrix 各種降級的場景舉例 8. 超時與重試 9. 灰度發(fā)布與回滾 10. 數(shù)據(jù)備份與兜底 |
第3單元 高性能 1. 性能優(yōu)化的目標設(shè)置:過早優(yōu)化是萬惡之源 2. 性能測試工具與方法: 應用測試、DB測試、網(wǎng)絡測試、磁盤測試、全鏈路測試 3. 監(jiān)控系統(tǒng)構(gòu)建與指標采集: 微服務、JVM、DB、Redis、操作系統(tǒng)等各種指標采集 4. 應用系統(tǒng)常見的各項指標理解: QPS,響應時間,并發(fā)數(shù),在線用戶數(shù),絕對并發(fā)數(shù),相對并發(fā)數(shù) 5. 操作系統(tǒng)常見的各項指標理解: CPU平均負載、使用率、磁盤IOPS、磁盤吞吐量... 6. 性能探索,找出性能瓶頸與根源 (1)工程常識:常用的性能數(shù)字 (2)黑盒分析法 (3)白盒分析法 7. 實施性能優(yōu)化技術(shù): CPU優(yōu)化 磁盤優(yōu)化 網(wǎng)絡優(yōu)化 內(nèi)存優(yōu)化 |
第3天 - 高可靠(穩(wěn)定性) - 進階 1. 穩(wěn)定性保障體系: 整體方法論 1.從軟件的整個生命周期來看,為什么會出問題? 2.穩(wěn)定性保障原則之一:事前預防 > 事后補救 3.穩(wěn)定性保障原則之二:及時止損 4.穩(wěn)定性保障:問題分析方法 5.BCP梳理方法論:穩(wěn)定性的3個問題源,上游、自身、下游 |
2.專題 – 可觀測性 1.監(jiān)控的整體方法論 2.微服務可觀測性:Trace 3.微服務可觀測性:Log 4.微服務可觀測性:Metrics |
3.專題 – 業(yè)務監(jiān)控與數(shù)據(jù)監(jiān)控 1.業(yè)務監(jiān)控案例1 – 混淆業(yè)務監(jiān)控與系統(tǒng)監(jiān)控 2.業(yè)務監(jiān)控案例2 – 混淆業(yè)務監(jiān)控與業(yè)務報表 3.業(yè)務監(jiān)控案例3 – 全鏈路業(yè)務追蹤 4.業(yè)務監(jiān)控案例4 – 數(shù)據(jù)監(jiān)控 5.數(shù)據(jù)監(jiān)控的分析方法 – 7種不同的異常模式 |
4.如何從“測試”上避免出問題 1.功能測試 2.壓力測試/性能測試 3.混沌工程 |
5.如何從“發(fā)布與變更管理”上避免出問題 1.變更的三板斧 2.代碼的灰度發(fā)布 3.配置的灰度發(fā)布 4.數(shù)據(jù)的灰度發(fā)布 5.線上環(huán)境的模擬仿真 |
6. 應急處理 1. 應急的值班制度 2. 發(fā)現(xiàn)問題的手段 3. 應急的各種手段 4. 應急預案 |
7.問題排查與根因定位 1. 問題排查的前提條件 2. 問題排查的分類 3. 問題排查的基本思維 |
8. 業(yè)務邏輯問題排查 1. 自身的業(yè)務邏輯問題 2. 上游的業(yè)務邏輯問題 3. 下游的業(yè)務邏輯問題 |
9.技術(shù)問題排查 1. CPU飆高 – 排查技巧與解決 2. 內(nèi)存泄漏 – 排查技巧與解決 3. GC頻繁 – 排查技巧與解決 4. 其它種類問題 5. 問題排查的其他建議 6. 事故復盤機制 |
第4天 - 高階內(nèi)容 - 跨城容災與異地多活 第一單元 容災標準與原則 1.1信息系統(tǒng)容災國標 GB/T 20988-2007 1.2金融行業(yè)信息系統(tǒng)容災標準 1.3 常用業(yè)務場景的容災要求 (1)信息提供類:比如搜索/推薦,電商商品查詢系統(tǒng) (2)消息通信類:比如IM (3)信息更新類:比如商品庫存系統(tǒng) (4)資金類:金融、支付 1.4 原則 (1)不要追求完美 (2)方案的循序漸進 – 演進路線圖 (3)覆蓋業(yè)務的循序漸進 – 業(yè)務分級、數(shù)據(jù)分級 (4) 技術(shù)約束:物理約束、基礎(chǔ)架構(gòu)約束(DB復制技術(shù)、KV復制技術(shù)、跨城消息中間件) (5) 根據(jù)業(yè)務場景選擇合適的數(shù)據(jù)復制模式:復制模式、分片模式、自治模式的選型 (6) 成本、業(yè)務價值、團隊能力、風險的權(quán)衡 |
第二單元 跨城容災對基礎(chǔ)架構(gòu)的要求 (1) 廣義網(wǎng)負載均衡: DNS與GSLB (2) 局域網(wǎng)負載均衡: F5, TGW/MGW/VGW (3) API網(wǎng)關(guān)(Nginx/Apache/自研等) (4) 微服務框架支持 (5) Mysql/KV/MQ跨城能力 |
第三單元 跨城容災的方法論 第三單元 跨城容災的方法論 3.1 數(shù)據(jù)一致性保證 3.2 可靠切換 3.3 切換演習 & 容災演習 1. FMEA風險分析方法 2.方案設(shè)計 3.實施、記錄 4.復盤 5.常態(tài)化 3.4全鏈路統(tǒng)籌協(xié)調(diào)能力:開發(fā)、運維、測試、業(yè)務的4方協(xié)同問題 3.5 成本權(quán)衡 |
第四單元 典型案例剖析 案例介紹 |