課程簡(jiǎn)介
本課程將會(huì)用許多的真實(shí)案例講解,什么是微服務(wù),如何用微服務(wù)架構(gòu)我們的系統(tǒng),并用工作坊的形式,實(shí)際帶領(lǐng)學(xué)員去架構(gòu)微服務(wù),在動(dòng)手中獲得知識(shí)。
此外,微服務(wù)只是工具,只學(xué)會(huì)工具不行,還要學(xué)會(huì)如何去運(yùn)用。微服務(wù)背后的理論基礎(chǔ)是單一職責(zé)原則、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)。因此,本課程會(huì)帶領(lǐng)學(xué)員站在更深的層次,去深入領(lǐng)悟單一職責(zé)原則的本質(zhì),深入學(xué)習(xí)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的過程,以及如何運(yùn)用它們?cè)趶?fù)雜的系統(tǒng)中提高代碼質(zhì)量、應(yīng)對(duì)需求變更,并以此為基礎(chǔ)將需求轉(zhuǎn)換為微服務(wù)系統(tǒng)的設(shè)計(jì)。
課程的最后將更加務(wù)實(shí)地探討一些在微服務(wù)轉(zhuǎn)型過程中大家普遍關(guān)心的問題:傳統(tǒng)架構(gòu)如何轉(zhuǎn)型微服務(wù)?初創(chuàng)型企業(yè)如何建設(shè)微服務(wù)?成熟型企業(yè)開展微服務(wù)的思路,以及微服務(wù)如何與大數(shù)據(jù)相結(jié)合。
目標(biāo)收益
培訓(xùn)對(duì)象
中高級(jí)工程師、企業(yè)架構(gòu)師、軟件設(shè)計(jì)師、技術(shù)決策/解決方案人員等。
課程大綱
第一部分 基礎(chǔ)知識(shí) 第一單元 微服務(wù)架構(gòu)概述 |
什么是微服務(wù)架構(gòu) 微服務(wù)架構(gòu)是敏捷開發(fā)的必然結(jié)果 1.單體應(yīng)用的優(yōu)勢(shì)與面臨的挑戰(zhàn) 案例:演示淘寶在系統(tǒng)不斷發(fā)展的過程中面臨的難題 許多系統(tǒng)在不斷發(fā)展過程中越來越龐大帶來的問題 2.康威定律與人月神話 煙囪式的功能團(tuán)隊(duì)導(dǎo)致煙囪式的應(yīng)用 人員越來越多、溝通越來越困難、工作效率越來越低 3.未來快速變化的市場(chǎng)需要敏捷團(tuán)隊(duì) 更快地交付、更快地反饋、更快地產(chǎn)生價(jià)值 敏捷化的開發(fā)團(tuán)隊(duì)呼喚微服務(wù)架構(gòu) 微服務(wù)是未來互聯(lián)網(wǎng)發(fā)展的必然結(jié)果 1.互聯(lián)網(wǎng)的發(fā)展及其面臨的挑戰(zhàn) 案例:分析淘寶近十年的發(fā)展及其面臨的挑戰(zhàn) 互聯(lián)網(wǎng)在面臨橫向擴(kuò)展、服務(wù)隔離等問題的局限 2.微服務(wù)能夠更好地解決互聯(lián)網(wǎng)問題 分析傳統(tǒng)架構(gòu)在解決互聯(lián)網(wǎng)問題時(shí)采用的辦法 講解微服務(wù)架構(gòu)應(yīng)當(dāng)是什么樣子 剖析微服務(wù)架構(gòu)在解決諸多互聯(lián)網(wǎng)問題時(shí)的思路 微服務(wù)架構(gòu)給測(cè)試與運(yùn)維帶來的挑戰(zhàn) 1.微服務(wù)架構(gòu)給測(cè)試帶來的挑戰(zhàn) 微服務(wù)架構(gòu)與持續(xù)集成 微服務(wù)架構(gòu)采用的測(cè)試工具 2.微服務(wù)架構(gòu)給運(yùn)維帶來的調(diào)整 微服務(wù)架構(gòu)與DevOps 微服務(wù)架構(gòu)的管理與發(fā)布過程 |
第二單元 準(zhǔn)確認(rèn)識(shí)微服務(wù) |
關(guān)于微服務(wù)的誤解 1.微服務(wù) vs. SOA 案例:SOA在項(xiàng)目中的應(yīng)用 案例:微服務(wù)在項(xiàng)目中的應(yīng)用 微服務(wù)與SOA的聯(lián)系與差異 2.微服務(wù)架構(gòu)的本質(zhì) ?由服務(wù)組件組成的系統(tǒng) ?按照業(yè)務(wù)而不是技術(shù)來組織服務(wù) ?做全生命周期的產(chǎn)品而不是項(xiàng)目 ?智能端點(diǎn)與通道扁平化 ?去中心化治理 ?去中心化數(shù)據(jù)管理 ?自動(dòng)化運(yùn)維(DevOps) ?故障恢復(fù)與容錯(cuò) ?演化式設(shè)計(jì) 案例:演示出租車調(diào)度系統(tǒng)的微服務(wù)設(shè)計(jì)過程 |
第二部分 微服務(wù)架構(gòu)設(shè)計(jì) 第三單元 微服務(wù)常用架構(gòu) |
最簡(jiǎn)版的微服務(wù)架構(gòu) 1.服務(wù)注冊(cè)與發(fā)現(xiàn) 2.服務(wù)網(wǎng)關(guān) 3.微服務(wù) 4.配置管理 微服務(wù)常用的技術(shù)框架 1.Spring Cloud簡(jiǎn)介 2.Spring Boot簡(jiǎn)介 |
第四單元 服務(wù)注冊(cè)與發(fā)現(xiàn) |
服務(wù)注冊(cè)與發(fā)現(xiàn)的概念與作用 實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)的方案 1.Dubbo的簡(jiǎn)介 2.Zookeeper的簡(jiǎn)介 3.ETCD的簡(jiǎn)介 4.Netflix Eureka的簡(jiǎn)介 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ì) 5.熔斷機(jī)制 ?斷路器設(shè)計(jì)模式 ?線程池隔離、優(yōu)雅降級(jí)與熔斷 ?Hystrix的斷路器設(shè)計(jì) 6.高可靠設(shè)計(jì)與Eureka集群 練習(xí):使用Eureka構(gòu)建微服務(wù)系統(tǒng) 1.Eureka Server 2.Eureka Client 3.使用ribbon/feign進(jìn)行微服務(wù)間調(diào)用 4.設(shè)計(jì)熔斷器 |
第五單元 微服務(wù)層的設(shè)計(jì) |
微服務(wù)架構(gòu)的6種設(shè)計(jì)模式 1.聚合模式 案例:電商網(wǎng)站購物功能的設(shè)計(jì) ?微服務(wù)前后端分離的設(shè)計(jì) ?分布式事務(wù)的兩階段提交 ?TCC方案與阿里GTS ?采用分布式事務(wù)解決跨庫的事務(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ì)問題 ?避免跨庫關(guān)聯(lián)查詢的設(shè)計(jì) 2.代理模式 案例:電商網(wǎng)站支付功能的設(shè)計(jì)思路 案例:電商網(wǎng)站多渠道支付的微服務(wù)實(shí)現(xiàn) 3.鏈?zhǔn)侥J?br/>4.分支模式 5.數(shù)據(jù)共享模式 6.異步消息模式 案例:12306的異步化操作 案例:電商網(wǎng)站異步化操作的微服務(wù)實(shí)現(xiàn) 微服務(wù)的粒度 1.微服務(wù)的拆分原則 2.微服務(wù)的拆分方式 微服務(wù)設(shè)計(jì)的反模式 1.太多數(shù)據(jù)遷移 2.數(shù)據(jù)共享反模式 3.頻繁交互反模式 探討:如何解決微服務(wù)接口太多的問題 |
第六單元 服務(wù)網(wǎng)關(guān) |
服務(wù)網(wǎng)關(guān)在微服務(wù)架構(gòu)中的作用 1.多渠道用戶接入 微服務(wù)前后端分離的架構(gòu)設(shè)計(jì) 2.微服務(wù)的負(fù)載均衡 負(fù)載均衡的難題:Session管理 3.路由網(wǎng)關(guān)(zuul) 藍(lán)綠發(fā)布、滾動(dòng)發(fā)布、灰度發(fā)布與金絲雀發(fā)布 權(quán)限驗(yàn)證與安全保障 智能路由與服務(wù)遷移 過濾器的設(shè)計(jì)與配置 4.流量控制與節(jié)流 練習(xí):設(shè)計(jì)服務(wù)網(wǎng)關(guān)、路由網(wǎng)關(guān)與斷路器 |
第七單元 Docker與容器技術(shù) |
Docker簡(jiǎn)介 1.Docker vs. 虛擬化 2.Docker的運(yùn)行方式 3.Docker的基本操作 將微服務(wù)部署到Docker中 演練:微服務(wù)在Docker中的部署過程 練習(xí):模擬構(gòu)建一個(gè)微服務(wù)系統(tǒng) |
第八單元 配置管理與DevOps |
DevOps簡(jiǎn)介 1.微服務(wù)為什么需要DevOps 2.微服務(wù)的測(cè)試過程 3.微服務(wù)的發(fā)布過程 微服務(wù)配置中心 1.Spring Cloud Config的配置過程 2.Spring Cloud Config的發(fā)布過程 微服務(wù)的分布式運(yùn)維 1.Kubernetes的運(yùn)行原理解析 2.Kubernetes命令與操作 3.Kubernetes管理界面 4.用配置文件在Kubernetes中部署微服務(wù) 演示:Git+Jenkins+docker+k8s的自動(dòng)化分布式部署 |
第三部分 微服務(wù)的系統(tǒng)設(shè)計(jì) 第九單元 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) |
所有軟件企業(yè)不得不面對(duì)的問題 1.我們現(xiàn)在面對(duì)的是快速變化的時(shí)代 2.軟件研發(fā)卻出現(xiàn)了問題: 變更越頻繁,代碼質(zhì)量下降越快 案例:演示電商網(wǎng)站付款功能代碼質(zhì)量下降的過程 3.揭示軟件退化的根源 案例:演示軟件退化的過程與高質(zhì)量設(shè)計(jì)的過程 深度解讀高內(nèi)聚與單一職責(zé)原則 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 1.軟件變更過程中的設(shè)計(jì)難題 2.領(lǐng)域驅(qū)動(dòng)的設(shè)計(jì)思想 案例:重新演練電商網(wǎng)站付款功能的變更過程 第一個(gè)版本的領(lǐng)域模型與設(shè)計(jì) ?構(gòu)建用例模型 ?構(gòu)建領(lǐng)域模型 ?構(gòu)建領(lǐng)域事件 第一次變更的分析設(shè)計(jì)過程 ?演示領(lǐng)域分析不斷深入的過程 ?演示領(lǐng)域驅(qū)動(dòng)指導(dǎo)軟件變更的過程 第二次變更與兩頂帽子的設(shè)計(jì)方式 第三次變更與限界上下文 ?聚合、工廠、倉庫的設(shè)計(jì) ?限界上下文與微服務(wù) 3.領(lǐng)域驅(qū)動(dòng)的設(shè)計(jì)實(shí)現(xiàn) 貧血模型 vs. 充血模型 領(lǐng)域驅(qū)動(dòng)在傳統(tǒng)架構(gòu)中的實(shí)現(xiàn) 領(lǐng)域驅(qū)動(dòng)在微服務(wù)架構(gòu)中的實(shí)現(xiàn) 軟件架構(gòu)如何支持領(lǐng)域驅(qū)動(dòng) 1.架構(gòu)調(diào)整不是件簡(jiǎn)單的事兒 如何實(shí)現(xiàn)業(yè)務(wù)領(lǐng)域?qū)优c技術(shù)框架的解耦 如何簡(jiǎn)化業(yè)務(wù)實(shí)現(xiàn)的過程 2.架構(gòu)設(shè)計(jì)如何支持領(lǐng)域驅(qū)動(dòng) 增刪改如何支持領(lǐng)域驅(qū)動(dòng) 查詢?nèi)绾沃С诸I(lǐng)域驅(qū)動(dòng) 3.微服務(wù)架構(gòu)如何支持領(lǐng)域驅(qū)動(dòng) 案例:一個(gè)簡(jiǎn)單、易于開發(fā)的微服務(wù)架構(gòu) 如何實(shí)現(xiàn)前端微服務(wù)化的設(shè)計(jì) |
第十單元 傳統(tǒng)架構(gòu)的微服務(wù)轉(zhuǎn)型 |
傳統(tǒng)架構(gòu)微服務(wù)轉(zhuǎn)型的過程 1.技術(shù)轉(zhuǎn)型 準(zhǔn)備工作:Maven→Spring boot 整理分層:MVC層與BUS層的分離 建立微服務(wù):注冊(cè)中心、服務(wù)網(wǎng)關(guān)與微服務(wù) 2.業(yè)務(wù)拆分 構(gòu)建領(lǐng)域模型與限界上下文 業(yè)務(wù)與數(shù)據(jù)庫的縱向切分 練習(xí):將一個(gè)傳統(tǒng)架構(gòu)的軟件改造成微服務(wù) 初創(chuàng)型企業(yè)的微服務(wù)建設(shè)過程 案例:某智慧醫(yī)療系統(tǒng)的建設(shè)過程 1.系統(tǒng)的建設(shè)規(guī)劃 2.系統(tǒng)的分析設(shè)計(jì)過程 3.微服務(wù)架構(gòu)設(shè)計(jì)與對(duì)外接口 4.微服務(wù)運(yùn)營平臺(tái)的建設(shè) 成熟型企業(yè)開展微服務(wù)的思路 1.成熟企業(yè)開展微服務(wù)的難題 2.記錄型系統(tǒng) vs. 交互型系統(tǒng) 3.在混合云中構(gòu)建交互型系統(tǒng) 案例:某金融企業(yè)向微服務(wù)轉(zhuǎn)型的過程 大數(shù)據(jù)+微服務(wù)的轉(zhuǎn)型過程 案例:某風(fēng)控系統(tǒng)的大數(shù)據(jù)+微服務(wù)的轉(zhuǎn)型過程 1.該風(fēng)控系統(tǒng)的背景介紹 2.互聯(lián)網(wǎng)轉(zhuǎn)型帶來的機(jī)遇與挑戰(zhàn) 3.后端大數(shù)據(jù)的轉(zhuǎn)型過程 4.前端微服務(wù)的轉(zhuǎn)型過程 5.構(gòu)建風(fēng)險(xiǎn)分析模型的AppStore平臺(tái) 探討:大數(shù)據(jù)如何與微服務(wù)相結(jié)合 |
第一部分 基礎(chǔ)知識(shí) 第一單元 微服務(wù)架構(gòu)概述 什么是微服務(wù)架構(gòu) 微服務(wù)架構(gòu)是敏捷開發(fā)的必然結(jié)果 1.單體應(yīng)用的優(yōu)勢(shì)與面臨的挑戰(zhàn) 案例:演示淘寶在系統(tǒng)不斷發(fā)展的過程中面臨的難題 許多系統(tǒng)在不斷發(fā)展過程中越來越龐大帶來的問題 2.康威定律與人月神話 煙囪式的功能團(tuán)隊(duì)導(dǎo)致煙囪式的應(yīng)用 人員越來越多、溝通越來越困難、工作效率越來越低 3.未來快速變化的市場(chǎng)需要敏捷團(tuán)隊(duì) 更快地交付、更快地反饋、更快地產(chǎn)生價(jià)值 敏捷化的開發(fā)團(tuán)隊(duì)呼喚微服務(wù)架構(gòu) 微服務(wù)是未來互聯(lián)網(wǎng)發(fā)展的必然結(jié)果 1.互聯(lián)網(wǎng)的發(fā)展及其面臨的挑戰(zhàn) 案例:分析淘寶近十年的發(fā)展及其面臨的挑戰(zhàn) 互聯(lián)網(wǎng)在面臨橫向擴(kuò)展、服務(wù)隔離等問題的局限 2.微服務(wù)能夠更好地解決互聯(lián)網(wǎng)問題 分析傳統(tǒng)架構(gòu)在解決互聯(lián)網(wǎng)問題時(shí)采用的辦法 講解微服務(wù)架構(gòu)應(yīng)當(dāng)是什么樣子 剖析微服務(wù)架構(gòu)在解決諸多互聯(lián)網(wǎng)問題時(shí)的思路 微服務(wù)架構(gòu)給測(cè)試與運(yùn)維帶來的挑戰(zhàn) 1.微服務(wù)架構(gòu)給測(cè)試帶來的挑戰(zhàn) 微服務(wù)架構(gòu)與持續(xù)集成 微服務(wù)架構(gòu)采用的測(cè)試工具 2.微服務(wù)架構(gòu)給運(yùn)維帶來的調(diào)整 微服務(wù)架構(gòu)與DevOps 微服務(wù)架構(gòu)的管理與發(fā)布過程 |
第二單元 準(zhǔn)確認(rèn)識(shí)微服務(wù) 關(guān)于微服務(wù)的誤解 1.微服務(wù) vs. SOA 案例:SOA在項(xiàng)目中的應(yīng)用 案例:微服務(wù)在項(xiàng)目中的應(yīng)用 微服務(wù)與SOA的聯(lián)系與差異 2.微服務(wù)架構(gòu)的本質(zhì) ?由服務(wù)組件組成的系統(tǒng) ?按照業(yè)務(wù)而不是技術(shù)來組織服務(wù) ?做全生命周期的產(chǎn)品而不是項(xiàng)目 ?智能端點(diǎn)與通道扁平化 ?去中心化治理 ?去中心化數(shù)據(jù)管理 ?自動(dòng)化運(yùn)維(DevOps) ?故障恢復(fù)與容錯(cuò) ?演化式設(shè)計(jì) 案例:演示出租車調(diào)度系統(tǒng)的微服務(wù)設(shè)計(jì)過程 |
第二部分 微服務(wù)架構(gòu)設(shè)計(jì) 第三單元 微服務(wù)常用架構(gòu) 最簡(jiǎn)版的微服務(wù)架構(gòu) 1.服務(wù)注冊(cè)與發(fā)現(xiàn) 2.服務(wù)網(wǎng)關(guān) 3.微服務(wù) 4.配置管理 微服務(wù)常用的技術(shù)框架 1.Spring Cloud簡(jiǎn)介 2.Spring Boot簡(jiǎn)介 |
第四單元 服務(wù)注冊(cè)與發(fā)現(xiàn) 服務(wù)注冊(cè)與發(fā)現(xiàn)的概念與作用 實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)的方案 1.Dubbo的簡(jiǎn)介 2.Zookeeper的簡(jiǎn)介 3.ETCD的簡(jiǎn)介 4.Netflix Eureka的簡(jiǎn)介 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ì) 5.熔斷機(jī)制 ?斷路器設(shè)計(jì)模式 ?線程池隔離、優(yōu)雅降級(jí)與熔斷 ?Hystrix的斷路器設(shè)計(jì) 6.高可靠設(shè)計(jì)與Eureka集群 練習(xí):使用Eureka構(gòu)建微服務(wù)系統(tǒng) 1.Eureka Server 2.Eureka Client 3.使用ribbon/feign進(jìn)行微服務(wù)間調(diào)用 4.設(shè)計(jì)熔斷器 |
第五單元 微服務(wù)層的設(shè)計(jì) 微服務(wù)架構(gòu)的6種設(shè)計(jì)模式 1.聚合模式 案例:電商網(wǎng)站購物功能的設(shè)計(jì) ?微服務(wù)前后端分離的設(shè)計(jì) ?分布式事務(wù)的兩階段提交 ?TCC方案與阿里GTS ?采用分布式事務(wù)解決跨庫的事務(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ì)問題 ?避免跨庫關(guān)聯(lián)查詢的設(shè)計(jì) 2.代理模式 案例:電商網(wǎng)站支付功能的設(shè)計(jì)思路 案例:電商網(wǎng)站多渠道支付的微服務(wù)實(shí)現(xiàn) 3.鏈?zhǔn)侥J?br/>4.分支模式 5.數(shù)據(jù)共享模式 6.異步消息模式 案例:12306的異步化操作 案例:電商網(wǎng)站異步化操作的微服務(wù)實(shí)現(xiàn) 微服務(wù)的粒度 1.微服務(wù)的拆分原則 2.微服務(wù)的拆分方式 微服務(wù)設(shè)計(jì)的反模式 1.太多數(shù)據(jù)遷移 2.數(shù)據(jù)共享反模式 3.頻繁交互反模式 探討:如何解決微服務(wù)接口太多的問題 |
第六單元 服務(wù)網(wǎng)關(guān) 服務(wù)網(wǎng)關(guān)在微服務(wù)架構(gòu)中的作用 1.多渠道用戶接入 微服務(wù)前后端分離的架構(gòu)設(shè)計(jì) 2.微服務(wù)的負(fù)載均衡 負(fù)載均衡的難題:Session管理 3.路由網(wǎng)關(guān)(zuul) 藍(lán)綠發(fā)布、滾動(dòng)發(fā)布、灰度發(fā)布與金絲雀發(fā)布 權(quán)限驗(yàn)證與安全保障 智能路由與服務(wù)遷移 過濾器的設(shè)計(jì)與配置 4.流量控制與節(jié)流 練習(xí):設(shè)計(jì)服務(wù)網(wǎng)關(guān)、路由網(wǎng)關(guān)與斷路器 |
第七單元 Docker與容器技術(shù) Docker簡(jiǎn)介 1.Docker vs. 虛擬化 2.Docker的運(yùn)行方式 3.Docker的基本操作 將微服務(wù)部署到Docker中 演練:微服務(wù)在Docker中的部署過程 練習(xí):模擬構(gòu)建一個(gè)微服務(wù)系統(tǒng) |
第八單元 配置管理與DevOps DevOps簡(jiǎn)介 1.微服務(wù)為什么需要DevOps 2.微服務(wù)的測(cè)試過程 3.微服務(wù)的發(fā)布過程 微服務(wù)配置中心 1.Spring Cloud Config的配置過程 2.Spring Cloud Config的發(fā)布過程 微服務(wù)的分布式運(yùn)維 1.Kubernetes的運(yùn)行原理解析 2.Kubernetes命令與操作 3.Kubernetes管理界面 4.用配置文件在Kubernetes中部署微服務(wù) 演示:Git+Jenkins+docker+k8s的自動(dòng)化分布式部署 |
第三部分 微服務(wù)的系統(tǒng)設(shè)計(jì) 第九單元 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 所有軟件企業(yè)不得不面對(duì)的問題 1.我們現(xiàn)在面對(duì)的是快速變化的時(shí)代 2.軟件研發(fā)卻出現(xiàn)了問題: 變更越頻繁,代碼質(zhì)量下降越快 案例:演示電商網(wǎng)站付款功能代碼質(zhì)量下降的過程 3.揭示軟件退化的根源 案例:演示軟件退化的過程與高質(zhì)量設(shè)計(jì)的過程 深度解讀高內(nèi)聚與單一職責(zé)原則 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 1.軟件變更過程中的設(shè)計(jì)難題 2.領(lǐng)域驅(qū)動(dòng)的設(shè)計(jì)思想 案例:重新演練電商網(wǎng)站付款功能的變更過程 第一個(gè)版本的領(lǐng)域模型與設(shè)計(jì) ?構(gòu)建用例模型 ?構(gòu)建領(lǐng)域模型 ?構(gòu)建領(lǐng)域事件 第一次變更的分析設(shè)計(jì)過程 ?演示領(lǐng)域分析不斷深入的過程 ?演示領(lǐng)域驅(qū)動(dòng)指導(dǎo)軟件變更的過程 第二次變更與兩頂帽子的設(shè)計(jì)方式 第三次變更與限界上下文 ?聚合、工廠、倉庫的設(shè)計(jì) ?限界上下文與微服務(wù) 3.領(lǐng)域驅(qū)動(dòng)的設(shè)計(jì)實(shí)現(xiàn) 貧血模型 vs. 充血模型 領(lǐng)域驅(qū)動(dòng)在傳統(tǒng)架構(gòu)中的實(shí)現(xiàn) 領(lǐng)域驅(qū)動(dòng)在微服務(wù)架構(gòu)中的實(shí)現(xiàn) 軟件架構(gòu)如何支持領(lǐng)域驅(qū)動(dòng) 1.架構(gòu)調(diào)整不是件簡(jiǎn)單的事兒 如何實(shí)現(xiàn)業(yè)務(wù)領(lǐng)域?qū)优c技術(shù)框架的解耦 如何簡(jiǎn)化業(yè)務(wù)實(shí)現(xiàn)的過程 2.架構(gòu)設(shè)計(jì)如何支持領(lǐng)域驅(qū)動(dòng) 增刪改如何支持領(lǐng)域驅(qū)動(dòng) 查詢?nèi)绾沃С诸I(lǐng)域驅(qū)動(dòng) 3.微服務(wù)架構(gòu)如何支持領(lǐng)域驅(qū)動(dòng) 案例:一個(gè)簡(jiǎn)單、易于開發(fā)的微服務(wù)架構(gòu) 如何實(shí)現(xiàn)前端微服務(wù)化的設(shè)計(jì) |
第十單元 傳統(tǒng)架構(gòu)的微服務(wù)轉(zhuǎn)型 傳統(tǒng)架構(gòu)微服務(wù)轉(zhuǎn)型的過程 1.技術(shù)轉(zhuǎn)型 準(zhǔn)備工作:Maven→Spring boot 整理分層:MVC層與BUS層的分離 建立微服務(wù):注冊(cè)中心、服務(wù)網(wǎng)關(guān)與微服務(wù) 2.業(yè)務(wù)拆分 構(gòu)建領(lǐng)域模型與限界上下文 業(yè)務(wù)與數(shù)據(jù)庫的縱向切分 練習(xí):將一個(gè)傳統(tǒng)架構(gòu)的軟件改造成微服務(wù) 初創(chuàng)型企業(yè)的微服務(wù)建設(shè)過程 案例:某智慧醫(yī)療系統(tǒng)的建設(shè)過程 1.系統(tǒng)的建設(shè)規(guī)劃 2.系統(tǒng)的分析設(shè)計(jì)過程 3.微服務(wù)架構(gòu)設(shè)計(jì)與對(duì)外接口 4.微服務(wù)運(yùn)營平臺(tái)的建設(shè) 成熟型企業(yè)開展微服務(wù)的思路 1.成熟企業(yè)開展微服務(wù)的難題 2.記錄型系統(tǒng) vs. 交互型系統(tǒng) 3.在混合云中構(gòu)建交互型系統(tǒng) 案例:某金融企業(yè)向微服務(wù)轉(zhuǎn)型的過程 大數(shù)據(jù)+微服務(wù)的轉(zhuǎn)型過程 案例:某風(fēng)控系統(tǒng)的大數(shù)據(jù)+微服務(wù)的轉(zhuǎn)型過程 1.該風(fēng)控系統(tǒng)的背景介紹 2.互聯(lián)網(wǎng)轉(zhuǎn)型帶來的機(jī)遇與挑戰(zhàn) 3.后端大數(shù)據(jù)的轉(zhuǎn)型過程 4.前端微服務(wù)的轉(zhuǎn)型過程 5.構(gòu)建風(fēng)險(xiǎn)分析模型的AppStore平臺(tái) 探討:大數(shù)據(jù)如何與微服務(wù)相結(jié)合 |