網絡負載均衡和代理技術3

本文原做者爲Matt Klein,爲envoy的工程師。發表於2017年12月。因原文英文寫做和其它緣由,本人以爲有必要分享。但翻譯後期發現該文已於2018年1月被人翻譯。思考再三,決定發佈本身的翻譯版本。原文較長,我分爲三個部分便於你們閱讀。此爲第三篇後端

L7負載平衡的當前技術水平

當前技術上的代理之戰是很是字面意義上的代理戰爭。 或 "代理人(軟件)之戰"。 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配對轉向經過一致哈希融合的水平可擴展系統。機器學習

全局負載均衡和集中控制平臺

網絡負載均衡和代理技術3
圖13:全局負載均衡
負載均衡的將來將愈來愈多地將各個負載均衡器視爲商品設備。在我看來,真正的創新和商業機會都在控制層領域。圖13顯示了全局負載均衡系統的示例。在這個例子中,發生了一些不一樣的事情:分佈式

  • 每一個挎斗車代理與三個不一樣區域(集羣1,集羣2和集羣3)中的後端通訊。
  • 如圖所示,90%的流量被髮送到區域C(集羣3),而5%的流量被髮送到區域A(集羣1)和B(集羣2).
  • 跨斗車(sidecar)代理和後端都向全局負載均衡器報告週期性狀態。這容許全局負載均衡器作出考慮延遲,成本,負載,如發生故障等的決策。
  • 全局負載均衡週期性地爲每一個挎斗車代理配置當前路由信息。
    全局負載均衡器將愈來愈可以完成任何單個負載均衡器沒法獨立完成的複雜功能。例如:
  • 自動檢測並繞過區域性故障。(如A或B、C發生故障)
  • 應用全局安全和路由策略。
  • 使用機器學習和神經網絡檢測和緩解包括DDoS×××在內的流量異常。
  • 提供集中的UI和可視化,使工程師可以聚合地理解和操做整個分佈式系統。
    爲了實現全局負載均衡,做爲數據層的負載均衡器必須具備複雜的動態配置功能。

    從硬件到軟件的演變

    到目前爲止,這篇文章僅簡要提到了硬件與軟件,主要是在歷史L4負載均衡器HA對的上下文中。這個領域的行業趨勢是什麼?
    一些推文老是帶有一些調侃,但仍然總結了不少趨勢,它們是:ide

  • 從歷史上看,路由器和負載均衡器已被提供爲極其昂貴的專有硬件。譯註:如F5=負載均衡的觀念在中國也家常便飯。
  • 愈來愈多的大多數專有L3 / L4網絡設備正在被商用服務器硬件,商用NIC以及基於IPVS,DPDK和fd.io等框架構建的專用軟件解決方案所取代。成本低於5千美圓的現代數據中心機器可使用Linux和使用DPDK編寫的自定義用戶空間應用程序輕鬆地使用很是小的數據包使80Gbps網卡飽和。與此同時,可以以驚人的總帶寬和數據包速率進行ECMP路由的廉價和基本的路由器/交換機ASIC被打包爲商品路由器。
  • 複雜的L7軟件負載均衡器,如NGINX,HAProxy和Envoy,也在快速迭代並侵佔以前的F5等供應商領域。所以,L7負載平衡器也在積極地轉向商用軟件解決方案。
  • 與此同時,整個行業向主要雲提供商推進IaaS,CaaS和FaaS的轉變意味着愈來愈多的工程師只須要了解物理網絡的工做方式(這些是「黑魔法「和」咱們再也不須要知道關於「上面的部分」的事情。

    結論和負載均衡的將來

    總而言之,這篇文章的主要內容是:

  • 負載均衡器是現代分佈式系統中的關鍵組件。
  • 業內主要定義了兩種通用類型的負載均衡器:L4和L7。
  • L4和L7負載均衡器都與現代架構息息相關。
  • L4負載均衡器正朝着可水平擴展的分佈式一致性哈希解決方案發展。
  • 因爲動態微服務架構的流行,L7負載均衡器近期投入、發展潛力巨大。
  • 全局負載均衡及控制平臺和數據平臺之間的分離是負載均衡的將來方向,而且能夠找到大多數將來的創新和商業機會。
  • 該行業正在積極地轉向用於網絡解決方案的商用OSS硬件和軟件。我相信像F5這樣的傳統負載均衡供應商將首先被OSS軟件和雲供應商所取代。傳統路由器/交換機供應商,如Arista / Cumulus /等。我認爲在特定的系統集成周期有必定的市場,但最終也將會被公共雲供應商和他們本身開發的物理網絡取代。
    總的來講,我認爲這是計算機網絡中一個迷人的時刻!面向大多數系統的OSS和軟件正在以驚人的速度迭代發展。此外,隨着分佈式系統經過「無服務器」化繼續向動態化邁進,基礎網絡和負載均衡系統的複雜性將變的更加複雜。

全文完。

翻譯優化:
一、去除掉與技術無關的內容
二、圖片重構
三、省略部分擴展閱讀
四、對原翻譯進行了優化

網絡負載均衡和代理技術3

相關文章
相關標籤/搜索