領域驅動與微服務架構設計(6月297月3日)

作者:万博体育3.0手机版发布时间:2020-06-10已浏览: 84次

【培訓特色】本課程的授課特點是注重實戰,授課老師在微服務設計相關領域從業多年,收集了大量的真實案例,會針對項目過程中常見的問題進行匯總、研討,通過大量的真實案例,万博体育3.0手机版詳細地介紹微服務設計過程中需要注意的要點以及難點。通過講師十幾年經驗的總結與傳授,既保證了課程的理論體系完整,又使學員掌握實際工程方法,達到學以致用的目的。

【培訓要點】企業想要在快速變化的市場中獲得競爭優勢,就需要解決規模化軟件開發團隊無法快速交付的困局,基于微服務架構打造一個快速交付的團隊。然而,只有準確理解微服務,理解小而專、去中心化技術治理與數據管理的思想與方法,才能真正發揮微服務的優勢。本課程通過微服務架構的實踐,逐步深入的幫助學員解決如下問題:1,要想讓微服務的優勢真正發揮出來,就要小而專,其難題就是微服務該如何拆分,解決這些問題的最佳實踐就是領域驅動設計。課程將通過案例演練帶領學員逐步建立領域驅動的業務分析過程、領域建模過程,以及如何通過限界上下文進行微服務的拆分,提高微服務可維護性的方法。2,如何在原有的業務系統中進行微服務轉型,這個過程中會遇到哪些坑,是大家特別關注的問題。課程將帶領學員實際去架構一個微服務系統,進而探尋微服務在架構過程中會遇到的難題,以及它們的解決思路。3,為了提升實踐能力,授課教師將帶著學員演練在真實項目中該如何開發微服務系統,包括微服務的父項目、多套配置文件、集中式的配置中心,以及如何架構一個既支持微服務又支持領域驅動的技術中臺,達到既能降低技術門檻,減少開發工作量,又易于業務變更,易于架構演化的目的。4,運維微服務架構需要強大的運維平臺支持,也就需要打造一整套DevOps自動化運維體系。這個體系包括:持續探索、持續集成、持續交付,以及在這個過程中的自動化測試與運維。課程將在授課教師的指導下,實際搭建這樣的平臺,去理解如何自動化部署微服務,以及用Prometheus、EFK運維。

【課程大綱】第一講微服務架構基礎目的:1,理解為什么微服務架構是應對當今激烈市場競爭的解決之道2,理解規模化團隊的組織形式:跨功能團隊與微服務架構3,理解微服務架構如何支持技術架構的快速演化4,理解微服務架構如何支持未來大數據的轉型內容:1,快速變化的年代需要快速交付a.快速變化的市場與快速更迭的技術帶來發展機遇b.激烈競爭的新興市場需要更快速的交付去占領市場2,規模化團隊快速交付的困局a.煙囪式的開發團隊導致煙囪式的軟件開發b.煙囪式的軟件開發導致煙囪式的軟件交付3,解決思路:a.跨功能團隊(特性團隊)的組織形式b.將單體應用改為微服務架構4,準確理解微服務架構a.準確理解微服務架構小而專的概念提高設計質量b.準確理解微服務去中心化的技術治理去快速技術演化c.準確理解微服務去中心化的數據管理做大數據轉型

第二講微服務架構設計目的:1,準確理解小而專與單一職責原則在微服務的設計2,掌握領域驅動的業務建模、微服務拆分設計過程3,準確理解領域驅動設計中的聚合、限界上下文及領域事件等方法的設計4,掌握在需求變更過程中運用領域驅動設計提高設計質量內容:1,快速變化的時代要求快速交付a.快速交付要求代碼質量提高,維護成本降低b.快速交付帶來代碼的頻繁變更,加劇了代碼退化2,怎樣在快速交付過程中保持代碼質量a.演示代碼退化的過程→多職責與散彈式修改b.追尋代碼退化的根源→解決方案:兩頂帽子c.應對復雜應用的解決之道領域驅動+微服務3,演練領域驅動設計的過程案例:在線訂餐系統的設計a.業務分析:統一語言與事件風暴b.領域設計:服務、實體、值對象c.微服務拆分:聚合、限界上下文與領域事件4,業務需求變更a.原始需求的設計過程b.添加打折促銷功能(先在領域模型中分析設計)c.添加VIP會員功能(微服務的變更維護)d.添加秒殺、預訂、閃購等功能(微服務的技術演化)

第三講微服務架構的技術方法目的:1,掌握微服務架構過程中的所使用的各自技術組件2,演練微服務架構的構建過程3,理解微服務架構過程中的技術難題與解決之道內容:1,演練微服務架構的構建過程a.降級微服務的注冊中心,及其設計實踐b.演練構建注冊中心、生產者與消費者的整個過程c.講解微服務的熔斷機制,及其設計實踐d.講解微服務的服務降級,及其設計實踐e.講解微服務的服務網關,及其設計實踐2,微服務架構的工程實踐a.傳統項目向微服務的轉型過程b.構建高可靠的注冊中心與Eureka集群c.微服務的跨語言調用,及其設計實踐

第四講微服務架構的平臺建設目的:1,掌握在真實項目中切實可行地開發微服務2,掌握既支持微服務又支持領域驅動的技術中臺建設內容:1,演練在真實項目中開發微服務a.微服務項目中父項目的設計b.微服務項目中多套配置文件的設計c.微服務項目中集中式配置中心的設計2,打造支持領域驅動+微服務的技術中臺a.降低技術門檻,減少開發工作量→制訂規范、合理分層、降低復雜度b.易于業務變更,易于架構演化→將業務與技術解耦a)將業務與技術解耦→整潔架構與六邊形架構b)提取共性,精簡業務代碼→單Controller,單Dao3,支持領域驅動,支持微服務→通用倉庫、工廠及基礎設施的設計a.通用、可配置的DDD倉庫與工廠的設計b.解決跨庫的關聯查詢與事務處理c.純潔的Service與Entity便于不斷地架構演化

第五講微服務架構的運維目的:1,理解DevOps的概念、作用,以及在微服務架構中如何快速交付2,實操Git+Jenkins+Docker+Kubernetes自動化運維體系3,實操Eureka+Config+Turbine+Zipkin在k8s中的云端部署4,實操Prometheus+Grafana+EFK的線上系統監控與日志采集內容:1,微服務架構需要DevOps自動化運維a.剖析傳統運維存在的交付困難的困局b.Whobuildwhorunit與DevOps的概念c.敏捷團隊快速交付的持續探索、持續集成、持續交付與按需發布d.DevOps帶來開發人員的負擔與自動化運維2,自動化運維的工作原理a.Docker容器技術與發布標準化b.分布式容器部署與Kubernetesc.實操Git+Jenkins+Docker+Kubernetes的自動化部署過程3,打造微服務架構的自動化運維體系a.注冊中心Eureka在Kubernetes的分布式部署b.配置中心Config在Kubernetes的分布式部署c.斷路器監控Turbine與路由優化Zipkin4,微服務云端架構的系統監控與日志采集a.Kubernetes的系統監控工具Prometheus+Grafanab.Kubernetes的日志采集工具EFK