eBay macht Load Balancer Neutrino zum Open-Source-Projekt
Der Software-Load-Balancer kommt bei eBay für die Testinfrastruktur zum Einsatz und soll sich unter anderem durch gute Performance und hohe Verfügbarkeit auszeichnen.
![eBay macht Load Balancer Neutrino zum Open-Source-Projekt](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/1/7/5/5/1/2/9/vm-b8196747e2211c13.jpeg)
- Julia Schmidt
eBays Entwicklungsabteilung hat den Code des Load-Balancers Neutrino unter die Apache-2-Lizenz gestellt und auf GitHub freigegeben. Das Projekt ist in der JVM-Sprache Scala verfasst, arbeitet mit der Java Virtual Machine als Laufzeitumgebung und dem Netty-Server. Es kommt im Unternehmen für Umschaltvorgänge in der Anwendungsschicht und Load Balancing für die Testinfrastruktur zum Einsatz.
Anstoß für die Entwicklung waren laut eBays Paul Blesson die hohen Kosten und das geringe Maß an Flexibilität der Hardware-Load-Balancer. Das als Softwarealternative in Frage kommende HAProxy konnte nicht alle zuvor festgelegten Anforderungen erfüllen. So ließen sich damit wohl unter anderem keine Regeln zugrunde legenden Umschaltvorgänge in der Anwendungsschicht realisieren oder Logs an API-Endpunkte übermitteln. Entsprechende Ausbaumaßnahmen wären laut Blesson zu aufwendig gewesen, weshalb Neutrino entstand.
Seine Vorteile sehen die Entwickler in der modularen Architektur des Load Balancer, der horizontalen Skalierbarkeit sowie der guten Leistungsfähig- und Skalierbarkeit. Darüber hinaus lässt sich das Routing in der Anwendungsschicht mit kanonischen Namen, URL-Kontexten und Regeln und das in der Transportschicht mit mehreren Port-Nummern umsetzen. Um schnell auf Datenverkehrsmessungen oder Konfigurationen zugreifen zu können, sind zudem APIs vorhanden.
Standardmäßig sind Round Robin und Least Connection als Optionen zum Load Balancing vorgesehen, allerdings lassen sich auch für eigene Zwecke angepasste Balancer ergänzen. Das System lässt sich wohl auch im Betrieb konfigurieren, ohne dass Verbindungen abgebrochen werden. Mehr Informationen sind auf der Projektseite oder auf GitHub zu finden. (jul)