課程簡介
本課程從實踐的角度出發(fā),首先闡述了單塊架構存在的弊端以及微服務的理論基礎。接著通過實踐部分,讓讀者能夠體驗從零開始搭建第一個微服務的過程,包括代碼靜態(tài)檢查、基礎設施構建、 Docker映像構建及部署、持續(xù)交付流水線、服務的日志聚合以及監(jiān)控和告警。
目標收益
探討在微服務的實踐過程中所積累的經(jīng)驗,包括基于 HAL的通信機制、消費者驅動的測試,并通過一個真實的案例,幫助讀者更好地理解微服務架構所帶來的靈活性、易擴展性和獨立性。
培訓對象
該課程適應于各類技術人員.細粒度的微服務架構包含了很多方面的內(nèi)容,所以本課程涉及范圍很廣,適用于對系統(tǒng)的設計、開發(fā)、部署、測試和運維感興趣的人們。對于那些已經(jīng)走上更細粒度架構之路的人,無論是開發(fā)新應用,還是拆分現(xiàn)有的單塊系統(tǒng),都會因課程里很多的實用建議而受益。對于想要了解微服務方方面面的人,也可以幫助你確定微服務是否適合你。
課程大綱
第1單元 微服務架構概述 |
內(nèi)容一:微服務架構誕生—為什么出現(xiàn)微服務架構 1.單塊架構及其面臨的挑戰(zhàn) 2.分層應用架構 3.單塊架構特點 4.單塊架構面臨的挑戰(zhàn) 5.通過某傳統(tǒng)ERP系統(tǒng)為案例分析上線后問題 內(nèi)容二:微服務架構 1.為什么需要微服務架構 2.如何解決傳統(tǒng)應用架構的問題 3.微服務架構是什么 4.微服務架構概念 5.微服務架構參考架構模式 6.通過分析多個微服務架構案例,了解微服務架構的參考模式 |
第2單元-微服務架構—服務分解和建模 |
內(nèi)容一:微服務分解和服務顆粒度 1.微服務架構構成(服務拆分、服務拓撲關系圖); 2.微服務架構設計原則; 3.微服務架構服務粒度設計; 4.微服務架構之我們的實踐案例; 5.通過大量項目案例分析,什么是好的服務,服務的分解和服務顆粒度 內(nèi)容二:微服務建模 1.如何建模服務 2.什么樣的服務是好服務 3.微服務的松耦合和高內(nèi)聚 4.微服務限界上下文 5.微服務的業(yè)務功能 6.逐步劃分服務上下文 7.微服務與業(yè)務概念 8.微服務技術邊界 9.通過案例分析微服務建模 |
第3單元-微服務架構設計開發(fā)實現(xiàn)—基于SpringBoot和SpringCloud 動手實現(xiàn)一個完整的微服務 |
內(nèi)容一:微服務架構開發(fā)實現(xiàn)---SpringBoot 1.Spring Boot概述 2.運用Spring Boot 3.Groovy與Spring Boot CLI 4.在Spring Boot中使用Grails 5.深入Actuator 6.部署Spring Boot應用程序 7.Spring Boot 的數(shù)據(jù)訪問 8.Spring Boot 企業(yè)級開發(fā) 9.Spring Boot 開發(fā)部署與測試 10.多個基于SpringBoot實際項目的架構分析(為何這樣設計/優(yōu)點/缺點/當初的考慮) 內(nèi)容二:微服務架構與云架構--Spring Cloud平臺 1.云計算平臺架構 2.為什么選擇Spring Cloud 3.Spring Cloud 4.服務治理:Spring Cloud Eureka 5.客戶端負載均衡:Spring Cloud Ribbon 6.服務容錯保護:Spring Cloud Hystrix 7.聲明式服務調用:Spring Cloud Feign 8.分布式配置中心:Spring Cloud Config 9.消息總線:Spring Cloud Bus 10.多個基于SpringBoot和SpringCloud云架構,談微服務和云架構內(nèi)容一:微服務架構開發(fā)實現(xiàn)---SpringBoot 1.Spring Boot概述 2.運用Spring Boot 3.Groovy與Spring Boot CLI 4.在Spring Boot中使用Grails 5.深入Actuator 6.部署Spring Boot應用程序 7.Spring Boot 的數(shù)據(jù)訪問 8.Spring Boot 企業(yè)級開發(fā) 9.Spring Boot 開發(fā)部署與測試 10.多個基于SpringBoot實際項目的架構分析(為何這樣設計/優(yōu)點/缺點/當初的考慮) 內(nèi)容二:微服務架構與云架構--Spring Cloud平臺 1.云計算平臺架構 2.為什么選擇Spring Cloud 3.Spring Cloud 4.服務治理:Spring Cloud Eureka 5.客戶端負載均衡:Spring Cloud Ribbon 6.服務容錯保護:Spring Cloud Hystrix 7.聲明式服務調用:Spring Cloud Feign 8.分布式配置中心:Spring Cloud Config 9.消息總線:Spring Cloud Bus 10.多個基于SpringBoot和SpringCloud云架構,談微服務和云架構 |
第4單元--微服務架構基礎框架和平臺 |
內(nèi)容一:微服務基礎\平臺 1.微服務架構設計之開發(fā)框架選擇(Spring Boot); 2.微服務架構設計之容器選擇(Docker); 3.微服務架構設計之服務注冊選擇(Zookeeper、Etcd、Consul); 4.微服務架構設計之服務網(wǎng)關選擇(Nginx、Node.js、Netflix Zuul); 5.微服務架構設計之自動化部署選擇(Jenkins、GitLab CI); 6.微服務的安全機制與OAuth2.0實現(xiàn) 7.微服務架構設計之最佳實踐案例; |
第5單元--微服務注冊與發(fā)現(xiàn),服務路由,統(tǒng)一配置中心 |
內(nèi)容一:微服務注冊與發(fā)現(xiàn) 1.為什么要服務注冊 2.服務注冊實現(xiàn)方式 3.使用NetflixEureka/SpringCloud實現(xiàn)服務注冊 4.使用NetflixRibbon/SpringCloud實現(xiàn)客戶端負載均衡 5.為什么要服務發(fā)現(xiàn) 6.服務發(fā)現(xiàn)的實現(xiàn)方式 7.使用Spring和Netflix Eureka進行服務發(fā)現(xiàn)實戰(zhàn) 內(nèi)容二:微服務負載均衡和路由,容錯 1.負載均衡 2.容錯 3.服務路由 4.微服務間的異步通信機制 5.Spring Clould 的Ribbon實現(xiàn) 內(nèi)容三:分布式微服務統(tǒng)一配置中心 1.管理配置(和復雜性) 2.配置管理架構 3.構建Spring Cloud配置服務器 4.將Spring Cloud Config與Spring Boot客戶端集成 5.分布式配置中心——攜程Apollo 6.攜程apollo優(yōu)點 7.apollo架構 8.Apollo分布式配置中心部署 9.Apollo分布式配置中心最佳實踐 |
第6單元--微服務網(wǎng)關和過載保護 |
內(nèi)容一:微服務網(wǎng)關—Zuul 1.使用Spring Cloud和Zuul進行服務路由 2.什么是服務網(wǎng)關 3.Spring Cloud和Netflix Zuul簡介 4.在Zuul中配置路由 5.動態(tài)重新加載路由配置 6.構建第 一個生成關聯(lián)ID的Zuul前置過濾器 7.構建動態(tài)路由過濾器 8.Zuul網(wǎng)關最佳實踐 內(nèi)容二:微服務斷路器—Hystrix 1.什么是客戶端彈性模式 2.客戶端負載均衡模式 3.斷路器模式 4.后備模式 5.艙壁模式 6.使用Hystrix實現(xiàn)斷路器 7.對組織微服務的調用超時 8.定制斷路器的超時時間 9.線程上下文和Hystrix 10.Hystrix最佳實踐 |
第7單元--微服務交付與測試 |
內(nèi)容一:微服務測試-持續(xù)集成與測試 1.微服務測試 2.實現(xiàn)服務測試 3.端到端測試的缺點 4.跨功能的測試 5.微服務的測試策略與PACT測試 6.微服務測試案例分析 內(nèi)容二:微服務發(fā)布 1.微服務架構如何代碼控制? 2.微服務架構自動化測試? 3.微服務架構如何預先發(fā)布驗證? 4.微服務架構如何灰度發(fā)布? 5.微服務架構如何自動化發(fā)布? 6.使用Docker發(fā)布服務; 7..使用Docker-Compose在開發(fā)環(huán)境中運行多個服務 8.微服務架構設計軟件質量保證最佳實踐是什么 |
第8單元--微服務架構運維與監(jiān)控 |
內(nèi)容一:微服務運維和監(jiān)控 1.微服務系統(tǒng)設計監(jiān)控重要性? 2.微服務系統(tǒng)設計監(jiān)控數(shù)據(jù)采集方法是什么? 3.微服務系統(tǒng)設計如何監(jiān)控設計? 4.微服務系統(tǒng)語義監(jiān)控如何做? 5.微服務系統(tǒng)進程監(jiān)控如何做? 6.微服務系統(tǒng)錯誤日志監(jiān)控如何做? 7.微服務系統(tǒng)設計監(jiān)控的最佳實踐是什么? 8.最佳實踐與案例分析 |
第9單元--微服務分布式事務和日志監(jiān)控 |
內(nèi)容一:微服務分布式事務 1.本地事務-JDBC實現(xiàn) 2.XA和兩階段事務協(xié)議 3.J2EE分布式事務 4.Spring框架與分布式事務 5.CAP原則和BASE原則 6.微服務事務一致性實現(xiàn)策略 7.TCC與分布式微服務架構事務 8.分布式微服務架構最佳實踐 內(nèi)容二:大型微服務分布式日志 1.大數(shù)據(jù)日志系統(tǒng)的構建 2.開源日志框架的原理分析與應用實踐 3.ELK系統(tǒng)的構建與使用 4.Elasticsearch 5.Logstash 6.Kibana 7.大數(shù)據(jù)日志系統(tǒng)的原理與設計 8.日志系統(tǒng)的容量和性能評估 內(nèi)容三:微服務分布式跟蹤系統(tǒng)—大眾點評CAT 1.基于調用鏈的服務治理系統(tǒng)的設計與實現(xiàn) 2.調用鏈跟蹤的原理 3. 分布式系統(tǒng)的遠程調用過程 4.Google Dapper實現(xiàn) 5.大眾點評CAT案例分析 6.CAT實現(xiàn)原理 7.CAT部署策略 8.CAT最佳實踐 |
第10單元--使用微服務架構改造遺留系統(tǒng) |
內(nèi)容一:使用微服務架構改造遺留系統(tǒng) 1.背景與挑戰(zhàn) 2.改造策略 3.逐步替換微服務 4.功能剝離和封裝 5.依賴數(shù)據(jù)解耦和基礎數(shù)據(jù)共享 6.通過案例分析微服務架構改造 |
第1單元 微服務架構概述 內(nèi)容一:微服務架構誕生—為什么出現(xiàn)微服務架構 1.單塊架構及其面臨的挑戰(zhàn) 2.分層應用架構 3.單塊架構特點 4.單塊架構面臨的挑戰(zhàn) 5.通過某傳統(tǒng)ERP系統(tǒng)為案例分析上線后問題 內(nèi)容二:微服務架構 1.為什么需要微服務架構 2.如何解決傳統(tǒng)應用架構的問題 3.微服務架構是什么 4.微服務架構概念 5.微服務架構參考架構模式 6.通過分析多個微服務架構案例,了解微服務架構的參考模式 |
第2單元-微服務架構—服務分解和建模 內(nèi)容一:微服務分解和服務顆粒度 1.微服務架構構成(服務拆分、服務拓撲關系圖); 2.微服務架構設計原則; 3.微服務架構服務粒度設計; 4.微服務架構之我們的實踐案例; 5.通過大量項目案例分析,什么是好的服務,服務的分解和服務顆粒度 內(nèi)容二:微服務建模 1.如何建模服務 2.什么樣的服務是好服務 3.微服務的松耦合和高內(nèi)聚 4.微服務限界上下文 5.微服務的業(yè)務功能 6.逐步劃分服務上下文 7.微服務與業(yè)務概念 8.微服務技術邊界 9.通過案例分析微服務建模 |
第3單元-微服務架構設計開發(fā)實現(xiàn)—基于SpringBoot和SpringCloud 動手實現(xiàn)一個完整的微服務 內(nèi)容一:微服務架構開發(fā)實現(xiàn)---SpringBoot 1.Spring Boot概述 2.運用Spring Boot 3.Groovy與Spring Boot CLI 4.在Spring Boot中使用Grails 5.深入Actuator 6.部署Spring Boot應用程序 7.Spring Boot 的數(shù)據(jù)訪問 8.Spring Boot 企業(yè)級開發(fā) 9.Spring Boot 開發(fā)部署與測試 10.多個基于SpringBoot實際項目的架構分析(為何這樣設計/優(yōu)點/缺點/當初的考慮) 內(nèi)容二:微服務架構與云架構--Spring Cloud平臺 1.云計算平臺架構 2.為什么選擇Spring Cloud 3.Spring Cloud 4.服務治理:Spring Cloud Eureka 5.客戶端負載均衡:Spring Cloud Ribbon 6.服務容錯保護:Spring Cloud Hystrix 7.聲明式服務調用:Spring Cloud Feign 8.分布式配置中心:Spring Cloud Config 9.消息總線:Spring Cloud Bus 10.多個基于SpringBoot和SpringCloud云架構,談微服務和云架構內(nèi)容一:微服務架構開發(fā)實現(xiàn)---SpringBoot 1.Spring Boot概述 2.運用Spring Boot 3.Groovy與Spring Boot CLI 4.在Spring Boot中使用Grails 5.深入Actuator 6.部署Spring Boot應用程序 7.Spring Boot 的數(shù)據(jù)訪問 8.Spring Boot 企業(yè)級開發(fā) 9.Spring Boot 開發(fā)部署與測試 10.多個基于SpringBoot實際項目的架構分析(為何這樣設計/優(yōu)點/缺點/當初的考慮) 內(nèi)容二:微服務架構與云架構--Spring Cloud平臺 1.云計算平臺架構 2.為什么選擇Spring Cloud 3.Spring Cloud 4.服務治理:Spring Cloud Eureka 5.客戶端負載均衡:Spring Cloud Ribbon 6.服務容錯保護:Spring Cloud Hystrix 7.聲明式服務調用:Spring Cloud Feign 8.分布式配置中心:Spring Cloud Config 9.消息總線:Spring Cloud Bus 10.多個基于SpringBoot和SpringCloud云架構,談微服務和云架構 |
第4單元--微服務架構基礎框架和平臺 內(nèi)容一:微服務基礎\平臺 1.微服務架構設計之開發(fā)框架選擇(Spring Boot); 2.微服務架構設計之容器選擇(Docker); 3.微服務架構設計之服務注冊選擇(Zookeeper、Etcd、Consul); 4.微服務架構設計之服務網(wǎng)關選擇(Nginx、Node.js、Netflix Zuul); 5.微服務架構設計之自動化部署選擇(Jenkins、GitLab CI); 6.微服務的安全機制與OAuth2.0實現(xiàn) 7.微服務架構設計之最佳實踐案例; |
第5單元--微服務注冊與發(fā)現(xiàn),服務路由,統(tǒng)一配置中心 內(nèi)容一:微服務注冊與發(fā)現(xiàn) 1.為什么要服務注冊 2.服務注冊實現(xiàn)方式 3.使用NetflixEureka/SpringCloud實現(xiàn)服務注冊 4.使用NetflixRibbon/SpringCloud實現(xiàn)客戶端負載均衡 5.為什么要服務發(fā)現(xiàn) 6.服務發(fā)現(xiàn)的實現(xiàn)方式 7.使用Spring和Netflix Eureka進行服務發(fā)現(xiàn)實戰(zhàn) 內(nèi)容二:微服務負載均衡和路由,容錯 1.負載均衡 2.容錯 3.服務路由 4.微服務間的異步通信機制 5.Spring Clould 的Ribbon實現(xiàn) 內(nèi)容三:分布式微服務統(tǒng)一配置中心 1.管理配置(和復雜性) 2.配置管理架構 3.構建Spring Cloud配置服務器 4.將Spring Cloud Config與Spring Boot客戶端集成 5.分布式配置中心——攜程Apollo 6.攜程apollo優(yōu)點 7.apollo架構 8.Apollo分布式配置中心部署 9.Apollo分布式配置中心最佳實踐 |
第6單元--微服務網(wǎng)關和過載保護 內(nèi)容一:微服務網(wǎng)關—Zuul 1.使用Spring Cloud和Zuul進行服務路由 2.什么是服務網(wǎng)關 3.Spring Cloud和Netflix Zuul簡介 4.在Zuul中配置路由 5.動態(tài)重新加載路由配置 6.構建第 一個生成關聯(lián)ID的Zuul前置過濾器 7.構建動態(tài)路由過濾器 8.Zuul網(wǎng)關最佳實踐 內(nèi)容二:微服務斷路器—Hystrix 1.什么是客戶端彈性模式 2.客戶端負載均衡模式 3.斷路器模式 4.后備模式 5.艙壁模式 6.使用Hystrix實現(xiàn)斷路器 7.對組織微服務的調用超時 8.定制斷路器的超時時間 9.線程上下文和Hystrix 10.Hystrix最佳實踐 |
第7單元--微服務交付與測試 內(nèi)容一:微服務測試-持續(xù)集成與測試 1.微服務測試 2.實現(xiàn)服務測試 3.端到端測試的缺點 4.跨功能的測試 5.微服務的測試策略與PACT測試 6.微服務測試案例分析 內(nèi)容二:微服務發(fā)布 1.微服務架構如何代碼控制? 2.微服務架構自動化測試? 3.微服務架構如何預先發(fā)布驗證? 4.微服務架構如何灰度發(fā)布? 5.微服務架構如何自動化發(fā)布? 6.使用Docker發(fā)布服務; 7..使用Docker-Compose在開發(fā)環(huán)境中運行多個服務 8.微服務架構設計軟件質量保證最佳實踐是什么 |
第8單元--微服務架構運維與監(jiān)控 內(nèi)容一:微服務運維和監(jiān)控 1.微服務系統(tǒng)設計監(jiān)控重要性? 2.微服務系統(tǒng)設計監(jiān)控數(shù)據(jù)采集方法是什么? 3.微服務系統(tǒng)設計如何監(jiān)控設計? 4.微服務系統(tǒng)語義監(jiān)控如何做? 5.微服務系統(tǒng)進程監(jiān)控如何做? 6.微服務系統(tǒng)錯誤日志監(jiān)控如何做? 7.微服務系統(tǒng)設計監(jiān)控的最佳實踐是什么? 8.最佳實踐與案例分析 |
第9單元--微服務分布式事務和日志監(jiān)控 內(nèi)容一:微服務分布式事務 1.本地事務-JDBC實現(xiàn) 2.XA和兩階段事務協(xié)議 3.J2EE分布式事務 4.Spring框架與分布式事務 5.CAP原則和BASE原則 6.微服務事務一致性實現(xiàn)策略 7.TCC與分布式微服務架構事務 8.分布式微服務架構最佳實踐 內(nèi)容二:大型微服務分布式日志 1.大數(shù)據(jù)日志系統(tǒng)的構建 2.開源日志框架的原理分析與應用實踐 3.ELK系統(tǒng)的構建與使用 4.Elasticsearch 5.Logstash 6.Kibana 7.大數(shù)據(jù)日志系統(tǒng)的原理與設計 8.日志系統(tǒng)的容量和性能評估 內(nèi)容三:微服務分布式跟蹤系統(tǒng)—大眾點評CAT 1.基于調用鏈的服務治理系統(tǒng)的設計與實現(xiàn) 2.調用鏈跟蹤的原理 3. 分布式系統(tǒng)的遠程調用過程 4.Google Dapper實現(xiàn) 5.大眾點評CAT案例分析 6.CAT實現(xiàn)原理 7.CAT部署策略 8.CAT最佳實踐 |
第10單元--使用微服務架構改造遺留系統(tǒng) 內(nèi)容一:使用微服務架構改造遺留系統(tǒng) 1.背景與挑戰(zhàn) 2.改造策略 3.逐步替換微服務 4.功能剝離和封裝 5.依賴數(shù)據(jù)解耦和基礎數(shù)據(jù)共享 6.通過案例分析微服務架構改造 |