關於“服務網格”和分散式系統軟體複雜性 - Matt Klein
我們的行業傾向於迷戀Google,Netflix等公司的技術架構。他們已經構建了一些令人印象深刻的技術來解決罕見的擴充套件問題,所以這並不奇怪。但是,您的公司/系統是否需要類似的解決方案?可能不是...
對服務網格、K8S和其他原生技術的強烈抵制是合理的質疑,廠商供應商的營銷和強大技術思想領先導致較小的組織沒有看到森林,而只看到他們的樹木,並採用過於複雜的解決方案實現他們的實際需求。
如果你有一個新的/小的分散式系統,可從下面開始選擇:
1. 單體Monolith SOA
2. 沒有型別的語言/ API,比較狂野的
3. 單一大程式碼庫Monorepo
4. FaaS
5. MongoDB?Web規模
-1. 服務網格
-2. K8S
專注於創造客戶價值,儘可能保持事物的簡單和無聊。但是,如果你有幸找到成功,你的開發團隊將會成長,你最終將轉向SOA。
無型別的語言和API將不再那麼高效。 - 那個monorepo?甚至我都不會從它開始, 今天最先進的FaaS不會在可靠性,視覺障礙,網路等方面問題,特別是當你開始感受SoA網路/視力障礙時。
此時,“服務網格”將以某種方式為您服務,因為必須解決障礙,負載平衡,服務發現,一致超時,重試等問題,或者您的SoA是DOA。
你全部使用Java嗎?Finagle或Hystrix是不錯的選擇。你是一個Go全棧嗎?試試像Micro這樣的東西。你是多語言嗎?您可以將資源投入到每種語言的自定義庫中,也可以使用邊車,必須找到解決方案。
如果你採取服務網格和K8s,你需要承擔的網路複雜性,因為無論供應商/會議告訴你什麼,都會有痛苦,沒有任何東西是免費的。
總是這樣嗎?我不這麼認為。我實際上認為我們正處於一個橋樑時期,普通工程師必須直接與Envoy和K8S等技術進行互動才能在SoA取得成功。
我堅信,在10年的時間內,FaaS是所有人都會與之互動的。如果我是開發人員,我想提供以下程式碼:
- 來自資料庫的讀寫R/W
- 呼叫API
- 佇列/deques作業
就是這樣。其他一切都是噪音。
在這種情況下,我認為在一個雲足以執行Google 的FaaS世界,K8S,Envoy,“服務網格”等技術將無處不在,但幾乎沒有人會知道它們在哪裡。這些都是管道。沒有人關心管道。
相關文章
- 分散式系統:常見陷阱和複雜性分散式
- 關於管理軟體複雜性的最佳書籍?
- Java後端分散式系統的服務路由:智慧DNS與服務網格Java後端分散式路由DNS
- 如何降低軟體的複雜性?
- 系統困境與軟體複雜度,為什麼我們的系統會如此複雜複雜度
- 深入理解分散式系統:分割槽、複製、分散式事務以及系統一致性與共識分散式
- 分散式系統(三)——分散式事務分散式
- 分散式系統理論基礎8:zookeeper分散式協調服務分散式
- 分散式服務化系統一致性的“最佳實幹”薦分散式
- 對於複雜系統只能採用模擬性建模? - Cilliers
- 分散式服務高可用實現:複製分散式
- [分散式]--Dubbo分散式服務框架-服務治理分散式框架
- 分散式系統–>(關於系統應用的基本概念)分散式
- 分散式系統中一致性雜湊演算法分散式演算法
- 「和耳朵」聊聊微服務與分散式系統微服務分散式
- 軟體的複雜性正在殺死我們
- 複雜性正在殺死軟體開發者
- 軟體系統的架構演進以及叢集和分散式架構分散式
- 關於分散式事務的理解分散式
- Python 網路服務相關 雜記Python
- 害怕軟體的複雜嗎?其實複雜性是必須存在的 - ferd
- 實現微服務的唯一方法是:在系統全域性和本地兩個級別平衡每個服務的複雜性微服務
- 分散式事務:基於可靠訊息服務分散式
- 分散式系統之CAP理論雜記分散式
- Bayou複製分散式儲存系統分散式
- 複雜性系統是一種心智介面 – Charles
- 外觀模式-簡化子系統的複雜性模式
- 分散式事務(八)Spring Cloud微服務系統基於Rocketmq可靠訊息最終一致性實現分散式事務分散式SpringCloud微服務MQ
- DDD函式程式設計案例:戰勝軟體開發的複雜性! 戰勝方式本身有點複雜哦!函式程式設計
- 構建基於RocketMQ的分散式事務服務MQ分散式
- 關於聊天室原始碼服務端渲染那些事,沒有那麼複雜原始碼服務端
- 彈性分散式深度學習系統分散式深度學習
- 複雜性自適應系統無法建模分析
- 複雜性系統的戰略分析要點 -Dave
- 3.分散式服務架構:原理、設計與實戰 --- 服務化系統容量評估和效能保障分散式架構
- 關於SpringCloud大型網際網路分散式企業微服務雲架構SpringGCCloud分散式微服務架構
- 分散式儲存系統可靠性:系統量化估算分散式
- Java後端分散式系統的服務監控:Zabbix與NagiosJava後端分散式iOS