新聞中心
新興技術(shù)的下一波浪潮正向我們涌來(lái),人工智能、可穿戴設(shè)備、物聯(lián)網(wǎng)及更多技術(shù)變得普及開(kāi)來(lái)。許多組織現(xiàn)面臨著管理這些整體式應(yīng)用程序這個(gè)難題。當(dāng)下,速度和靈活性必不可少。Netflix、Twitter、eBay和亞馬遜等大型互聯(lián)網(wǎng)公司采用的下一個(gè)架構(gòu)創(chuàng)新是微服務(wù)。據(jù)互聯(lián)網(wǎng)服務(wù)器供應(yīng)商N(yùn)GINX聲稱,68%的組織在使用或調(diào)查這種方法。

微服務(wù)架構(gòu)正在IT行業(yè)備受追捧,因?yàn)樗啾仍S多傳統(tǒng)架構(gòu)方法有諸多優(yōu)勢(shì)。比如在醫(yī)療保健領(lǐng)域,這種架構(gòu)對(duì)新的解決方案來(lái)說(shuō)大有希望,比如遠(yuǎn)程患者監(jiān)控、使用物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)的預(yù)測(cè)建模、醫(yī)療工作流程自動(dòng)化和面向精準(zhǔn)醫(yī)療的生物信息學(xué)分析等。隨著組織采用現(xiàn)代微服務(wù)架構(gòu),這六個(gè)因素可以幫助它們?nèi)〉贸晒?,同時(shí)補(bǔ)充現(xiàn)有的云和DevOps基礎(chǔ)設(shè)施。
微服務(wù)架構(gòu)如何補(bǔ)充云和DevOps?
微服務(wù)是一種軟件開(kāi)發(fā)和架構(gòu)方法,它將應(yīng)用程序構(gòu)建為一組松散耦合、自治且可獨(dú)立部署的服務(wù)。這些小型的業(yè)務(wù)驅(qū)動(dòng)服務(wù)有明確定義的通信接口,這使得應(yīng)用程序模塊化、更易于構(gòu)建和測(cè)試,并可以高效地獨(dú)立部署。
微服務(wù)方法與云和DevOps相輔相成。多年來(lái),云計(jì)算已趨于成熟,可以提供高效的基礎(chǔ)設(shè)施解決方案,用于快速構(gòu)建原型、支持龐大的數(shù)據(jù)處理和生產(chǎn)需求,并帶來(lái)比內(nèi)部IT部門更高的服務(wù)水平。與此同時(shí),DevOps有助于更快地交付優(yōu)質(zhì)軟件,同時(shí)彌補(bǔ)開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)營(yíng)團(tuán)隊(duì)之間的差距。
結(jié)合微服務(wù)架構(gòu)與成熟的DevOps實(shí)踐有助于分散的團(tuán)隊(duì)更快地創(chuàng)新、控制自己的技術(shù)堆棧和標(biāo)準(zhǔn)、管理性能指標(biāo)、管理開(kāi)發(fā)和發(fā)布周期,最終縮短產(chǎn)品上市時(shí)間。與此同時(shí),微服務(wù)可以通過(guò)將整體式應(yīng)用程序分解成微服務(wù)并部署到云平臺(tái)上,從而便于逐步遷移到云。通過(guò)這種方法,團(tuán)隊(duì)更容易模擬生產(chǎn)工作負(fù)載,確保軟件的可用性、可擴(kuò)展性和質(zhì)量,同時(shí)提高發(fā)布頻次。
微服務(wù)架構(gòu)設(shè)計(jì)方面的六個(gè)考量因素
下列六個(gè)考量因素有助于使組織確保成功,同時(shí)補(bǔ)充現(xiàn)有的云和DevOps基礎(chǔ)設(shè)施:
- 服務(wù)發(fā)現(xiàn):在復(fù)雜的分布式系統(tǒng)中,團(tuán)隊(duì)根據(jù)負(fù)載大小擴(kuò)展服務(wù)實(shí)例,這意味著服務(wù)實(shí)例的數(shù)量及其位置可能動(dòng)態(tài)變化。擁有適當(dāng)?shù)姆?wù)發(fā)現(xiàn)機(jī)制可確??蛻艨梢曰诜?wù)注冊(cè)中心與合適的服務(wù)進(jìn)行通信。
- 服務(wù)間通信:在微服務(wù)架構(gòu)中,服務(wù)以同步或異步方式進(jìn)行通信以完成事務(wù)。服務(wù)間通信機(jī)制協(xié)調(diào)這種通信。如果設(shè)計(jì)不力,服務(wù)間的過(guò)多通信會(huì)導(dǎo)致“繁瑣”的應(yīng)用程序和糟糕的性能。想進(jìn)行優(yōu)化,請(qǐng)使用這些經(jīng)過(guò)驗(yàn)證的設(shè)計(jì)模式:
▲Saga模式:由某個(gè)事件或消息觸發(fā)的一連串事務(wù)。
▲API網(wǎng)關(guān):借助API網(wǎng)關(guān),通過(guò)單個(gè)API調(diào)用來(lái)抽象處理針對(duì)多個(gè)API的調(diào)用。
▲命令查詢職責(zé)分離(CQRS):使用物化視圖將讀寫分開(kāi)來(lái),并通過(guò)訂閱事件來(lái)更新視圖。
▲事件溯源:存儲(chǔ)事件而不是狀態(tài);通過(guò)重放事件來(lái)獲得狀態(tài)。
▲服務(wù)網(wǎng)格:將服務(wù)間的網(wǎng)絡(luò)通信卸載到某個(gè)軟件組件,以確保彈性和服務(wù)發(fā)現(xiàn)等。
- 數(shù)據(jù)完整性:由于每個(gè)微服務(wù)都有自己的數(shù)據(jù)庫(kù),因此確保數(shù)據(jù)在涉及多個(gè)服務(wù)的事務(wù)之間具有一致性可能是個(gè)挑戰(zhàn)。上述模式(如事件溯源、CQRS和Saga)有助于實(shí)現(xiàn)數(shù)據(jù)一致性。
- 安全性:加密機(jī)制以及強(qiáng)大的身份驗(yàn)證和授權(quán)工具可以確保靜態(tài)數(shù)據(jù)和傳輸中數(shù)據(jù)的安全性。一些組織采用身份即服務(wù)和授權(quán)即服務(wù)解決方案。此外需要在API網(wǎng)關(guān)后面保護(hù)API,確保未經(jīng)授權(quán)的用戶無(wú)法使用令牌獲得訪問(wèn)權(quán)限。
- 監(jiān)控和運(yùn)行狀況檢查:隨著微服務(wù)架構(gòu)中服務(wù)數(shù)量越來(lái)越多,確定和排查問(wèn)題變得具有挑戰(zhàn)性。比如說(shuō),單單一個(gè)事務(wù)可能跨多個(gè)服務(wù)調(diào)用,因此很難確定性能瓶頸的確切原因。使用分布式事務(wù)跟蹤和運(yùn)行狀況檢查API監(jiān)控系統(tǒng)可確保應(yīng)用程序在高效運(yùn)行。借助合適的監(jiān)控和檢測(cè),團(tuán)隊(duì)可以為關(guān)鍵指標(biāo)創(chuàng)建可視化元素,收集歷史數(shù)據(jù)以了解性能趨勢(shì),并在問(wèn)題出現(xiàn)時(shí)收到警報(bào)。
- 質(zhì)量保證:微服務(wù)通過(guò)在服務(wù)之間傳遞消息來(lái)處理請(qǐng)求。隨著服務(wù)數(shù)量增加,自動(dòng)化測(cè)試對(duì)于確保所有交互和通信都經(jīng)過(guò)全面測(cè)試非常重要,包括單元測(cè)試、集成測(cè)試、組件測(cè)試和合約測(cè)試。此外,每個(gè)級(jí)別的全面測(cè)試確認(rèn)服務(wù)可以獨(dú)立于其他服務(wù)運(yùn)行或與其他服務(wù)一起運(yùn)行,以支持分布式事務(wù)。最后,測(cè)試表明整體架構(gòu)足夠靈活,可根據(jù)需要支持另外的數(shù)據(jù)源、框架或庫(kù)。
更快的創(chuàng)新是目標(biāo)
微服務(wù)架構(gòu)是當(dāng)今一個(gè)重要的IT趨勢(shì),這有充分的理由。與傳統(tǒng)的架構(gòu)方法相比,它有許多優(yōu)勢(shì),并且大有希望。雖然要克服諸多挑戰(zhàn),但如果企業(yè)組織擁有精心設(shè)計(jì)的方法、全面組織的分布式團(tuán)隊(duì)以及可靠的DevOps流程,可以借助現(xiàn)代微服務(wù)架構(gòu)更快地進(jìn)行創(chuàng)新,只需構(gòu)建新產(chǎn)品,并更新改造現(xiàn)有應(yīng)用程序。
網(wǎng)站題目:采用微服務(wù)架構(gòu)的六個(gè)考量因素
網(wǎng)頁(yè)路徑:http://m.fisionsoft.com.cn/article/cocijdd.html


咨詢
建站咨詢
