Katran: Facebooks Software für Load-Balancing wird Open Source

Facebooks Entwickler verkünden, dass sie die hauseigene Softwarebibliothek für die Forwarding Plane von Netzwerk Load Balancer nun als Open-Source-Software bereitstellen. Diese kommt auch in der Infrastruktur von Facebook zum Einsatz.

In Pocket speichern vorlesen Druckansicht
Katran: Facebooks Software für Load-Balancing wird Open Source
Lesezeit: 2 Min.
Von
  • Frank-Michael Schlede

Facebook hat die Softwarebibliothek Katran quelloffen zur Verfügung gestellt. Dabei handelt es sich laut den Facebook-Ingenieuren um eine cpp-Bibliothek und ein BPF-Programm, die dazu verwendet werden können, eine sehr performante Layer-4 Load Balancing Forwarding Plane zu bauen.

In einem sehr ausführlichen Beitrag auf der Code-Seite von Facebook erläutern die Entwickler, wie sich diese Softwarebibliothek und damit die Netzwerkkomponente Load-Balancer nicht in Hardware, sondern in Form einer Software bei Facebook entwickelt hat und auch eingesetzt wird. So beruhte die erste Generation dieses Layer-4 Load Balancer laut ihren Aussagen zunächst hauptsächlich auf bereits existierenden Softwarekomponenten aus dem Open-Source-Bereich. Eine wichtige Voraussetzung war es dabei unter anderem, dass die Software auf Standard-Linux-Servern laufen konnte. Auf diese Weise gelang es Facebook, die Hardware-basierenden Load-Balancer-Komponenten in der eigenen Infrastruktur abzulösen.

Der Unterschied zwischen den Generationen der Load Balancer: Auf der rechten Seite kommt Katran zum Einsatz, wobei die Software näher an die Anwendungen rückt. (Bild: Facebook)

Mit Katran haben die Entwickler die zweite Generation des Load Balancers aus der Taufe gehoben, bei der die sogenannte Weiterleitungsebene (Forwarding Plane) komplett neu entwickelt wurde. Die Entwickler verschweigen aber auch nicht, dass Katran und diese Bibliothek nur unter Beachtung gewisser Voraussetzung und Einschränkungen die entsprechenden Geschwindigkeitsvorteile bieten kann. So arbeitet Katran beispielsweise nur im Direct Service Return-Modus (DSR) und kann keine fragmentierten Pakete weiterleiten oder Pakete selbst fragmentieren. Programmierer, die diese Software selbst zu Entwicklung eines Software Load Balancers einsetzen wollen, finden umfangreiche Beschreibungen und Erläuterung zum Einsatz und eben auch zu den Einschränkung auf dem GitHub Repository von Facebook zu Katran. Die Facebook-Ingenieure betonen dabei auch, dass ihnen Pull-Request bei diesem Projekt immer willkommen sind. (fms)