
高級微服務培訓
1. 快速變化的年代需要快速交付
1)快速變化的市場與快速更迭的技術帶來發展機遇
2)激烈競爭的新興市場需要更快速的交付去占領市場
2. 規?;瘓F隊快速交付的困局
1)煙囪式的開發團隊導致煙囪式的軟件開發
2)煙囪式的軟件開發導致煙囪式的軟件交付
解決思路:
1)跨功能團隊(特性團隊)的組織形式
2)將單體應用改為微服務架構
3. 準確理解微服務架構
1)準確理解微服務架構“小而專”的概念提高設計質量
3) 準確理解微服務“去中心化的技術治理”去快速技術演化
3)準確理解微服務“去中心化的數據管理”做大數據轉型
第二部分:微服務之技術組件
培訓概要:
帶著學員搭建一套微服務的系統,將其運行起來,在實戰的過程中理解微服務的注冊中心、生產者、消費者、斷路器、
服務網關等技術組件的原理與設計過程,從實踐中來,到實踐中去。
培訓收益:
1. 切實搭建一套微服務系統并運行起來
2. 掌握微服務設計中的各個組件及其參數配置
3. 掌握微服務的服務網關及其安全組件、智能路由、服務遷移
4. 掌握微服務設計的熔斷機制、線程隔離、服務降級、限流措施等方面的設計
5. 了解服務網格(Service Mesh)的基本原理及其設計
培訓內容:
1. 注冊中心的概念與作用
1)Dubbo的簡介
2)Zookeeper的簡介
3)ETCD的簡介
4)Netflix Eureka的簡介
2. Spring Cloud Eureka方案
1)Spring Cloud Eureka的系統架構
2)Eureka Server的設計
3)Eureka Client的設計
4)服務發現的設計
? 使用ribbon的設計
? 使用feign的設計
4) 熔斷機制
斷路器設計模式
? 線程池隔離、優雅降級與熔斷
? Hystrix的斷路器設計
3.微服務的安全措施與服務網關設計
1)多渠道用戶接入
2)請求合法性與用戶鑒權
3)灰度發布、金絲雀測試與全鏈路壓測
4)服務降級、流量控制與節流
4.路由網關(zuul)的設計
1)智能路由與服務遷移
2)過濾器的設計與配置
3)Zuul的高可靠設計
5.服務網格(Service Mesh)
1)Spring Cloud的跨語言調用
3) 服務網格的基本概念及其設計
3)Linked、Istio、Sofa MOSN服務網格框架
第三部分:微服務之設計模式
培訓概要:
通過實際案例舉例,講解如何運用6種設計模式進行微服務的設計,并且在設計過程中講解微服務開發經常遇到的一些設計難題及其解決方案,
諸如:跨庫的關聯查詢、跨庫的事務處理、異步化操作、無狀態設計,以及與大數據技術的結合。
培訓收益:
1. 掌握如何運用6種設計模式進行微服務的設計
2. 掌握如何解決跨庫的關聯查詢、跨庫的事務處理、異步化操作等設計難題
3. 掌握微服務設計應注意的反模式及其設計陷阱
4. 掌握微服務進行業務拆分的設計原則
培訓內容:
1.微服務架構的6種設計模式
1)聚合模式
案例:電商網站購物功能的設計
? 微服務前后端分離的設計
? 分布式事務的兩階段提交
? TCC方案與阿里GTS
? 采用分布式事務解決跨庫的事務操作
案例:電商網站下單服務的設計
單一職責原則與領域驅動設計
? 互聯網縱向切分在微服務的實現
? 縱向切分應當注意的設計問題
? 避免跨庫關聯查詢的方案設計
2)代理模式
案例:電商網站支付功能的設計思路
3)鏈式模式
4)分支模式
5)異步消息模式
案例:12306的異步化操作
案例:電商網站異步化操作的微服務實現
6)數據共享模式
高并發寫入的分布式設計方案
案例:TiDB數據庫的分布式方案
如何實現高并發大數據查詢場景
案例:MongoDB實現大數據秒級查詢
2.微服務的無狀態設計
1)Session管理的設計難題
? 2)微服務的無狀態設計
? 3)基于http/rest的無狀態低耦合通訊
3.微服務設計的反模式
1)太多數據遷移
2)數據共享反模式
3) 頻繁交互反模式
探討:如何解決微服務接口太多的問題
第四部分:微服務之進階實戰
培訓概要:
老師帶著學員演練在真實項目中該如何開發微服務,包括微服務的父項目、多套配置文件、集中式的配置中心,
以及如何架構一個既支持微服務又支持領域驅動的技術中臺,既能夠降低技術門檻,減少開發工作量,又能夠易于業務變更,易于架構演化。
培訓收益:
1. 掌握在真實項目中切實可行地開發微服務
2. 掌握高可靠的微服務架構設計
3. 掌握微服務的性能測試及性能調優
培訓內容:
1. 演練在真實項目中開發微服務
1)微服務項目中父項目的設計
2)微服務項目中多套配置文件的設計
3)微服務項目中集中式配置中心的設計
2. 演練在真實項目中高可靠微服務架構
1)高可靠注冊中心的設計
2)高可靠服務網關的設計
3. 演練在真實項目中微服務的性能測試
1)斷路器監控Turbine及其應用實踐
2)鏈路跟蹤Zipkin與微服務路由優化的應用實踐
4) 微服務的灰度發布及其金絲雀測試
4) 微服務的全鏈路壓測應用實踐
第五部分:微服務之自動化運維
培訓概要:
運維微服務架構還需要強大的運維平臺支持,也就是打造一整套DevOps自動化運維體系。
這個體系包括:持續探索、持續集成、持續交付,以及在這個過程中的自動化測試與運維。
老師將帶領學員實際操作如何搭建這樣的平臺,如何自動化部署微服務,以及用Prometheus、EFK運維。
培訓收益:
1. 理解DevOps的概念、作用,以及在微服務架構中如何快速交付
2. 實操Git+Jenkins+Docker+Kubernetes自動化運維體系
3. 實操Eureka+Config+Turbine+Zipkin在k8s中的云端部署
4. 實操Prometheus+Grafana+EFK的線上系統監控與日志采集
培訓內容:
1. 微服務架構需要DevOps自動化運維
1)剖析傳統運維存在的“交付困難”的困局
2)Who build who run it與DevOps的概念
3)敏捷團隊快速交付的持續探索、持續集成、持續交付與按需發布
4)DevOps帶來開發人員的負擔與自動化運維
2. 自動化運維的工作原理
1)Docker容器技術與發布標準化
2)分布式容器部署與Kubernetes
3)實操Git+Jenkins+Docker+Kubernetes的自動化部署過程
3. 打造微服務架構的自動化運維體系
1)注冊中心Eureka在Kubernetes的分布式部署
2)配置中心Config在Kubernetes的分布式部署
3)斷路器監控Turbine與路由優化Zipkin
4. 微服務云端架構的系統監控與日志采集
1)Kubernetes的系統監控工具Prometheus+Grafana
2)Kubernetes的日志采集工具EFK