微服務不是銀彈,非必選項的10個原因
來源:熵減駭客
hi,我是熵減,見字如面。
微服務是一種軟體架構風格,其旨在透過將應用程式拆分為小型、獨立的服務,來增強應用程式的可伸縮性、可維護性和可測試性。
雖然微服務可以為軟體開發提供許多好處,但它們並不總是適用於所有情況的最佳選擇。
換句話說,微服務架構,也不是軟體工程的銀彈。
所以,技術團隊在考慮是否使用微服務架構時,有以下10個點,是需要慎重考慮的。
1增加了複雜性
世界上沒有免費的東西。實現微服務架構,需要有大量的基礎設施來配套的,譬如服務發現、負載均衡和服務間通訊等。這些機制和體系,會增加系統的複雜性,讓維護成本更高。
微服務可以解決許多問題,例如應用程式可伸縮性和可維護性,但它並不是一個單一的解決方案。它需要與其他技術和最佳實踐結合使用,例如DevOps、CI/CD和容器化。
2測試更困難的
使用微服務架構時,系統的測試工作會變的更為的複雜。除了每一個服務需要必須的單獨測試外,還需要與其所依賴的其他服務一起來測試,才能最終保障系統的質量。
3部署成本更高
微服務需要更多的開發、部署和測試工作,並且需要更多的伺服器資源。
對於中小型的應用程式和簡單系統,微服務架構可能過於複雜和昂貴,是不值得采用。
4運維成本更高
即是每一個服務都很簡單,但管理和支援一個服務,總是比管理100個服務要容易的多。
當使用微服務架構時,你就必須管理和監控多個服務,這可能會增加不少的運維資源的開銷。
在微服務架構下,開發人員仍然需要投入大量的工作,例如設計和實施服務,以及監控和故障排除。
5除錯更困難了
微服務架構最大一個挑戰就是:在分散式系統中,定位和除錯系統問題時,會異常地困難。
在一個巨大的分散式的微服務系統中,要定位和識別出問題的根本原因,其困難程度是不言而喻的。譬如,需要在多個系統中去獲取資訊,再加上覆雜的呼叫關係,要理清楚後,才能做資訊的整合和串聯等。
6系統時延會更高
微服務是透過網路相互通訊的,這可能會給你的系統帶來額外的時延。
所以,對於時延要求較高的場景,就需要慎重考慮微服務的呼叫層級關係和具體的程式碼實現方式,以滿足場景所需。
7難以理解的系統
當系統內多個服務獨立開發和執行時,我們就很難以掌握系統整體的執行狀況了。
系統之間是如何組合的,呼叫請求是如何流轉的,資料是如何傳遞的等。
都會讓理解成本增加不少,系統變得難以掌控,可觀測性降低,分險也就增加了。
8需要專職團隊
微服務並不是無代價的。
微服務架構的有效落地,需要一個具備分散式系統、網路和DevOps專業技能的團隊。
採用微服務架構需要大量的投資,例如培訓、開發、測試、部署和維護。
企業需要考慮這些成本,並權衡微服務架構的優點和缺點。
9安全的問題
微服務並不是無風險的,保護微服務架構比保護單體應用更具挑戰性。
採用微服務架構可能會引入新的風險,例如服務之間的通訊問題、服務部署和版本控制問題、以及依賴關係的複雜性。這些風險需要被認真評估,並且需要採取適當的措施來減輕這些風險。
10並不總是必要的
微服務並不是適用於所有團隊的。
採用微服務架構需要更高的技術能力和開發經驗。
對於一些中小型團隊或初創公司來說,可能沒有足夠的資源和技能來開發和維護微服務架構。
因此,需要根據團隊的技能和經驗,以及專案的規模和複雜度來評估,是否適合採用微服務架構。
微服務不是一個必選項,只是一個可選項而已。
11最後
儘管微服務架構在很多情況下可以提供一些優勢,但也需要根據具體情況進行評估和決策。
企業和技術團隊,需要考慮技術和業務需求,以及組織的能力和資源等多個方面,並綜合權衡微服務架構的優缺點,才能做出正確的決策。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024420/viewspace-2951194/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微服務不是軟體工程銀彈的10個原因微服務軟體工程
- 微服務是傳統企業電商解決方案的銀彈嗎?微服務
- 分散式微服務架構選項分散式微服務架構
- 使用微服務失敗的11個原因 - Shekhar Gulati微服務
- Node.js不是銀彈,但它仍然是顆子彈Node.js
- 你必須瞭解的微服務架構設計的10個要點!微服務架構
- 15個必知的Android開發者選項Android
- 企業選型CRM系統,這七個事項務必注意
- 有效的微服務:10 個最佳實踐微服務
- 微服務不是全部,只是特定領域的子集微服務
- docker基礎部署入門,微服務必備技術,月薪上萬不是夢Docker微服務
- 直播系統程式碼,點選選擇欄,彈出各個選項
- 微服務的重試與彈性設計微服務
- 5 種微服務閘道器,該選哪個?微服務
- DDD興起的原因以及與微服務的關係微服務
- 微服務應用視角解讀如何選擇 K8s 的彈性策略微服務K8S
- 非功能性約束之效能(1)-效能銀彈:快取快取
- 10個 ssh 簡單命令選項
- 10個寶藏級的微服務管理開源工具微服務開源工具
- Scrum不是一顆銀彈,有時可能會浪費大量時間 - RemoHJansenScrumREM
- 模組化不是採用微服務主要目的微服務
- TDengine在浙商銀行微服務監控中的實踐微服務
- IPv6,AppStore 稽核不是唯一選擇它的原因APP
- 微服務架構怎麼選?微服務架構
- 銀彈谷:SaaS在企業當中的應用並非一帆風順
- 點選連結a彈出一個確認框例項程式碼
- 微服務1-10微服務
- 微服務開發,這10個點你要知道微服務
- 中國遊戲出海成為必選項遊戲
- Spring Cloud之微服務之間相互呼叫、如何讓一個微服務呼叫另外一個微服務SpringCloud微服務
- 微服務下的閘道器如何選擇微服務
- 微服務下的註冊中心如何選擇微服務
- 權威架構師窮思苦索總結——必會的10個微服務架構設計要點!架構微服務
- 糾結了,微服務和單體你選擇哪一個?微服務
- 微服務選擇哪個訊息代理:RabbitMQ、Kafka和Redis? - Payoda微服務MQKafkaRedis
- SpringCloud微服務技術選型SpringGCCloud微服務
- Win10系統下將右鍵選單WinRAR選項合併成一個選項的方法Win10
- Win10系統下怎麼將右鍵選單中的WinRAR選項合成一個選項Win10