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

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

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

當前技術上的代理之戰是非常字面意義上的代理戰爭。 或 "代理人(軟件)之戰"。 Nginx plus、HAProx、, linkerd, Envoy毫無疑問競相廝殺。 代理即服務/路由即服務SaaS供應商也參與其中。非常有趣的時刻!
 -  @copyconstruct
確實是的。最近幾年L7負載均衡器/代理髮展的如火如茶。這與分佈式系統中對微服務架構的持續推動非常吻合。從根本上說,固有的網絡故障使用得越頻繁越難以進行高效維護。此外,自動擴展,容器調度程序等的興起意味着在靜態文件中配置靜態IP的時代已經一去不返了。現代系統不僅更多地利用網絡,還變得更加動態化,需要負載均衡器中的新功能。在本節中,我將簡要總結現代L7負載平衡器中發展最快的領域。

協議支持

現代L7負載均衡器正在爲許多不同的協議添加明確的支持。負載均衡器對應用流量的瞭解越多,它在可觀察性輸出,高級負載平衡和路由等方面就可以做得越出色。例如,在撰寫本文時,Envoy明確支持對HTTP/1、HTTP/2、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對的上下文中。這個領域的行業趨勢是什麼?
    一些推文總是帶有一些調侃,但仍然總結了很多趨勢,它們是:

  • 從歷史上看,路由器和負載均衡器已被提供爲極其昂貴的專有硬件。譯註:如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和軟件正在以驚人的速度迭代發展。此外,隨着分佈式系統通過“無服務器”化繼續向動態化邁進,基礎網絡和負載均衡系統的複雜性將變的更加複雜。

全文完。

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章