【課程背景】
微服務(wù)是一種分布式系統(tǒng)架構(gòu)解決方案,推動細(xì)粒度服務(wù)的使用,這些服務(wù)協(xié)同工作,且每個服務(wù)都有自己的生命周期。因?yàn)槲⒎?wù)主要圍繞業(yè)務(wù)領(lǐng)域建模,所以避免了由傳統(tǒng)的分層架構(gòu)引發(fā)的很多問題。微服務(wù)也整合了過去十年來的新概念和技術(shù),因此得以避開許多面向服務(wù)的架構(gòu)中的陷阱。
隨著 RESTful、云計(jì)算、DevOps、持續(xù)交付等概念的深入人心,微服務(wù)架構(gòu)逐漸成為系統(tǒng)架構(gòu)的一個代名詞。那么微服務(wù)是否是業(yè)界期待已久的企業(yè)架構(gòu)解決方案呢?在微服務(wù)架構(gòu)的實(shí)施過程中存在著怎樣的困難和挑戰(zhàn)呢?在過去幾年的時(shí)間里,我們一直在探索和實(shí)踐,將其復(fù)雜的業(yè)務(wù)支撐系統(tǒng)逐漸演進(jìn)為基于微服務(wù)架構(gòu)的系統(tǒng)。這期間也經(jīng)歷了從微服務(wù)的理論認(rèn)識,到小范圍實(shí)踐、迭代,再到多個基于微服務(wù)構(gòu)建的項(xiàng)目已經(jīng)成功上線的過程。在感受微服務(wù)為開發(fā)實(shí)踐、測試策略、部署、運(yùn)維等帶來改變的同時(shí),也切身體會到使用微服務(wù)架構(gòu),對系統(tǒng)靈活性、可伸縮性方面的提升,以及對團(tuán)隊(duì)?wèi)?yīng)對變化能力的提升。鑒于此,本課程從實(shí)踐的角度出發(fā),首先闡述了單塊架構(gòu)存在的弊端以及微服務(wù)的理論基礎(chǔ)。接著通過實(shí)踐部分,讓讀者能夠體驗(yàn)從零開始搭建第一個微服務(wù)的過程,包括代碼靜態(tài)檢查、基礎(chǔ)設(shè)施構(gòu)建、 Docker映像構(gòu)建及部署、持續(xù)交付流水線、服務(wù)的日志聚合以及監(jiān)控和告警。隨后,探討在微服務(wù)的實(shí)踐過程中所積累的經(jīng)驗(yàn),包括基于 HAL的通信機(jī)制、消費(fèi)者驅(qū)動的測試,并通過一個真實(shí)的案例,幫助讀者更好地理解微服務(wù)架構(gòu)所帶來的靈活性、易擴(kuò)展性和獨(dú)立性。
微服務(wù)是一個快速發(fā)展的主題。盡管它不是一個新的想法(雖然這個詞本身是),但世界各地的人們所獲取的經(jīng)驗(yàn)以及新技術(shù)的出現(xiàn)正在對如何使用它產(chǎn)生深遠(yuǎn)的影響。因?yàn)槠渥兓墓?jié)奏很快,所以本課程更加關(guān)注理念,而不是特定技術(shù),因?yàn)閷?shí)現(xiàn)細(xì)節(jié)變化的速度總是比它們背后的理念要快得多。而且,我相信幾年后我們會對微服務(wù)適用的場景了解更多,也會知道如何更好地使用它。
該課程適應(yīng)于各類技術(shù)人員.細(xì)粒度的微服務(wù)架構(gòu)包含了很多方面的內(nèi)容,所以本課程涉及范圍很廣,適用于對系統(tǒng)的設(shè)計(jì)、開發(fā)、部署、測試和運(yùn)維感興趣的人們。對于那些已經(jīng)走上更細(xì)粒度架構(gòu)之路的人,無論是開發(fā)新應(yīng)用,還是拆分現(xiàn)有的單塊系統(tǒng),都會因課程里很多的實(shí)用建議而受益。對于想要了解微服務(wù)方方面面的人,也可以幫助你確定微服務(wù)是否適合你。
【課程大綱】
主題 |
培訓(xùn)內(nèi)容 |
備注 |
內(nèi)容一:微服務(wù)架構(gòu)誕生—為什么出現(xiàn)微服務(wù)架構(gòu) 1. 單塊架構(gòu)及其面臨的挑戰(zhàn) 2. 分層應(yīng)用架構(gòu) 3. 單塊架構(gòu)特點(diǎn) 4. 單塊架構(gòu)面臨的挑戰(zhàn) 5. 通過某傳統(tǒng)ERP系統(tǒng)為案例分析上線后問題
內(nèi)容二:微服務(wù)架構(gòu)與SOA架構(gòu) 1. SOA的基本概念 2. SOA方法學(xué)和其他方法學(xué)的比較 3. 面向服務(wù)的分析和設(shè)計(jì)概述 4. SOA概念層次 5. SOA參考架構(gòu) 6. SOA基礎(chǔ)架構(gòu)設(shè)施 7. ESB基礎(chǔ)概念和職責(zé) 8. 協(xié)議驅(qū)動和API驅(qū)動的ESB 9. BPM概念和SOA 10. 業(yè)務(wù)流程建模和基于服務(wù)的BPM 11. 軟件體系結(jié)構(gòu)的演變和面向服務(wù)的設(shè)計(jì)原則 12. 通過多個SOA架構(gòu)案例分析
內(nèi)容三:微服務(wù)架構(gòu) 1. 為什么需要微服務(wù)架構(gòu) 2. 如何解決傳統(tǒng)應(yīng)用架構(gòu)的問題 3. 微服務(wù)架構(gòu)是什么 4. 微服務(wù)架構(gòu)概念 5. 微服務(wù)架構(gòu)參考架構(gòu)模式 6. 通過分析多個微服務(wù)架構(gòu)案例,了解微服務(wù)架構(gòu)的參考模式
|
|
|
第2單元-微服務(wù)架構(gòu)—服務(wù)分解和集成 |
內(nèi)容一:微服務(wù)分解和顆粒度 1. 微服務(wù)架構(gòu)構(gòu)成(服務(wù)拆分、服務(wù)拓?fù)潢P(guān)系圖); 2. 微服務(wù)架構(gòu)設(shè)計(jì)原則; 3. 微服務(wù)架構(gòu)服務(wù)粒度設(shè)計(jì); 4. 微服務(wù)架構(gòu)之我們的實(shí)踐案例; 5. 通過大量項(xiàng)目案例分析,什么是好的服務(wù),服務(wù)的分解和服務(wù)顆粒度
內(nèi)容二:微服務(wù)集成 1. 微服務(wù)集成 2. 微服務(wù)集成技術(shù) 3. 避免破壞性修改 4. 保證API的技術(shù)無關(guān)性 5. 使你的服務(wù)易于消費(fèi)方使用 6. 隱藏內(nèi)部實(shí)現(xiàn)細(xì)節(jié) 7. 微服務(wù)接口-為用戶創(chuàng)建接口 8. 微服務(wù)同步與異步 9. 微服務(wù)編排與協(xié)同 10. 微服務(wù)遠(yuǎn)程過程調(diào)用 11. 微服務(wù)REST和HTTP 12. 實(shí)現(xiàn)基于事件的異步協(xié)作方式 13. 通過大量項(xiàng)目案例分析,服務(wù)的集成 |
|
第3單元-微服務(wù)架構(gòu)設(shè)計(jì)開發(fā)實(shí)現(xiàn)—基于SpringBoot和SpringCloud
動手實(shí)現(xiàn)一個完整的微服務(wù) |
內(nèi)容一:微服務(wù)架構(gòu)開發(fā)實(shí)現(xiàn)---SpringBoot 1. Spring Boot概述 2. 運(yùn)用Spring Boot 3. Groovy與Spring Boot CLI 4. 在Spring Boot中使用Grails 5. 深入Actuator 6. 部署Spring Boot應(yīng)用程序 7. Spring Boot 的數(shù)據(jù)訪問 8. Spring Boot 企業(yè)級開發(fā) 9. Spring Boot 開發(fā)部署與測試 10. 多個基于SpringBoot實(shí)際項(xiàng)目的架構(gòu)分析(為何這樣設(shè)計(jì)/優(yōu)點(diǎn)/缺點(diǎn)/當(dāng)初的考慮)
內(nèi)容二:微服務(wù)架構(gòu)與云架構(gòu)--Spring Cloud平臺 1. 云計(jì)算平臺架構(gòu) 2. 為什么選擇Spring Cloud 3. Spring Cloud 4. 服務(wù)治理:Spring Cloud Eureka 5. 客戶端負(fù)載均衡:Spring Cloud Ribbon 6. 服務(wù)容錯保護(hù):Spring Cloud Hystrix 7. 聲明式服務(wù)調(diào)用:Spring Cloud Feign 8. 分布式配置中心:Spring Cloud Config 9. 消息總線:Spring Cloud Bus 10. 多個基于SpringBoot和SpringCloud云架構(gòu),談微服務(wù)和云架構(gòu)
|
|
1. 微服務(wù)架構(gòu)設(shè)計(jì)之開發(fā)框架選擇(Spring Boot); 2. 微服務(wù)架構(gòu)設(shè)計(jì)之容器選擇(Docker); 3. 微服務(wù)架構(gòu)設(shè)計(jì)之服務(wù)注冊選擇(Zookeeper、Etcd、Consul); 4. 微服務(wù)架構(gòu)設(shè)計(jì)之服務(wù)網(wǎng)關(guān)選擇(Nginx、Node.js、Netflix Zuul); 5. 微服務(wù)架構(gòu)設(shè)計(jì)之自動化部署選擇(Jenkins、GitLab CI); 6. 微服務(wù)架構(gòu)設(shè)計(jì)之典型實(shí)踐案例;
|
|
|
第5單元--微服務(wù)注冊與發(fā)現(xiàn) |
1. 為什么要服務(wù)注冊 2. 服務(wù)注冊實(shí)現(xiàn)方式 3. 使用NetflixEureka/SpringCloud實(shí)現(xiàn)服務(wù)注冊 4. 使用NetflixRibbon/SpringCloud實(shí)現(xiàn)客戶端負(fù)載均衡
內(nèi)容二:微服務(wù)發(fā)現(xiàn) 1. 為什么要服務(wù)發(fā)現(xiàn) 2. 服務(wù)發(fā)現(xiàn)的實(shí)現(xiàn)方式
|
|
第6單元--微服務(wù)建模與領(lǐng)域驅(qū)動設(shè)計(jì) |
1. 如何建模服務(wù) 2. 什么樣的服務(wù)是好服務(wù) 3. 微服務(wù)的松耦合和高內(nèi)聚 4. 微服務(wù)限界上下文 5. 微服務(wù)的業(yè)務(wù)功能 6. 逐步劃分服務(wù)上下文 7. 微服務(wù)與業(yè)務(wù)概念 8. 微服務(wù)技術(shù)邊界 9. 通過案例分析微服務(wù)建模
內(nèi)容二:微服務(wù)與領(lǐng)域驅(qū)動設(shè)計(jì) 1. 微服務(wù)基礎(chǔ)及領(lǐng)域驅(qū)動設(shè)計(jì) 2. 領(lǐng)域驅(qū)動設(shè)計(jì)基本原理 3. 領(lǐng)域驅(qū)動設(shè)計(jì)的工件 4. 業(yè)務(wù)事件 5. 實(shí)體Entity及聚合Aggregation識別 6. 統(tǒng)一語言及限界上下文 7. 服務(wù)劃分及定義 8. 通過案例分析微服務(wù)劃分和領(lǐng)域驅(qū)動設(shè)計(jì)
|
|
內(nèi)容一:微服務(wù)測試-持續(xù)集成與測試 1. 微服務(wù)測試 2. 實(shí)現(xiàn)服務(wù)測試 3. 端到端測試的缺點(diǎn) 4. 跨功能的測試 5. 微服務(wù)測試案例分析
內(nèi)容二:微服務(wù)發(fā)布 1. 微服務(wù)架構(gòu)如何代碼控制? 2. 微服務(wù)架構(gòu)自動化測試? 3. 微服務(wù)架構(gòu)如何預(yù)先發(fā)布驗(yàn)證? 4. 微服務(wù)架構(gòu)如何灰度發(fā)布? 5. 微服務(wù)架構(gòu)如何自動化發(fā)布? 6. 微服務(wù)架構(gòu)設(shè)計(jì)軟件質(zhì)量保證典型實(shí)踐是什么
|
|
|
內(nèi)容一:微服務(wù)運(yùn)維和監(jiān)控 1. 微服務(wù)系統(tǒng)設(shè)計(jì)監(jiān)控重要性? 2. 微服務(wù)系統(tǒng)設(shè)計(jì)監(jiān)控?cái)?shù)據(jù)采集方法是什么? 3. 微服務(wù)系統(tǒng)設(shè)計(jì)如何監(jiān)控設(shè)計(jì)? 4. 微服務(wù)系統(tǒng)語義監(jiān)控如何做? 5. 微服務(wù)系統(tǒng)進(jìn)程監(jiān)控如何做? 6. 微服務(wù)系統(tǒng)錯誤日志監(jiān)控如何做? 7. 微服務(wù)系統(tǒng)設(shè)計(jì)監(jiān)控的典型實(shí)踐是什么? 8. 典型實(shí)踐與案例分析
|
|
|
第9單元--使用微服務(wù)架構(gòu)改造遺留系統(tǒng) |
內(nèi)容一:使用微服務(wù)架構(gòu)改造遺留系統(tǒng) 1. 背景與挑戰(zhàn) 2. 改造策略 3. 逐步替換微服務(wù) 4. 功能剝離和封裝 5. 依賴數(shù)據(jù)解耦和基礎(chǔ)數(shù)據(jù)共享 6. 通過案例分析微服務(wù)架構(gòu)改造
|
|