微服務(wù)改造的定義與步驟_第1頁
微服務(wù)改造的定義與步驟_第2頁
微服務(wù)改造的定義與步驟_第3頁
微服務(wù)改造的定義與步驟_第4頁
微服務(wù)改造的定義與步驟_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

作為一種架構(gòu)模式,微服務(wù)將復(fù)雜龐大的業(yè)務(wù)系統(tǒng)切分為數(shù)十個乃至數(shù)百個小的服務(wù),每個服務(wù)負責(zé)實現(xiàn)一個獨立的業(yè)務(wù)邏輯。這些小服務(wù)易于被小型的軟件工程師團隊所理解和修改,并帶來了語言和框架選擇靈活性,縮短應(yīng)用開發(fā)上線時間,可根據(jù)不同的工作負載和資源要求對服務(wù)進行獨立縮擴容等優(yōu)勢。單體架構(gòu)跟微服務(wù)架構(gòu)區(qū)別微服務(wù)改造策略:微服務(wù)改造的過程其實就是將原有的單體架構(gòu)改造成微服務(wù)架構(gòu)的過程,微服務(wù)改造是一個漫長的過程,需要充分考慮遺留系統(tǒng)的情況,在改造的過程中原有的遺留系統(tǒng)跟改造后的微服務(wù)系統(tǒng)需要共存很長一段時間,基于不同的規(guī)模改造所需要的時間從幾個月到一兩年甚至數(shù)年的時間不等。目前微服務(wù)的改造的常見策略可以分為二種:絞殺模式:絞殺者策略是一種逐步剝離業(yè)務(wù)能力,用微服務(wù)逐步替代原有單體系統(tǒng)的策略。它對單體系統(tǒng)進行領(lǐng)域建模,根據(jù)領(lǐng)域邊界,在單體系統(tǒng)之外,將新功能和部分業(yè)務(wù)能力獨立出來,建設(shè)獨立的微服務(wù)。新微服務(wù)與單體系統(tǒng)保持松耦合關(guān)系,隨著時間的推移,大部分單體系統(tǒng)的功能將被獨立為微服務(wù),這樣就慢慢絞殺掉了原來的單體系統(tǒng)。絞殺者策略類似建筑拆遷,完成部分新建筑物后,然后拆除部分舊建筑物通俗的來講類似“從農(nóng)村包圍城市”。修繕模式:修繕者策略是一種維持原有系統(tǒng)整體能力不變,逐步優(yōu)化系統(tǒng)整體能力的策略。它是在現(xiàn)有系統(tǒng)的基礎(chǔ)上,剝離影響整體業(yè)務(wù)的部分功能,獨立為微服務(wù),比如高性能要求的功能,代碼質(zhì)量不高或者版本發(fā)布頻率不一致的功能等,通過這些功能的剝離,我們就可以兼顧整體和局部,解決系統(tǒng)整體不協(xié)調(diào)的問題。修繕者策略類似古建筑修復(fù),將存在問題的部分功能重建或者修復(fù)后,重新加入到原有的建筑中,保持建筑原貌和功能不變。一般人從外表感覺不到這個變化,但是建筑物質(zhì)量卻得到了很大的提升。微服務(wù)改造關(guān)鍵要素:微服務(wù)改造的過程有二個關(guān)鍵點:1.微服務(wù)設(shè)計規(guī)劃;2.遺留系統(tǒng)遷移規(guī)劃;微服務(wù)設(shè)計規(guī)劃:微服務(wù)設(shè)計規(guī)劃中從大到小的范圍又包含二個關(guān)鍵步驟:業(yè)務(wù)拆分、技術(shù)實現(xiàn);業(yè)務(wù)拆分主要是指針對原有的業(yè)務(wù)系統(tǒng)進行業(yè)務(wù)層的梳理,基于業(yè)務(wù)層面來看哪些功能應(yīng)該放到同一個服務(wù),哪些必須分開,從而實現(xiàn)龐大的單體系統(tǒng)的拆分,最終保證微服務(wù)與微服務(wù)之間的高內(nèi)聚、低耦合。目前常見的實現(xiàn)方式比如:基于事件風(fēng)暴的方式進行業(yè)務(wù)流程梳理。技術(shù)實現(xiàn)是指基于業(yè)務(wù)梳理的微服務(wù)拆分結(jié)果進行微服務(wù)開發(fā),其中就包含用何種開發(fā)語言、框架、中間件、開發(fā)模式等。遺留系統(tǒng)遷移規(guī)劃:遺留系統(tǒng)遷移規(guī)劃主要是指將企業(yè)遺留系統(tǒng)平穩(wěn)的向微服務(wù)過渡,其關(guān)鍵點是實現(xiàn)核心業(yè)務(wù)、高并發(fā)業(yè)務(wù)、低容錯業(yè)務(wù)從遺留系統(tǒng)無縫的遷移到微服務(wù)架構(gòu),此部分內(nèi)容一般都會先選取試點項目,基于試點項目進行實踐,從而總結(jié)出一套適用于企業(yè)自身的最佳流程或者實踐,然后再大規(guī)模的組織內(nèi)推廣,從而真正實現(xiàn)遺留系統(tǒng)的微服務(wù)化改造。微服務(wù)改造實施步驟:如何進行微服務(wù)改造,微服務(wù)改造具體步驟是怎么樣的?我們基于部分項目的經(jīng)驗總結(jié)如下,當(dāng)然并不一定適應(yīng)于所有的業(yè)務(wù)場景,正如前面所說每個企業(yè)的業(yè)務(wù)場景、各種環(huán)境因素各不一樣,所以還是要具體問題具體分析,微服務(wù)改造實施計劃如下:選取業(yè)務(wù)領(lǐng)域:微服務(wù)改造不是一蹴而就的,一般會先選取部分業(yè)務(wù)場景作為改造試點從而總結(jié)成功的流程和最佳實踐,至于業(yè)務(wù)場景的選擇說法各異,有的推薦從邊緣業(yè)務(wù)開發(fā),這樣的風(fēng)險較低,但是也有可能看不到明顯效果從而導(dǎo)致整體改造過程停滯不前,有的推薦從核心業(yè)務(wù)開始,這樣效果最明顯但是風(fēng)險相對較高,各有優(yōu)缺點,看改造決心和當(dāng)前系統(tǒng)“痛”的程度,也可以參照“絞殺”、“修繕”。等模式進行業(yè)務(wù)領(lǐng)域選擇。建立統(tǒng)一目標(biāo)、愿景:基于公司的整體目標(biāo),針對業(yè)務(wù)領(lǐng)域建立統(tǒng)一目標(biāo)、愿景,讓大家都能清晰知道,所有人朝著同一個目標(biāo)進行。遺留系統(tǒng)分析(業(yè)務(wù)拆分):微服務(wù)規(guī)劃階段前,團隊需要了解業(yè)務(wù)知識,改造遺留系統(tǒng)前,團隊首先要學(xué)習(xí)遺留系統(tǒng)知識,為遷移做準(zhǔn)備。針對業(yè)務(wù)領(lǐng)域進行整體的業(yè)務(wù)流程梳理,結(jié)合業(yè)內(nèi)領(lǐng)域驅(qū)動設(shè)計方式,以事件風(fēng)暴的實踐進行,常見的步驟如下:1.識別事件,2.識別命令,3.尋找聚合,4.劃分子域和界限上下文,5.微服務(wù)劃分制定遷移策略和路徑:綜合管理、業(yè)務(wù)、技術(shù)等因素,為遺留系統(tǒng)微服務(wù)架構(gòu)升級制定遷移策略和實施路徑。技術(shù)選型和基礎(chǔ)設(shè)施建設(shè):基于公司的總體目標(biāo)架構(gòu),根據(jù)系統(tǒng)分析結(jié)果、遷移策略和路徑以及遺留系統(tǒng)現(xiàn)狀,選擇微服務(wù)基礎(chǔ)設(shè)施和技術(shù)組件,如:SpringCloud、ServiceMesh、Docker、K8s 等等。團隊規(guī)劃、賦能:進行微服務(wù)開發(fā)團隊規(guī)劃,結(jié)合康威定律,根據(jù)服務(wù)、架構(gòu)的方式組建相應(yīng)的團隊,各微服務(wù)開發(fā)團隊是自組織、自管理的團隊。同時針對團隊成員進行新的技術(shù)架構(gòu)、框架、開發(fā)方式方法進行賦能,確保后續(xù)步驟的順利進行。迭代交付:微服務(wù)開發(fā)過程通常結(jié)合敏捷開發(fā)、DevOps等前沿理念進行,通過敏捷開發(fā)、DevOps工具鏈加速整個微服務(wù)的開發(fā)過程,保證開發(fā)質(zhì)量??偨Y(jié)項目經(jīng)驗,沉淀最佳流程和實踐:基于項目實施過程總結(jié)沉淀出適合企業(yè)自身的最佳改造流程、規(guī)范、最佳實踐等,這一階段是不斷循環(huán)完善的過程。組織內(nèi)推廣微服務(wù)改造方式方法實踐案例:該項目是某全球領(lǐng)先的大型營養(yǎng)和健康管理公司,其現(xiàn)有業(yè)務(wù)受到傳統(tǒng)技術(shù)架構(gòu)限制,存在諸多問題,之前系統(tǒng)是一個龐大的單體應(yīng)用,對接第三方系統(tǒng)較多,開發(fā)語言各不一樣,經(jīng)過了多年變化,IT團隊為了滿足之前大型集團的業(yè)務(wù)需要已經(jīng)舉步維艱,響應(yīng)跟不上業(yè)務(wù)的變化。我們基于微服務(wù)、容器、DevOps等云原生全棧技術(shù)幫助客戶建立了技術(shù)中臺,基于我們的微服務(wù)平臺實現(xiàn)服務(wù)注冊發(fā)現(xiàn)、服務(wù)限流、服務(wù)路由、服務(wù)鑒權(quán)、服務(wù)熔斷等一系列服務(wù)治理能力的同時,為企業(yè)業(yè)務(wù)應(yīng)用也提供全生命周期的管理,包括容器部署、虛擬機部署等用戶自定義IaaS層資源的能力;除此之外,在服務(wù)框架層面我們既兼容了SpringCloud和Dubbo兩種常見的微服務(wù)框架,也兼容Istio的ServiceMesh能力,用戶只需要在開發(fā)時引入相應(yīng)的SDK或者Jar包,即可開發(fā)自己的業(yè)務(wù)應(yīng)用?;诩夹g(shù)中臺幫助客戶建立了業(yè)務(wù)中臺,從而實現(xiàn)技術(shù)與業(yè)務(wù)的雙向聯(lián)動,整體架構(gòu)如下圖:

firointcndl

Apipli^tiCih-中臺業(yè)務(wù)架構(gòu)Security安全叫*肝村岫Middle-Pla-tfomn中M岫鈿firointcndl

Apipli^tiCih-中臺業(yè)務(wù)架構(gòu)Security安全叫*肝村岫Middle-Pla-tfomn中M岫鈿我們采用DDD方法、事件風(fēng)暴實踐對該企業(yè)業(yè)務(wù)進行重新梳理,采用微服務(wù)架構(gòu)按業(yè)務(wù)領(lǐng)域進行劃分,建設(shè)全新業(yè)務(wù)系統(tǒng),業(yè)務(wù)遷移采用微服務(wù)的絞殺者模式逐步對頻繁變化的業(yè)務(wù)優(yōu)先絞殺遷移到新平臺,逐漸遷移,直到全到功能遷移到新平臺。開發(fā)過程基于敏捷開發(fā)的理念進行快速迭代,同時通過DevOps工具鏈實現(xiàn)快速開發(fā)、簡化微服務(wù)運維工作量。改造前該企業(yè)原有庫存業(yè)務(wù)各客戶端沒有統(tǒng)一服務(wù)化管理,APP端、小程序端各自維護,導(dǎo)致庫存頻繁出現(xiàn)超賣、分配不均等業(yè)務(wù)問題,第三方系統(tǒng)對接時不得不對接多套已有系統(tǒng)等技術(shù)問題。我們幫助客戶對其業(yè)務(wù)重新進行了梳理,重新設(shè)計了各業(yè)務(wù)微服務(wù),統(tǒng)一了庫存微服務(wù)化管理,打造了庫存中臺,APP端、小程序端共享庫存中臺微服務(wù),入口收斂、業(yè)務(wù)實現(xiàn)了統(tǒng)一。最終有效防止了庫存超賣、動態(tài)分配、全局共享等長期困擾客戶的業(yè)務(wù)痛點。庫存業(yè)務(wù)架構(gòu)圖庫存業(yè)務(wù)架構(gòu)圖關(guān)于我們:安暢網(wǎng)絡(luò)是中國市場專業(yè)的云托管服務(wù)商(CloudMSP),在數(shù)據(jù)中心和云計算領(lǐng)域有近十年的專業(yè)交付和管理經(jīng)驗,目前正服務(wù)于2000多家企業(yè)級客戶并與全球多家超大

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論