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