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

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


咨詢
建站咨詢
