本文原做者爲Matt Klein,爲envoy的工程師。發表於2017年12月。因原文英文寫做和其它緣由,本人以爲有必要分享。但翻譯後期發現該文已於2018年1月被人翻譯。思考再三,決定發佈本身的翻譯版本。原文較長,我分爲三個部分便於你們閱讀。此爲第三篇後端
當前技術上的代理之戰是很是字面意義上的代理戰爭。 或 "代理人(軟件)之戰"。 Nginx plus、HAProx、, linkerd, Envoy毫無疑問競相廝殺。 代理即服務/路由即服務SaaS供應商也參與其中。很是有趣的時刻!
- @copyconstruct
確實是的。最近幾年L7負載均衡器/代理髮展的如火如茶。這與分佈式系統中對微服務架構的持續推進很是吻合。從根本上說,固有的網絡故障使用得越頻繁越難以進行高效維護。此外,自動擴展,容器調度程序等的興起意味着在靜態文件中配置靜態IP的時代已經一去不返了。現代系統不只更多地利用網絡,還變得更加動態化,須要負載均衡器中的新功能。在本節中,我將簡要總結現代L7負載平衡器中發展最快的領域。安全
現代L7負載均衡器正在爲許多不一樣的協議添加明確的支持。負載均衡器對應用流量的瞭解越多,它在可觀察性輸出,高級負載平衡和路由等方面就能夠作得越出色。例如,在撰寫本文時,Envoy明確支持對HTTP/一、HTTP/二、gRPC、Redis、MongoDB和DynamoDB的L7協議解析和路由。將來可能會添加更多協議,包括MySQL和Kafka。服務器
如上所述,分佈式系統日益加強的動態化特性須要並行投入建立動態化和響應式控制系統。Istio就是這種系統的一個例子。網絡
L7負載均衡器如今一般內置支持高級負載均衡功能,如超時,重試,速率限制,斷路,陰影,緩衝,基於內容的路由等。架構
如上面關於通用負載均衡器功能的部分所述,日益動態化的系統變得愈來愈難以調試。強大的協議規格可觀察性輸出多是現代L7負載平衡器提供的最重要的功能。如今,任何L7負載平衡解決方案几乎都須要輸出數據統計,分佈式跟蹤和可自定義日誌記錄。負載均衡
現代L7負載平衡器的用戶一般但願輕鬆擴展它們以添加自定義功能。這能夠經過編寫加載到負載均衡器中的可插入過濾器來完成實現。許多負載均衡器也支持腳本,一般經過Lua來新增自定義功能。框架
L7負載均衡器容錯怎麼樣?一般,咱們將L7負載均衡器視爲可消耗和無狀態的。使用商用軟件能夠輕鬆地水平縮放L7負載均衡器。此外,L7負載平衡器執行的處理和狀態檢測比L4複雜得多。嘗試創建L7負載均衡器的HA配對在技術上是可行的,但比較困難。
整體而言,在L4和L7負載均衡域中,業界正逐漸從HA配對轉向經過一致哈希融合的水平可擴展系統。機器學習
圖13:全局負載均衡
負載均衡的將來將愈來愈多地將各個負載均衡器視爲商品設備。在我看來,真正的創新和商業機會都在控制層領域。圖13顯示了全局負載均衡系統的示例。在這個例子中,發生了一些不一樣的事情:分佈式
到目前爲止,這篇文章僅簡要提到了硬件與軟件,主要是在歷史L4負載均衡器HA對的上下文中。這個領域的行業趨勢是什麼?
一些推文老是帶有一些調侃,但仍然總結了不少趨勢,它們是:ide
總而言之,這篇文章的主要內容是:
全文完。
翻譯優化:
一、去除掉與技術無關的內容
二、圖片重構
三、省略部分擴展閱讀
四、對原翻譯進行了優化