NashTech

Der Spielrahmen bei LinkedIn

Der Spielrahmen bei LinkedIn

Einführung

Wir boten Support und Beratungsdienste an und halfen ihnen, die Vorteile der Erweiterbarkeit von Play zu nutzen, um es auf ihre individuellen Bedürfnisse abzustimmen.

Über LinkedIn

LinkedIn ist ein börsennotiertes Unternehmen, das das weltweit größte berufliche Netzwerk im Internet mit über 160 Millionen Mitgliedern in mehr als 200 Ländern und Gebieten betreibt.

Das Unternehmen ist ein Lightbend-Kunde und verwendet Scala für seinen Kerngraphen des sozialen Netzwerks und andere wichtige Produktkomponenten. Sie haben auch Open-Source-Projekte auf der Basis von Scala veröffentlicht, wie Norbert, eine Cluster-Management-Lösung, und Kafka, ein verteiltes Publish-Subscribe-System. Scala ist ein Teil von Lightbends Vorzeigeprodukt, der Lightbend Platform. Kürzlich hat LinkedIn seine Nutzung der Lightbend-Plattform um das Web-Framework Play erweitert.

Herausforderungen

LinkedIn stand vor Herausforderungen mit traditionellen Java-Web-Frameworks. Zum Beispiel:

LinkedIn verwendet einige Nicht-Java-Plattformen, wie Ruby on Rails oder node.js. Der größte Teil des serverseitigen Codes ist jedoch in Java geschrieben, so dass sie ein starkes, modernes UI-Framework für Java-Entwickler benötigten.

Lösung

Das Unternehmen wandte sich an Play, eine Komponente der NashTech Platform Solution. Play ist ein modernes Framework für die JVM mit dem Schwerpunkt auf der Produktivität der Entwickler. Es unterstützt sowohl Java als auch Scala, so dass die Kunden die für ihre Situation am besten geeignete Sprache wählen können. Sie bringen reaktive Anwendungen unter Verwendung der Java-API in die Java Virtual Machine und machen es ihren Entwicklern leicht, sie schnell zu übernehmen.

Wo LinkedIn das Spiel einsetzt

LinkedIn verwendet Play als Front-End-Server für die UI-Entwicklung. Beispiele hierfür sind:

LinkedIn geht davon aus, dass Play im Laufe der Zeit bei der Entwicklung neuer Funktionen auf der Website in größerem Umfang eingesetzt wird.

LinkedIn untersucht auch Play als zugrunde liegende Technologie für seine Backend-Dienste. Das Unternehmen ist dabei, seine gesamte Service-Architektur auf RESTful JSON umzustellen und sucht Play, um diesen Prozess zu unterstützen.

Schneller Code- und Test-Zyklus

Für Entwickler ist die Fähigkeit von Play, die Anwendung dynamisch neu zu kompilieren, wenn sie im Browser auf “Reload” drücken, ein entscheidender Vorteil. LinkedIn-Entwickler speichern ihre Änderungen in ihrem Editor, wechseln zum Browser und drücken auf “Neu laden”. Wenn es Kompilierungsfehler gibt, werden diese direkt im Browser angezeigt. Wenn die Erstellung erfolgreich war, wird die neue Seite angezeigt.

Diese einfache Funktion spart Entwicklern unzählige Stunden bei der Arbeit an einer Webanwendung.

Damit es schnell geht, wenn Entwickler auf “Reload” drücken, verwendet Play ausgeklügelte inkrementelle Kompilierungstechniken, um nur die Klassen neu zu erstellen, die sich geändert haben.

Erweiterbar auf benutzerdefinierte Asset-Typen

Die Hot-Reload-Funktionen von Play können erweitert werden, um neue Asset-Typen zu unterstützen.

LinkedIn hat ein REST-Framework, das Apache Avro verwendet. Java-Klassen werden aus deklarativen Datenmodellen und Endpunktbeschreibungen generiert.

LinkedIn hat mit Play eine Infrastruktur für den Aufbau dieser REST-Server geschaffen. Außerdem wurde Play erweitert, um das Hot-Reloading der Avro-Schemata zu unterstützen. Nach der Änderung eines Schemas brauchen LinkedIn-Entwickler nur auf “Reload” im Browser zu drücken, um die Java-Klassen neu zu generieren und die Anwendung neu zu erstellen. Eventuelle Fehler werden sofort im Browser angezeigt.

Das spart dem Entwickler bei jeder Änderung ein paar Minuten.

Neue Arten von Vorlagen können über das Modulsystem zu Play hinzugefügt werden. LinkedIn hat ein Play-Modul zur Unterstützung von Dust-Vorlagen implementiert. Wie immer bei Play können die Dust-Vorlagen im laufenden Betrieb geladen werden.

Asynchrone, zustandslose Skalierbarkeit

Das Play bietet zwei große Vorteile in Bezug auf die Skalierbarkeit.

Es unterstützt asynchrone Anfragen, d.h. es ist nicht erforderlich, einen Thread zu binden, während Anfragen bearbeitet werden. Anfragen können unterbrochen werden, während der App-Server auf einen externen Dienst oder eine Datenbank wartet, und dann wieder aufgenommen werden, wenn die Ergebnisse vorliegen. Dadurch wird der Speicherbedarf für eine ausstehende Anfrage erheblich reduziert (in der Regel verbraucht die Thread-Plattform weitaus mehr Speicher als der Code, der die Anfragen bedient).

Im Rahmen des Integrationsprozesses bei LinkedIn wurde die Java-API von Play für die Bearbeitung asynchroner Anfragen verbessert, und die Änderungen wurden in die Hauptcodebasis von Play und die NashTech Platform Solution integriert.

Play hat ein zustandsloses Design, d. h. es ist nicht auf einen serverseitigen Sitzungsstatus angewiesen. Stattdessen wird der Sitzungsstatus in einem Cookie gespeichert und steht somit jedem Serverknoten zur Verfügung, der eine Anfrage erhält.

In einer zustandslosen Architektur ist die Erweiterung der Kapazität so einfach wie das Hinzufügen weiterer Anwendungsserver. Play macht dies standardmäßig richtig und vermeidet Komplexität, wie z. B. Sitzungsaffinität, die zu Skalierbarkeitsproblemen führen kann.

Flexibilität

Bei der Evaluierung eines Frameworks ist Flexibilität der Schlüssel. Da Play von Haus aus über die richtige Architektur verfügt, musste sich LinkedIn keine Gedanken über umfangreiche benutzerdefinierte Änderungen machen, die den Wechsel zu zukünftigen Versionen des Frameworks behindern könnten.

Play verfügt über definierte Erweiterungspunkte, so dass diese Anpassungen als externe Module und nicht als Patches für den Kernrahmen vorgenommen werden können. Das Apache Avro-Schema und die Unterstützung von Dust-Vorlagen wurden als Module implementiert.

Ergebnisse

Play hat die richtige technische Architektur, um die Anforderungen von LinkedIn zu erfüllen:

NashTech macht diese rohe Technologie in einem schnelllebigen Unternehmen praktisch nutzbar. Die NashTech Platform Solution bietet LinkedIn eine langfristig unterstützte Version, die Fehlerkorrekturen und Verbesserungen enthält, so dass die Kunden am Ende keinen eigenen Fork pflegen müssen. Dank der umfassenden Produktunterstützung von NashTech konnte LinkedIn schnell Erweiterungen zum Play-Framework hinzufügen und Verbesserungen am Kern-Framework mit den Upstream-Maintainern abstimmen.

Durch die Zusammenarbeit mit NashTech ist LinkedIn nun in der Lage, auf einer zukunftssicheren, wartbaren und unterstützten Plattform Zeit für Entwickler zu sparen und Serverressourcen zu schonen.

Mit NashTech konnte LinkedIn die Funktionalität des Frameworks so beeinflussen, dass sie in das Mainstream-Produkt integriert werden konnte. LinkedIn kann sich darauf verlassen, dass Fehlerbehebungen und Verbesserungen in zukünftigen Versionen der NashTech Platform Solution enthalten sein werden und dass sie nicht auf einer veralteten Version sitzen bleiben werden.

“Wir sehen Play als ein sauber architektiertes UI-Framework mit schönen asynchronen und im laufenden Betrieb nachladbaren APIs von Grund auf.”

Dean Thompson, Leitender Architekt

Weitere Fallstudien lesen

Vom Überwinden von Widrigkeiten zum Reiten der Welle der digitalen Transformation im Bildungssektor

Erfahren Sie, wie NashTech dem Trinity College London hilft, die Welle der digitalen Transformation im Bildungssektor zu reiten

AWS
AWS
Migration und Modernisierung der virtuellen Lernumgebung auf AWS für ein verbessertes Erlebnis

Das migrierte und modernisierte Moodle Infrastruktur bedeutet, dass The Open Die Universität kann nun folgende Vorteile nutzen Cloud-Vorteile.

Ein Einblick in eine einjährige RPA-Reise mit einem führenden digitalen Werbedienst

Ein Einblick in eine einjährige RPA-Reise mit einem führenden Anbieter von digitalen Werbedienstleistungen und -lösungen und wie NashTech ihnen geholfen hat.

Unsere Partnerschaften

Nach oben scrollen
BEISPIEL TITEL
Muster kurz
Musterüberschrift lorem isump
DE FREE WHITEPAPER
Erschließen Sie die Macht des Wissens mit unserem neuen Whitepaper
“Verbesserung der Benutzererfahrung für Produktbesitzer”
KOSTENLOSES WHITEPAPER
Erschließen Sie die Macht des Wissens mit unserem neuen Whitepaper
"Verbesserte Benutzererfahrung für Produktverantwortliche"