| 第一部分  云計算架構 | 
| 云概覽 | 
- 為什么需要“云”
 
- 都有哪些云
 
- 云框架包括哪些內容
 
- 如何構建云
 
 
 | 
| 云計算平臺與云計算關鍵技術 | 
- 云計算平臺架構
 
- 虛擬機與計算資源池:
 
- 分布式文件系統(tǒng)與存儲資源池
 
- 網絡虛擬化與網絡資源池
 
- 并行計算與Mapreduce
 
- 分布式海量存儲數據庫
 
- 云技術安全
 
 
 | 
| 三種云服務  | 
- IaaS云計算服務
- aaS服務內容:存儲服務、計算服務
 
- IaaS案例
 
- IaaS解決方案
 
 
 
- PaaS云計算服務
- PaaS服務內容:開發(fā)服務、運行服務
 
- PaaS案例
 
- PaaS解決方案:Google、vmvare、hadoop等
 
 
 
- SaaS云計算服務
 
 
 | 
| 基于云平臺,構建云應用  | 
- 云計算發(fā)展現狀和遇到的挑戰(zhàn)
 
- 如何有效地落在云端
 
- 從云平臺到應用的工作路線圖
 
 
 | 
| 云平臺微服務架構 | 
| 微服務架構概述 | 
什么是微服務架構 
微服務架構是敏捷開發(fā)的必然結果 
1.單體應用的優(yōu)勢與面臨的挑戰(zhàn) 
- 案例:演示淘寶在系統(tǒng)不斷發(fā)展的過程中面臨的難題
 
- 許多系統(tǒng)在不斷發(fā)展過程中越來越龐大帶來的問題
 
 
                2.康威定律與人月神話 
- 煙囪式的功能團隊導致煙囪式的應用
 
- 人員越來越多、溝通越來越困難、工作效率越來越低
 
 
                3.未來快速變化的市場需要敏捷團隊 
- 更快地交付、更快地反饋、更快地產生價值
 
- 敏捷化的開發(fā)團隊呼喚微服務架構
 
 
 
微服務是未來互聯(lián)網發(fā)展的必然結果 
1.互聯(lián)網的發(fā)展及其面臨的挑戰(zhàn) 
- 案例:分析淘寶近十年的發(fā)展及其面臨的挑戰(zhàn)
 
- 互聯(lián)網在面臨橫向擴展、服務隔離等問題的局限
 
 
                2.微服務能夠更好地解決互聯(lián)網問題 
- 分析傳統(tǒng)架構在解決互聯(lián)網問題時采用的辦法
 
- 講解微服務架構應當是什么樣子
 
- 剖析微服務架構在解決諸多互聯(lián)網問題時的思路
 
 
 
微服務架構給測試與運維帶來的挑戰(zhàn) 
1.微服務架構給測試帶來的挑戰(zhàn) 
- 微服務架構與持續(xù)集成
 
- 微服務架構采用的測試工具
 
 
                2.微服務架構給運維帶來的調整 
- 微服務架構與DevOps
 
- 微服務架構的管理與發(fā)布過程
 
 
 
 | 
| 準確認識微服務 | 
關于微服務的誤解 
1.微服務 vs. SOA 
案例:SOA在項目中的應用 
                案例:微服務在項目中的應用 
                微服務與SOA的聯(lián)系與差異 
2.微服務架構的本質 
- 由服務組件組成的系統(tǒng)
 
- 按照業(yè)務而不是技術來組織服務
 
- 做全生命周期的產品而不是項目
 
- 智能端點與通道扁平化
 
- 去中心化治理
 
- 去中心化數據管理
 
- 自動化運維(DevOps)
 
- 故障恢復與容錯
 
- 演化式設計
 
 
                案例:演示出租車調度系統(tǒng)的微服務設計過程
                ? 
 | 
| 微服務架構設計 | 
| 微服務常用架構 | 
最簡版的微服務架構 
1.服務注冊與發(fā)現 
                    2.服務網關 
                    3.微服務 
                    4.配置管理 
微服務常用的技術框架 
1.Spring Cloud簡介 
                        2.Spring Boot簡介 
 | 
| 服務注冊與發(fā)現 | 
服務注冊與發(fā)現的概念與作用 
實現服務注冊與發(fā)現的方案 
1.Dubbo的簡介 
                            2.Zookeeper的簡介 
                            3.Netflix Eureka的簡介 
 
Spring  Cloud Eureka方案 
1.Spring Cloud Eureka的系統(tǒng)架構 
                            2.Eureka Server的設計 
                            3.Eureka  Client的設計 
                            4.服務發(fā)現的設計
                            
                            5.高可靠設計與Eureka集群 
                            練習:使用Eureka構建微服務系統(tǒng) | 
| 服務網關 | 
服務網關在微服務架構中的作用 
1.多渠道用戶接入 
                                2.微服務的負載均衡 
                                3.路由網關(zuul) 
- 藍綠發(fā)布、滾動發(fā)布、灰度發(fā)布與金絲雀發(fā)布
 
- 權限驗證與安全保障
 
- 路由網關的設計實現
 
 
                                4.熔斷機制與服務降級
                                
- 斷路器設計模式
 
- 線程池隔離、優(yōu)雅降級與熔斷
 
- Hystrix的斷路器設計
 
 
                                5.流量控制與節(jié)流 
練習:設計服務網關、路由網關與斷路器 | 
| 微服務層的設計 | 
微服務架構的6種設計模式 
1.聚合模式 
- 互聯(lián)網縱向切分在微服務的實現
 
- 縱向切分應當注意的設計問題
 
- 避免跨庫關聯(lián)查詢的設計
 
- 采用分布式事務解決跨庫的事務操作
 
 
                                    2.代理模式 
- 互聯(lián)網橫向切分與讀寫分離在微服務的實現
 
 
                                    3.鏈式模式 
                                    4.分支模式 
                                    5.數據共享模式 
                                    6.異步消息模式 
                                    案例:微服務實現異步化操作 
微服務的粒度 
微服務設計的反模式 
1.太多數據遷移 
                                            2.數據共享反模式 
                                            3.頻繁交互反模式 
                                            探討:如何解決微服務接口太多的問題
                                            ? 
 | 
| Docker與容器技術 | 
Docker簡介 
1.Docker vs.  虛擬化 
                                                2.Docker的運行方式 
                                                3.Docker的基本操作 
                                                將微服務部署到Docker中 
                                                演練:微服務在Docker中的部署過程
                                                ? 
 | 
| 配置管理與DevOps | 
 DevOps簡介 
1.微服務為什么需要DevOps 
                                                    2.微服務的測試過程 
                                                    3.微服務的發(fā)布過程 
微服務配置中心 
1.Spring Cloud Config的配置過程 
                                                        2.Spring Cloud  Config的發(fā)布過程 
微服務的分布式運維 
1.Kubernetes簡介 
                                                            2.用Kubernetes進行分布式運維 
                                                            探討:如何構建一個微服務運營平臺
                                                            ? 
 | 
| 
 基于云平臺和微服務的設計 
 | 
| 領域驅動設計 | 
所有軟件企業(yè)不得不面對的問題
1.我們現在面對的是快速變化的時代 
                                                                2.軟件研發(fā)卻出現了問題: 
                                                                變更越頻繁,代碼質量下降越快 
                                                                案例:演示電商網站付款功能代碼質量下降的過程 
                                                                3.揭示軟件退化的根源 
                                                                案例:演示軟件退化的過程與高質量設計的過程 
 
深度解讀高內聚與單一職責原則 
領域驅動設計 
- 軟件變更過程中的設計難題
 
- 領域驅動的設計思想
 
- 案例:重新演練電商網站付款功能的變更過程
 
 
軟件架構如何支持領域驅動 
1.架構調整不是件簡單的事兒 
                                                                如何實現業(yè)務領域層與技術框架的解耦 
                                                                如何簡化業(yè)務實現的過程 
                                                                2.架構設計如何支持領域驅動 
                                                                增刪改如何支持領域驅動 
                                                                查詢如何支持領域驅動 
                                                                3.微服務架構如何支持領域驅動 
                                                                案例:一個簡單、易于開發(fā)的微服務架構 
 
如何實現前端微服務化的設計 | 
| 傳統(tǒng)架構的云平臺與微服務轉型 | 
 傳統(tǒng)架構云平臺與微服務轉型的過程 
1.技術轉型 
                                                                準備工作:Maven→Spring  boot 
                                                                整理分層:MVC層與BUS層的分離 
                                                                建立微服務:注冊中心、服務網關與微服務 
                                                                2.業(yè)務拆分 
                                                                構建領域模型與限界上下文 
                                                                業(yè)務與數據庫的縱向切分   
 
                                                                初創(chuàng)型企業(yè)的微服務建設過程 
案例:某智慧醫(yī)療系統(tǒng)的建設過程 
1.系統(tǒng)的建設規(guī)劃 
                                                                    2.系統(tǒng)的分析設計過程 
                                                                    3.微服務架構設計與對外接口 
                                                                    4.微服務運營平臺的建設   
                                                                    成熟型企業(yè)開展云平臺與微服務的思路 
1.成熟企業(yè)開展云平臺與微服務的難題 
                                                                        2.記錄型系統(tǒng) vs. 交互型系統(tǒng) 
                                                                        3.在混合云中構建交互型系統(tǒng)   
案例:某金融企業(yè)向微服務轉型的過程 
                                                                        大數據+微服務的轉型過程 
案例:某BI系統(tǒng)的云平臺+大數據+微服務的轉型過程 
1.該BI系統(tǒng)的背景介紹 
                                                                            2.互聯(lián)網轉型帶來的機遇與挑戰(zhàn) 
                                                                            3.大數據的轉型過程 
                                                                            4.微服務的轉型過程 
                                                                            5.構建分析模型Store平臺   
                                                                            探討:大數據如何與微服務相結合 |