自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微服務(wù)激增:太多的微服務(wù)會(huì)造成不必要的負(fù)擔(dān)

譯文 精選
開發(fā) 前端
本文探討與過度創(chuàng)建微服務(wù)相關(guān)的陷阱,了解其原因、影響和潛在的緩解策略。

譯者 | 李睿

審校 | 重樓

微服務(wù)架構(gòu)作為小型、獨(dú)立、松散耦合的服務(wù)套件,促進(jìn)了應(yīng)用程序的開發(fā)。由于其眾多優(yōu)點(diǎn)(例如可擴(kuò)展性、可靠性、更快的開發(fā)周期、更容易維護(hù)單個(gè)服務(wù)等),在軟件行業(yè)中獲得了廣泛的關(guān)注,很多組織正在按照微服務(wù)架構(gòu)構(gòu)建應(yīng)用程序。然而,微服務(wù)也面臨一些陷阱。

在工作中處理用例時(shí),可以觀察到微服務(wù)架構(gòu)的另一面,即微服務(wù)的激增。本文將詳細(xì)介紹與過度創(chuàng)建微服務(wù)(微服務(wù)激增)相關(guān)的陷阱,并提供有關(guān)其原因、影響和潛在緩解策略的見解。

什么是微服務(wù)激增?

微服務(wù)激增指應(yīng)用程序框架/生態(tài)系統(tǒng)中微服務(wù)數(shù)量的不受控制、不受監(jiān)管,以及在某種程度上不受歡迎的增長(zhǎng)。這通常是由于缺乏架構(gòu)計(jì)劃和治理、架構(gòu)監(jiān)督、服務(wù)定義和邊界不明確,以及組織邊界等一些非技術(shù)原因造成的。微服務(wù)激增會(huì)導(dǎo)致架構(gòu)復(fù)雜性增加、效率和性能下降、運(yùn)營(yíng)和維護(hù)挑戰(zhàn)、功能重復(fù)以及服務(wù)調(diào)用迷宮,進(jìn)而導(dǎo)致性能進(jìn)一步下降和可能對(duì)客戶產(chǎn)生負(fù)面影響。以下討論其中的一些陷阱及其可能的解決方法。

常見的陷阱

1.架構(gòu)復(fù)雜性增加

隨著生態(tài)系統(tǒng)中微服務(wù)數(shù)量的增加,服務(wù)生態(tài)系統(tǒng)(及其架構(gòu))也會(huì)變得越來越復(fù)雜。這將給整個(gè)生態(tài)系統(tǒng)的設(shè)計(jì)、開發(fā)、部署、功能發(fā)布和維護(hù)方面帶來進(jìn)一步復(fù)雜性和挑戰(zhàn)。

影響

(1)服務(wù)可能變得過于依賴其他服務(wù)或與其他服務(wù)過于耦合,從而在服務(wù)中人為地制造了不必要的架構(gòu)分隔,這導(dǎo)致開發(fā)者難以真正理解系統(tǒng)架構(gòu)并對(duì)其進(jìn)行任何更改。

(2)隨著系統(tǒng)中活動(dòng)部件(架構(gòu)中的服務(wù))的增加,維護(hù)系統(tǒng)的操作負(fù)擔(dān)也在增加。每個(gè)微服務(wù)都需要自己的基礎(chǔ)設(shè)施、指標(biāo)和警報(bào)的維護(hù)和管理,從而給值班人員和團(tuán)隊(duì)增加了運(yùn)營(yíng)負(fù)擔(dān)。

潛在的緩解策略

(1)明確服務(wù)的清晰定義和邊界。確保它們具有內(nèi)聚性和功能限制。記住,不需要為每一個(gè)新的映射、每一個(gè)新配置或每一個(gè)系統(tǒng)將擁有的新實(shí)體構(gòu)建一個(gè)新的服務(wù)。

(2)定期審查和審核架構(gòu),棄用不需要的服務(wù)。折疊或合并重復(fù)的服務(wù)以簡(jiǎn)化架構(gòu)。

2.功能發(fā)布的復(fù)雜性增加

由于微服務(wù)激增增加了更多的活動(dòng)部件(也稱為服務(wù)),因此功能發(fā)布可能需要對(duì)相對(duì)較多的服務(wù)進(jìn)行更改。這使功能發(fā)布過程變得復(fù)雜,因?yàn)楣δ苄枰诙鄠€(gè)服務(wù)中進(jìn)行部署。這增加了功能發(fā)布過程中失敗的風(fēng)險(xiǎn),因?yàn)樵谝粋€(gè)服務(wù)中部署失敗可能會(huì)破壞整個(gè)功能發(fā)布過程,并可能導(dǎo)致其他影響(數(shù)據(jù)完整性、系統(tǒng)完整性等)。

影響

(1)增加了跨服務(wù)協(xié)調(diào)部署所需的復(fù)雜性和工作量,從而增加了操作開銷。

(2)復(fù)雜的回滾過程,特別是在服務(wù)相互依賴的情況下,導(dǎo)致操作開銷進(jìn)一步增加。

(3)較長(zhǎng)的發(fā)布計(jì)劃和回滾計(jì)劃可能導(dǎo)致系統(tǒng)處于過渡狀態(tài)的時(shí)間更長(zhǎng),從而導(dǎo)致行為不一致,進(jìn)而導(dǎo)致客戶體驗(yàn)不一致。

潛在的緩解策略

(1)在所有服務(wù)管道中遵循CI/CD原則,以自動(dòng)化部署過程,并在管道之間安全地部署更改,確保發(fā)布的一致性和可靠性。

(2)當(dāng)一個(gè)功能發(fā)布涉及多個(gè)服務(wù)時(shí),使用功能標(biāo)志將功能的啟動(dòng)與部署解耦,并在其中涉及的服務(wù)中干凈地控制新功能的啟動(dòng)。

3.性能下降

微服務(wù)激增可能會(huì)導(dǎo)致整個(gè)系統(tǒng)的性能下降,這主要是因?yàn)檎?qǐng)求需要經(jīng)過多個(gè)躍點(diǎn),從而導(dǎo)致額外的網(wǎng)絡(luò)延遲。

影響

(1)第一個(gè)影響是服務(wù)客戶請(qǐng)求的延遲增加,主要是因?yàn)檎?qǐng)求需要在多個(gè)系統(tǒng)之間進(jìn)行交互。

(2)一個(gè)存在資源競(jìng)爭(zhēng)或?qū)崿F(xiàn)(或基礎(chǔ)設(shè)施)未優(yōu)化的服務(wù)可能會(huì)影響整個(gè)服務(wù)生態(tài)系統(tǒng)。

(3)最后,考慮到維護(hù)系統(tǒng)的成本,這可能意味著更多的基礎(chǔ)設(shè)施成本和相對(duì)較少的性能收益。

潛在的緩解策略

(1)實(shí)現(xiàn)服務(wù)網(wǎng)格以優(yōu)化服務(wù)之間的通信并減少延遲。然而,這給架構(gòu)增加了另一個(gè)組件,并使其更加復(fù)雜。

(2)在必要時(shí)進(jìn)行緩存,以減少網(wǎng)絡(luò)調(diào)用帶來的開銷和延遲。

(3)定期對(duì)服務(wù)進(jìn)行負(fù)載測(cè)試,優(yōu)化服務(wù)瓶頸。

4.重復(fù)

隨著新服務(wù)的創(chuàng)建,重復(fù)和冗余的特性和代碼的風(fēng)險(xiǎn)也隨之增加,從而導(dǎo)致資源的浪費(fèi)。

影響

(1)重復(fù)的服務(wù)導(dǎo)致更高的維護(hù)成本,從而導(dǎo)致系統(tǒng)效率低下。

(2)服務(wù)的客戶可能會(huì)對(duì)使用哪個(gè)服務(wù)感到困惑,從而導(dǎo)致系統(tǒng)進(jìn)一步的低效率和錯(cuò)誤。

潛在的緩解策略

(1)在組織內(nèi)提倡重用文化。只要可能,鼓勵(lì)團(tuán)隊(duì)重用或擴(kuò)展現(xiàn)有服務(wù),而不是創(chuàng)建新服務(wù)。

(2)維護(hù)一個(gè)服務(wù)目錄,詳細(xì)說明每個(gè)服務(wù)的清晰定義、責(zé)任和支持的功能。在團(tuán)隊(duì)內(nèi)部定期審查和審核。

5.測(cè)試復(fù)雜性增加

隨著微服務(wù)數(shù)量的增長(zhǎng),功能端到端測(cè)試的復(fù)雜性也在增加。隨著系統(tǒng)中微服務(wù)的增加,維護(hù)數(shù)據(jù)和系統(tǒng)完整性變得越來越復(fù)雜。

影響

(1)跨多個(gè)服務(wù)協(xié)調(diào)和執(zhí)行測(cè)試用例可能成為后勤上的噩夢(mèng),從而導(dǎo)致測(cè)試不完整,從而導(dǎo)致未檢測(cè)到的問題。

(2)測(cè)試單個(gè)服務(wù)需要付出更多的努力,因?yàn)樗枰獜?fù)雜的模擬設(shè)置,這可能無法準(zhǔn)確地表示實(shí)際場(chǎng)景。

(3)在整個(gè)服務(wù)生態(tài)系統(tǒng)的端到端測(cè)試中需要付出更多的努力,因此需要更高的投資和成本來安全推出新功能。

潛在的緩解策略

(1)實(shí)現(xiàn)自動(dòng)化測(cè)試框架,它可以模擬多個(gè)服務(wù)之間的復(fù)雜交互。

(2)進(jìn)行分階段測(cè)試,首先測(cè)試單個(gè)服務(wù),然后根據(jù)所涉及服務(wù)的接口對(duì)整個(gè)生態(tài)系統(tǒng)進(jìn)行端到端測(cè)試。

6.機(jī)會(huì)成本增加和資源利用不佳

隨著微服務(wù)數(shù)量的增長(zhǎng),維護(hù)服務(wù)的成本、開發(fā)新功能的成本以及這些服務(wù)的基礎(chǔ)設(shè)施成本也在增加。它還增加了機(jī)會(huì)成本,因?yàn)橛糜诰S護(hù)這些服務(wù)或在這些服務(wù)之上進(jìn)行構(gòu)建的資源可以用于解決其他問題。

影響

(1)更高的開發(fā)、維護(hù)和基礎(chǔ)設(shè)施成本。

(2)更高的機(jī)會(huì)成本。

(3)浪費(fèi)資源,因?yàn)閳F(tuán)隊(duì)一直在維護(hù)現(xiàn)有的服務(wù),而不是在解決其他問題上投入資源。

潛在的緩解策略

(1)提倡重用或擴(kuò)展的文化,只在必要時(shí)構(gòu)建新服務(wù)。

(2)定期檢查端到端架構(gòu),并進(jìn)行實(shí)驗(yàn)以發(fā)現(xiàn)瓶頸。合并或棄用服務(wù)以簡(jiǎn)化架構(gòu),從而提高資源利用率。

結(jié)論

微服務(wù)激增是真實(shí)存在的,并帶來了巨大的挑戰(zhàn),可能會(huì)破壞微服務(wù)架構(gòu)的好處,從而導(dǎo)致復(fù)雜性的增加、性能的下降、資源利用率欠佳,以及錯(cuò)失解決其他問題的機(jī)會(huì)。通過認(rèn)識(shí)到這些陷阱并實(shí)現(xiàn)戰(zhàn)略性和有效的緩解措施,組織的團(tuán)隊(duì)可以應(yīng)對(duì)微服務(wù)激增的復(fù)雜性,從而確保他們利用這種架構(gòu)模式的真正好處。

原文標(biāo)題:Microservice Proliferation: Too Many Microservices,作者:Sumit Kumar

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2018-08-24 11:52:15

成本公共云云服務(wù)

2011-08-10 11:12:03

2011-08-18 09:46:01

2021-02-10 15:54:48

Windows 10Windows微軟

2009-10-22 09:25:54

Linux系統(tǒng)服務(wù)操作系統(tǒng)

2020-07-10 15:03:08

緩存架構(gòu)計(jì)算

2011-06-07 09:35:06

2011-06-07 09:34:40

2011-06-07 09:14:59

2023-05-04 07:06:25

微軟Windows

2024-01-05 07:41:08

Go語言語句

2019-09-10 11:34:23

軟件技術(shù)數(shù)據(jù)庫(kù)

2024-07-02 14:23:12

2020-12-18 10:01:11

GitHub開源Cookies

2024-01-10 14:40:56

顆粒度開發(fā)微服務(wù)

2010-05-21 14:09:41

2015-11-25 13:37:52

磁盤空間LinuxUbuntu

2011-08-18 09:51:21

2024-07-02 10:58:53

2021-12-29 08:30:48

微服務(wù)架構(gòu)開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)