微服務+領域驅動實戰(zhàn)訓練營(線上,11月15-16日)
【舉辦單位】北京曼頓培訓網(wǎng) www.mdpxb.com
【咨詢電話】4006820825 010-56133998 13810210257
【培訓日期】2022年11月15-16日
【培訓地點】北京、線上
【培訓對象】中高級工程師、企業(yè)架構師、軟件設計師、技術決策/解決方案人員等。
【課程背景】
近些年,隨著互聯(lián)網(wǎng)的不斷發(fā)展,市場變化越來越快,需求變更越來越頻繁。為了能夠跟上市場變化的腳步,在市場競爭中占得先機,越來越多的研發(fā)團隊選擇敏捷開發(fā)、快速迭代。然而,越來越龐大的軟件系統(tǒng),越來越復雜的業(yè)務邏輯,使得系統(tǒng)維護變得越來越困難,變更成本越來越大,團隊工作效率越來越低。許多用戶需求需要拖延數(shù)月才能交付,使得軟件企業(yè)痛失有利商機,在市場競爭中處于不利地位。微服務架構正是解決復雜系統(tǒng)的應對之策。
微服務架構將復雜系統(tǒng)化整為零,拆分成一個一個的微服務。然后,將龐大的開發(fā)團隊拆分成一個一個的獨立功能團隊,去維護各自的微服務。采用微服務架構降低了團隊溝通的成本,降低了系統(tǒng)維護的復雜度,更降低了系統(tǒng)發(fā)布的周期,使得我們可以快速交付、快速應對市場需求。
但是,微服務應當如何架構?它有哪些技術特點與技術難點?本課程將會用許多的真實案例講解,什么是微服務,如何用微服務架構我們的系統(tǒng),并用工作坊的形式,實際帶領學員去架構微服務,在動手中獲得知識。
此外,微服務只是工具,只學會工具不行,還要學會如何去運用。微服務背后的理論基礎是單一職責原則、領域驅動設計。因此,本課程會帶領學員站在更深的層次,去深入領悟單一職責原則的本質,深入學習領域驅動設計的過程,以及如何運用它們在復雜的系統(tǒng)中提高代碼質量、應對需求變更,并以此為基礎將需求轉換為微服務系統(tǒng)的設計。
課程的最后將更加務實地探討一些在微服務轉型過程中大家普遍關心的問題:傳統(tǒng)架構如何轉型微服務?初創(chuàng)型企業(yè)如何建設微服務?成熟型企業(yè)開展微服務的思路,以及微服務如何與大數(shù)據(jù)相結合。特舉辦“微服務+領域驅動實戰(zhàn)訓練營”培訓班,具體事宜通知如下:
【培訓特色】
本課程注重實戰(zhàn),并以工作坊的形式提供很多案例,讓學員通過練習掌握微服務架構設計的過程,以及從傳統(tǒng)架構向微服務改造的過程。同時,通過大量真實的案例,講解許多公司在開展微服務轉型過程中面臨的難題、解決的思路,以及最終的設計。
【課程大綱】
第一天 上午第一單元 微服務架構概述
什么是微服務架構
微服務是未來互聯(lián)網(wǎng)發(fā)展的必然結果
1.互聯(lián)網(wǎng)的發(fā)展及其面臨的挑戰(zhàn)
案例:分析淘寶近十年的發(fā)展及其面臨的挑戰(zhàn)
互聯(lián)網(wǎng)在面臨橫向擴展、服務隔離等問題的局限
2.微服務能夠更好地解決互聯(lián)網(wǎng)問題
講解什么是微服務架構
剖析微服務架構在解決諸多互聯(lián)網(wǎng)問題時的思路
微服務架構是應對快速市場變化的必然結果
1.技術進步與快速市場變化面臨的挑戰(zhàn)
市場需要更快速的價值交付與技術迭代
軟件規(guī);l(fā)展導致軟件交付速度的降低
2.微服務如何解決規(guī);艚莸膯栴}
特性團隊組織與微服務架構
去中心化技術治理與去中心化數(shù)據(jù)管理
第二單元 微服務常用架構
基于Spring Cloud Alibaba的微服務技術框架
1.Spring Cloud簡介
2.Spring Boot簡介
3.Spring Cloud Alibaba
最簡版的微服務架構
1.服務注冊與發(fā)現(xiàn)Nacos
2.服務網(wǎng)關Spring Cloud Gateway
3.微服務及其相互調用Sentinel
4.配置管理 Nacos
第一天 下午第三單元 服務注冊與發(fā)現(xiàn)
Nacos注冊中心的方案
1.Nacos的系統(tǒng)架構
2.Nacos Server的設計
3.Nacos Client的設計
4.服務發(fā)現(xiàn)的設計
?使用ribbon的設計
?使用feign的設計
5.構建高并發(fā)、高可用微服務架構
?高可用Nacos集群的搭建
?斷路器設計模式的原理及其應用
?故障轉移、線程池隔離、優(yōu)雅降級與熔斷
?Sentinel的限流措施設計實踐
?Sentinel的服務降級設計實踐
?Spring-retry的故障轉移設計實踐
演練:使用Nacos構建微服務系統(tǒng)
1.搭建Nacos注冊中心與配置中心
2.用Springcloud開發(fā)生產者
3.用ribbon與feign兩種方式開發(fā)消費者
4.用Sentinel實現(xiàn)微服務間的高可用
5.實現(xiàn)Sentinel配置的持久化存儲
第二天 上午第四單元 微服務層的設計
微服務架構的6種設計模式
1.聚合模式
案例:電商網(wǎng)站購物功能的設計
?微服務前后端分離的設計
?分布式事務的兩階段提交
?TCC方案與阿里GTS
?采用分布式事務解決跨庫的事務操作
案例:電商網(wǎng)站下單服務的設計
單一職責原則與領域驅動設計
?互聯(lián)網(wǎng)縱向切分在微服務的實現(xiàn)
?縱向切分應當注意的設計問題
?避免跨庫關聯(lián)查詢的設計
2.代理模式
案例:電商網(wǎng)站支付功能的設計思路
案例:電商網(wǎng)站多渠道支付的微服務實現(xiàn)
3.鏈式模式
4.分支模式
5.數(shù)據(jù)共享模式
案例:微服務+數(shù)據(jù)中臺的建設思路
案例:分布式數(shù)據(jù)庫的架構設計
6.異步消息模式
案例:12306的異步化操作
案例:電商網(wǎng)站異步化操作的微服務實現(xiàn)
微服務的粒度
1.微服務的拆分原則
2.微服務的拆分方式
微服務設計的反模式
1.太多數(shù)據(jù)遷移
2.數(shù)據(jù)共享反模式
3.頻繁交互反模式
探討:如何解決微服務接口太多的問題
第二天 下午第五單元 領域驅動設計
為什么我們需要領域驅動設計
1.現(xiàn)如今DDD越來越流行
2.DDD并不能幫助新項目的軟件開發(fā)
3.DDD真正的作用是日后長期的維護
實踐DDD的4大難題:
1.準確理解為什么要采用DDD?
2.怎樣正確地進行業(yè)務領域建模?
3.怎樣用領域模型指導開發(fā)與變更?
4.如何設計支持領域驅動的架構設計?
DDD真正的作用是應對日后的軟件維護
1.我們現(xiàn)在面對的是快速變化的時代
2.變更越頻繁,代碼質量下降越快
案例:演示電商網(wǎng)站付款功能代碼質量下降的過程
案例分析:揭示軟件退化的根源
3.系統(tǒng)規(guī)模越來越大,系統(tǒng)越來越復雜
案例:演示嵌入式溫控系統(tǒng)越來越難于維護的根源
案例分析:領域分析才是解決之道
案例分析:演示電商網(wǎng)站付款功能代碼質量下降的過程
1.起初的設計
2.隨后的變更
3.質量不斷下降的過程
軟件質量下降的根源:
1.軟件總是因變更而變得越來越復雜
2.軟件結構已經不再適應復雜的軟件需求
3.必須要調整軟件結構以適應新的軟件需求
DDD是應對軟件復雜性之道
1.剖析領域驅動的設計思想
2.服務、實體與值對象的概念
3.充血模型與貧血模型的設計思路
4.問題域、子域與限界上下文劃分
基于領域模型的設計變更
1.演練基于DDD的設計與變更過程
2.演練領域模型如何指導數(shù)據(jù)庫設計
3.演練領域模型如何指導程序設計
4.聚合、倉庫與工廠:傻傻分不清
5.限界上下文:系統(tǒng)拆分的利器
案例:重新演練電商網(wǎng)站付款功能的變更過程
第一個版本的領域模型與設計
第一次變更的分析設計過程
第二場變更的設計實現(xiàn)
第三次變更的設計實現(xiàn)
第四次變更與架構演化
【講師介紹】
范老師,曼頓培訓網(wǎng)(www.mdpxb.com )資深講師。航天信息前首席架構師,暢銷書籍《大話重構》作者,規(guī);艚軸PC,軟件架構及重構的客座講師,獨立咨詢顧問。先后參與了數(shù)十個國內大型軟件項目,涉及國家財政、軍工、稅務、醫(yī)療等領域的大數(shù)據(jù)建設、風險防控與人工智能研究,互聯(lián)網(wǎng)及大數(shù)據(jù)轉型的實踐者與倡導者。
【費用及報名】
1、費用:培訓費線下培訓費:5900元/人;線上培訓費:4700元/人(含教材、證書、午餐、學習用具等)。住宿協(xié)助安排,費用自理。
2、報名咨詢:4006820825 010-56133998 56028090 13810210257 鮑老師
3、報名流程:電話登記-->填寫報名表-->發(fā)出培訓確認函
4、備注:如課程已過期,請訪問我們的網(wǎng)站,查詢最新課程
5、詳細資料請訪問北京曼頓培訓網(wǎng):www.mdpxb.com (每月在全國開設四百多門公開課,歡迎報名學習)