微服務架構幸運28出售理解及微服務架構局限性
1.開發環境超載
隨著應用程序及其數據庫的增長,代碼庫也在不斷擴展。隨著針對每個微服務的代碼擴展,它會使每個加載的應用程序的開發環境過載。這可能導致生產力的重大延遲。
- DevOps復雜性
單功能微服務的開發和部署並非易事。使用多種技術並創建API來集中系統是一項挑戰。這需要一個經驗豐富的DevOps團隊。采購這樣一個經驗豐富的DevOps團隊對於維護基於微服務的應用程序的復雜性至關重要。
3.增加資源和網絡使用
由於多個組件協同工作,因此在某種程度上彼此進行通信非常重要。此通信將導致網絡使用量增加。這需要高速可靠的網絡連接。此外,運行這些應用程序的費用也會增加。所有服務都單獨運行,增加了運營成本。
4.測試
測試應用程序可能具有挑戰性,因為有單獨的組件。與單片應用程序相比,微服務需要更長的時間進行測試,並且在出現任何錯誤時更加復雜。有時,由於測試最終會影響整個應用程序,可能會導致延遲。
5.安全
在Web應用程序方面,安全性至關重要。使用微服務,實現這一點很困難。當存在獨立模塊的集群時,每個模塊都需要遵守為整個系統定義的認證和授權規範。
除此之外,每個模塊可能與其他模塊通信,跟蹤數據流變得非常困難。需要其他措施,例如具有負載平衡的API網關,以確保行為一致。這些額外的步驟導致每個微服務的開銷。
6.應用程序的復雜性
由於微服務是獨立組件,因此每個微服務通常都有一個最適合其需求的技術堆棧。例如,機器學習模塊可能使用python堆棧,而計量服務可能使用Java堆棧,UI服務可能使用MEAN堆棧。這會導致復雜性,因為資源池和管理和構建新功能所需的技能將非常高。
7.高初始投資
微服務獨立運行,它們需要獨立的容器或資源來運行它們。每個項目可能有很多微服務一起工作,需要更高的投資來設置包括微服務,安全容器,負載平衡器,API網關等的所有集群。
微服務架構幸運28出售理解及微服務架構局限性