大多數公司不需要Netflix/Uber風格的微服務? - copyconstruct
微服務很難,構建可靠且可測試的微服務比大多數人認為的要難得多,有效地“測試”微服務需要大量的工具和遠見。-許多(或大多數)公司組織都不需要Netflix / Uber風格的微服務。
宏服務Macroservices?
- -並非整體/單體monolith
- -有不超過20個開發人員/ 3個團隊從事該服務(5個披薩規則?)
- -可能需要或不需要Monorepo。服務/儲存庫越少,依賴關係管理就變得容易得多(儘管仍然很簡單)
- -更好的可觀察性,除錯
網友討論:
去年,我們就Micro與Macro進行了廣泛的討論。儘管“千篇一律”的方法行不通,但關鍵是要了解並預見什麼對業務至關重要。
需要考慮的幾件事:
- -垂直與水平縮放
- -技術債務的嚴重程度
- -多少服務
- -API架構/基礎設施/效能
- -服務的使用者/客戶使用情況
更大且可擴充套件(宏)的服務比小型和複雜的服務(微型)更好。
我認為人們仍糾結於部署模型的關注點分離和解耦。用micro / macro字首的服務也無濟於事。我們需要考慮有界的上下文,而不是大小。
此外,透過網路進行越來越多的分散式分發意味著您要冒資料完整性的風險。似乎範例已在轉向事件溯源,事件溯源eventsourcing建立在資料庫如何處理資料完整性的基礎上。
我同意。我還注意到,當人們談論ms時,他們首先想到的是可伸縮性。但是,我傾向於將ms視為擴充套件團隊而不是系統的一種方法。例如,我可以提到兩個披薩亞馬遜的規則。
大多數認為自己需要微服務的人都希望兩件事中的一項:
- 能夠輕鬆地水平擴充套件
- 圍繞功能邊界分離開發團隊。
這些都不需要微服務解決方案。是那些做起微服務很酷的開發者很危險。
微服務並不難,只需遵循12個要素,我們就可以完成並部署到dev,qa和prod docker和k8s。測試就可進行。
建議:當一個團隊維護許多獨立服務時,這是有問題的。當許多獨立團隊維護一項服務時,那也是錯誤的。因此,當這兩中情況(不可避免地)成為現實時,需要懷疑:我們正確地劃分了我們的服務嗎?
微服務並非難事,分散式應用程式並非難事。我要說的是,如果您需要跟蹤,那麼您將遭受分散式系統工程的困擾,而不是微服務的痛苦。
我的想法:整體→SOA→微服務。根據域和最佳化需求進行分解,並使事情變得更細化。
這全都與粒度有關...如果我們確定正確的粒度,則Micro或macro都是無關緊要的。服務發現,斷路器或閘道器服務,特定於服務的資料庫隔離等都是必不可少的。
分散式整體是等待發生的FLP故障。
微服務最難的不是技術。這是因為他們需要實際的開發人員自治權才能做好,而大多陣列織只是不想真正做到這一點。
真正的自治權要求每個團隊複製很多東西:包括模式,商品元件,基礎架構和工具。這並不便宜,並且使團隊脫離了核心業務需求。透過dedup可節省資金,但會消除自主權並導致依賴。
按照這個定義,宏服務難道不是一堆透過共享程式碼在相對寬泛的範圍內耦合的微服務嗎?
相關文章
- 為什麼大多數公司最好避免使用微服務? -GreekDataGuy微服務
- 你不需要微服務微服務
- Go並不需要Java風格的GCGoJavaGC
- 微服務2.0時代:Spring Cloud Netflix與 Kubernetes&Istio比較微服務SpringCloud
- SerCe的部落格:您不需要任何服務網格
- SpringBoot、Kubernetes和Istio微服務網格演示原始碼Spring Boot微服務原始碼
- 微服務架構 | 3.1 Netflix Eureka 註冊中心微服務架構
- Kubernetes 微服務最佳實踐微服務
- Uber微服務實戰經驗分享微服務
- 微服務是否真的需要服務網格?微服務
- 【微服務技術專題】Netflix動態化配置服務-微服務配置元件變色龍Archaius微服務元件AI
- 別跟風了!你的公司根本不需要資料科學家資料科學
- 微服務架構 | 5.1 使用 Netflix Hystrix 斷路器微服務架構
- 基於kubernetes平臺微服務的部署微服務
- 優步公司的Go語言編寫風格指南Go
- 服務網格:微服務進入2.0時代微服務
- 【連載】微服務網格Istio(一)微服務
- Java微服務開發指南–使用Docker和Kubernetes構建可伸縮的微服務Java微服務Docker
- 結合Kubernetes解讀微服務的12要素微服務
- JavaScript 風格指南/編碼規範(Airbnb公司版)JavaScriptAI
- Netflix開源Mantis:基於微服務的運維監控平臺微服務運維
- 微服務化的不同階段 Kubernetes 的不同玩法微服務
- 微服務Spring Cloud與Kubernetes比較微服務SpringCloud
- 為什麼Kubernetes天然適合微服務?微服務
- 為什麼 kubernetes 天然適合微服務微服務
- 將微服務部署到 Azure Kubernetes 服務 (AKS) 實踐微服務
- 微服務架構下的服務呼叫與鑑權——某保險公司微服務平臺實施案例分享微服務架構
- Istio旨在成為容器化微服務的網格管道微服務
- spring cloud微服務分散式雲架構-Spring Cloud NetflixSpringCloud微服務分散式架構
- Netflix Cosmos平臺:微服務+工作流+無伺服器微服務伺服器
- 奈飛架構Netflix從單體到微服務演變圖架構微服務
- 基於Spring Cloud和Netflix OSS構建微服務,Part 2SpringCloud微服務
- 基於Spring Cloud和Netflix OSS 構建微服務-Part 1SpringCloud微服務
- 軟體架構風格——閉環架構風格(過程風格)架構
- 為微服務構建服務網格的Istio自身卻走向微服務的反面單體架構 – Christian Posta微服務架構
- 第三代微服務架構:基於 Go 的部落格微服務實戰案例,支援分散式事務微服務架構Go分散式
- 軟體架構風格——倉庫風格架構
- 小公司需要使用微服務架構嗎?微服務架構