© Liashko/Shutterstock.com
In die Ferne schweifen

Die Golumne


Wir haben inzwischen 2020 und die Softwareentwicklung hat sich in mehreren Schritten von großen Programmen mit kompletter Funktionalität in einem System hin zu Microservices in verteilten Landschaften entwickelt. Das ist durch die Aufteilung in fachliche Komponenten, die leichtere Skalierbarkeit und eine bessere Hochverfügbarkeit eine spannende Veränderung. Dass damit auch neue Herausforderungen geschaffen werden, sei nicht verschwiegen. Das Design ändert sich, Netzwerklatenzen und -ausfälle werden zu eigenen Problemen und für die Verteilung muss ich mich auf weitere Plattformen einlassen. Hier hilft beispielsweise das leistungsfähige Kubernetes, das soll an dieser Stelle aber nicht das Thema sein.

Vielmehr geht es um die Kommunikation. Ein etablierter Weg sind aktuell RESTful APIs. Sie bilden ein einfaches Request-/Response-Modell und nutzen zur Kommunikation das bewährte HTTP. Die Methoden des HTTP, also GET, POST, DELETE und weitere, werden hierbei auf Aktionen auf verwalteten Ressourcen abgebildet. Für den Datenaustausch können viele Formate eingesetzt werden, doch hat sich hier in der Regel JSON durchgesetzt. Es ist wie HTTP einfach und wird über Sprachgrenzen hinweg unterstützt.

So weit, so gut – eigentlich. Denn der stets neue Verbindungsaufbau ist teuer, das Frage-Antwort-Spiel reicht nicht für jede Anwendung und JSON zeigt sich nicht gerade sparsam beim Datenumfang. Es wird Zeit für einen neuen Standard, der eine ähnliche Akzeptanz für die sprachübergreifende Kommunikation von Netzanwendungen findet. Hier zeigt sich gRPC. Es basiert auf den Erfahrungen und der Arbeit eines Unternehmens, das der Inbegriff groß-skalierender Systeme ist: Google. Dort wurde über 15 Jahre hinweg das interne RPC-System Stubby entwickelt und auf hohe Skalierbarkeit und Funktionalität hin optimiert. Im August wurde das hierauf basierende gRPC 1.0 als Open-Source-Framework zur Verfügung gestellt.

Das Framework unterstützt eine Vielzahl von Sprachen und Umgebungen. Es bietet sowohl Request/Response als auch Streamingmodelle. Das zugrunde liegende Protokoll hierfür ist HTTP/2. Über Plug-ins unterstützt gRPC unterschiedliche Datenformate, von Haus aus werden Protocol Buffers genutzt. Weitere Plug-ins betreffen Load Balancing, Health Checking und Authentisierung. Das Projekt wird heute durch die Cloud Native Computing Foundation (CNCF) betreut.

Und was ist mit Go?

Wen verwundert es, dass Google als Entwickler der Sprache Go diese auch von Beginn an im gRPC Framework unterstüt...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang