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