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