開展基于微服務(wù)架構(gòu)進(jìn)行系統(tǒng)開發(fā)的設(shè)想_第1頁
開展基于微服務(wù)架構(gòu)進(jìn)行系統(tǒng)開發(fā)的設(shè)想_第2頁
開展基于微服務(wù)架構(gòu)進(jìn)行系統(tǒng)開發(fā)的設(shè)想_第3頁
開展基于微服務(wù)架構(gòu)進(jìn)行系統(tǒng)開發(fā)的設(shè)想_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、開展基于微服務(wù)架構(gòu)進(jìn)行系統(tǒng)開發(fā)的設(shè)想一、對(duì)微服務(wù)架構(gòu)的理解1、微服務(wù)架構(gòu)的概念從Martin Fowler提出的微服務(wù)的概念來看,大概可以從以下幾點(diǎn)標(biāo)準(zhǔn)來理解:?分布式服務(wù)組成的系統(tǒng)?按照業(yè)務(wù)而不是技術(shù)來劃分提供的功能?做有生命的產(chǎn)品而不是項(xiàng)目?強(qiáng)調(diào)服務(wù)個(gè)體,弱化互相之間的通信?自動(dòng)化運(yùn)維(DevOp9?容錯(cuò)?快速演化總的來說,微服務(wù)的目的是有效的拆分應(yīng)用,實(shí)現(xiàn)敏捷開發(fā)和部 署。2、微服務(wù)的優(yōu)勢(shì)和不足微服務(wù)的思路是把單一的巨大應(yīng)用拆分為眾多松散耦合的微小服務(wù),其通常是按照業(yè)務(wù)功能來分解的,每一個(gè)服務(wù)雖然微小但卻實(shí) 現(xiàn)相對(duì)完整的功能,使用私有的數(shù)據(jù)庫,可以單獨(dú)構(gòu)建和部署,某個(gè) 服務(wù)的修改和部署不

2、會(huì)影響其他正在運(yùn)行的服務(wù),提供語言無關(guān)的API接口供其他模塊調(diào)用。這種風(fēng)格與傳統(tǒng)的面向服務(wù)架構(gòu)SOA比較相似,經(jīng)過多年的發(fā)展,SOAP Web Services ESB等技術(shù)出現(xiàn)使 SOA 得以實(shí)現(xiàn),眾多廠商也制定了相關(guān)的標(biāo)準(zhǔn) .兩者最重要的區(qū)別在于 SOA使用復(fù)雜的ESB集成為單一應(yīng)用,而微服務(wù)是輕量級(jí)的,不使 用復(fù)雜的ESB松散耦合,可以獨(dú)立部署。微服務(wù)架構(gòu)在規(guī)模較大的應(yīng)用中具有明顯優(yōu)勢(shì)。 首先體現(xiàn)在獨(dú)立 性方面,服務(wù)是松散耦合的,有明確的系統(tǒng)邊界,各開發(fā)人員可以并 行開發(fā)和部署,避免了牽一發(fā)而動(dòng)全身,提高了效率。其次是技術(shù)選 擇靈活,可針對(duì)具體業(yè)務(wù)特性和團(tuán)隊(duì)技能為一個(gè)服務(wù)選擇最合適的語

3、言、框架和數(shù)據(jù)庫,各服務(wù)使用不同的技術(shù),技術(shù)轉(zhuǎn)型的成本也大為 降低。再次是系統(tǒng)伸縮更自由,可針對(duì)某些服務(wù)單獨(dú)進(jìn)行伸縮,實(shí)現(xiàn) 系統(tǒng)三維度伸縮。最后是服務(wù)可獨(dú)立部署,借助自動(dòng)化構(gòu)建和部署工 具,為DevOps的實(shí)施提供更好的支持。當(dāng)然,微服務(wù)的優(yōu)勢(shì)也是有代價(jià)的。第一顯而易見的是性能問題, 微服務(wù)應(yīng)用中每個(gè)服務(wù)運(yùn)行在獨(dú)立進(jìn)程中, 服務(wù)間的調(diào)用需要通過網(wǎng) 絡(luò)傳輸,當(dāng)眾多服務(wù)需要相互調(diào)用時(shí),就要考慮網(wǎng)絡(luò)延遲對(duì)系統(tǒng)性能 的影響,一般來講通常的應(yīng)用(包含若干個(gè)微服務(wù)),系統(tǒng)響應(yīng)時(shí)間 差距不遠(yuǎn),但當(dāng)應(yīng)用包含成百上千的服務(wù)時(shí), 遠(yuǎn)程調(diào)用的性能損耗是 一個(gè)要解決的關(guān)鍵問題。第二,微服務(wù)本質(zhì)上就是一個(gè)分布式應(yīng)用,

4、分布式系統(tǒng)固有的可靠性等問題隨著微服務(wù)數(shù)量的增加變得越來越 突出。第三個(gè)也屬于分布式系統(tǒng)的問題,如何保證數(shù)據(jù)一致性,微服 務(wù)使用非集中式的數(shù)據(jù)管理,要解決數(shù)據(jù)一致性問題比起單體式應(yīng)用 要困難得多。故而在運(yùn)用微服務(wù)架構(gòu)的實(shí)踐中,主要面臨的就是服務(wù)間通信,服務(wù)發(fā)現(xiàn)和服務(wù)部署3個(gè)關(guān)鍵問題二、項(xiàng)目開發(fā)實(shí)施的現(xiàn)狀公司目前的產(chǎn)品線比較豐富,但每個(gè)業(yè)務(wù)系統(tǒng)相對(duì)來說比較獨(dú) 立,對(duì)產(chǎn)品的規(guī)范開發(fā)、統(tǒng)一管理稍顯不足,從而導(dǎo)致項(xiàng)目實(shí)施 的周期較長,實(shí)施過程中需要解決的問題也較多,人力資源的成 本不能較好的控制。1 .目前系統(tǒng)實(shí)施的模式:工程師進(jìn)場(chǎng)調(diào)研一分析業(yè)務(wù)功能的差異部 分,進(jìn)行記錄和確認(rèn),編寫調(diào)研/需求報(bào)告一組

5、織人員進(jìn)行二次開 發(fā)一與用戶進(jìn)行系統(tǒng)功能確認(rèn)一進(jìn)行原始數(shù)據(jù)的初始化,編寫操 作手冊(cè),組織培訓(xùn)與推廣試用一驗(yàn)收2 .定制化開發(fā)與服務(wù)是公司項(xiàng)目實(shí)施的最大特點(diǎn),每個(gè)業(yè)務(wù)系統(tǒng)大 都是在公司原有產(chǎn)品的基礎(chǔ)上,由項(xiàng)目組成員按照學(xué)校的各項(xiàng)業(yè) 務(wù)規(guī)則進(jìn)行定制化開發(fā)與設(shè)計(jì)。這樣做的好處是開發(fā)出來的系統(tǒng) 能完成貼合用戶單位的實(shí)際需求,能最大限度地保證業(yè)務(wù)在后期 能較好的得到推廣與應(yīng)用,不足的地方則在于公司的產(chǎn)品因?yàn)椴?同學(xué)校間管理規(guī)則與制度的不一致,使得實(shí)現(xiàn)的功能不盡相同。3 .各個(gè)項(xiàng)目現(xiàn)場(chǎng)實(shí)現(xiàn)的業(yè)務(wù)功能、技術(shù)成果無法實(shí)現(xiàn)高效地溝通和 分享,項(xiàng)目的可移植性、可復(fù)用性不高,而各個(gè)學(xué)校的管理模式 個(gè)性化較強(qiáng),各個(gè)業(yè)

6、務(wù)系統(tǒng)管理范圍又比較廣,從而導(dǎo)致每個(gè)項(xiàng) 目類似業(yè)務(wù)功能無法實(shí)現(xiàn)高效率的整合與實(shí)施,降低了項(xiàng)目實(shí)施 效率。4 .目前公司缺乏一個(gè)比較成熟、完善、高效的的數(shù)據(jù)中心,各類業(yè) 務(wù)數(shù)據(jù)的互連互通也沒有形成具有特色的產(chǎn)品化體系,業(yè)務(wù)系統(tǒng) 在運(yùn)行的過程中有較大部分的時(shí)間和資源開銷在數(shù)據(jù)的頻繁交互 上。三、下一步開展基于微服務(wù)架構(gòu)進(jìn)行系統(tǒng)開發(fā)的設(shè)想基于對(duì)微服務(wù)架構(gòu)的理解,及公司目前在項(xiàng)目開發(fā)、實(shí)施的現(xiàn)狀, 公司可以從以下幾個(gè)方面開始嘗試,將現(xiàn)有開發(fā)模式逐步向微服務(wù)架 構(gòu)模式轉(zhuǎn)變:1、對(duì)公司現(xiàn)有產(chǎn)品、系統(tǒng)進(jìn)行分析、評(píng)估,盡快梳理出各個(gè)業(yè) 務(wù)模塊的標(biāo)準(zhǔn)服務(wù)流程。在梳理的過程中,既可以對(duì)公司現(xiàn)有產(chǎn)品、 系統(tǒng)進(jìn)行必要

7、的調(diào)整與規(guī)范,又能將每一個(gè)業(yè)務(wù)模塊中最小服務(wù)單元 整理出來。2、為了在業(yè)務(wù)架構(gòu)變更的過程中不影響現(xiàn)有系統(tǒng)的開發(fā)與實(shí)施, 并保證系統(tǒng)架構(gòu)的可回溯性,當(dāng)有新的業(yè)務(wù)需求過來時(shí),如果可以獨(dú) 立開發(fā)為一個(gè)服務(wù),就單獨(dú)開發(fā),然后為老服務(wù)和新服務(wù)直接編寫膠 水代碼(Glue Code)這個(gè)過程不容易,但這是分解原有業(yè)務(wù)服 務(wù)必要的第一步。3、詳細(xì)分類識(shí)別單體型應(yīng)用中的可以分離出來當(dāng)做單獨(dú)服務(wù)的 業(yè)務(wù)模塊。擬分離出來的業(yè)務(wù)模塊可從具有如下特點(diǎn)的模塊中考慮: 兩個(gè)模塊對(duì)資源的需求是沖突的(一個(gè)是 CPU密集型、一個(gè)是IO密 集型);授權(quán)鑒定層也適合單獨(dú)分離出一個(gè)服務(wù)。每分離出一個(gè)服務(wù), 就需要編寫對(duì)應(yīng)的膠水代碼來與剩下的服務(wù)通信,這樣,在逐漸演

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論