Microservices und verteilte Systeme

An API-Gateways führt kein Weg vorbei

API-Gateways bieten eine Reihe von Vorteilen, ob bei der Softwareentwicklung, bei der Sicherheit oder Kostenkontrolle. Gerade für Microservice- oder Serverless-Architekturen sind diese «Gatekeeper» ein Muss, erklärt bbv-Experte Jan Moser.

26.08.2021Text: tnt-graphics0 Kommentare
API Gateways

Wie funktionieren API-Gateways? Jan Moser, Software-Architekt bei bbv, vergleicht es mit einem Postschalter: «Man gibt am Schalter ein Paket ab und braucht sich danach nicht mehr um die korrekte Weiterleitung, den Versand und die Zustellung zu kümmern. Was dahinter passiert, braucht meine Kontrolle nicht mehr, Hauptsache, ich habe die Quittung erhalten und das Paket kommt beim Adressaten an.»

Genau das ist die Aufgabe von API-Gateways. Sie dienen als zentrale Einstiegs- und Verbindungspunkte in ein System und reduzieren so die Komplexität in der Kommunikation zwischen den Bausteinen. «In einem System, das aus diversen Microservices besteht, ist es dank des API-Gateways nicht nötig, dass jeder Baustein jeden anderen kennen muss», sagt Jan Moser. Stattdessen ruft ein Client oder Systembaustein die URL des API-Gateways auf, ohne zu wissen, wohin die Anfrage schlussendlich weitergeleitet wird. So können Aufrufe einer bestimmten Region oder eines bestimmten Gerätetypen (Web, Mobile etc.) an spezifische Endpunkte weitergeleitet werden, ohne dass dies für den Client direkt ersichtlich ist.

Die API-Gateways sind richtige «Gatekeeper»: Sie können unberechtigte Zugriffe verhindern, indem sie Authentisierungen vorgängig gegen kompatible Quellen validieren, indem sie Anfragen erst gegen Authentisierungsprovider wie z. B. Active Directory, Keycloak, AWS Cognito oder andere Identity- und Access- Management-Systeme (IAM) validieren. Damit werden Zugriffe gar nicht erst an die eigentlichen Endsysteme weitergeleitet. Sie können zudem auch alle Calls abblocken, die nicht aus einem bestimmten IP-Bereich, nicht aus einer bestimmten Region, aus einem Land oder aus der eigenen Firma stammen oder die Berechtigungskriterien nicht erfüllen.

Das API-Gateway schottet so auch das private Backend-Netzwerk zuverlässig vom Internet ab. Zudem kann die interne Verarbeitung des Traffics durch SSL Offloading vereinfacht und beschleunigt werden, indem https-Anfragen per Zertifikat geprüft und danach unverschlüsselt an die einzelnen Services weitergeleitet werden. «So muss die Anfrage innerhalb des Systems nicht jedes Mal neu entschlüsselt und wieder verschlüsselt werden, da das Gateway die Korrektheit des Zertifikats bereits geprüft hat.»

API Gateways

Wann lohnt sich der Einsatz von API-Gateways?

In einem monolithischen System machen API-Gateways wenig Sinn. Doch sind mehrere Module oder Services im Spiel, bringen die vorgelagerten Schaltstellen für Entwickler noch weitere Vorteile – insbesondere bei Cloud-native-Systemen, aber auch mit der Verwendung von Docker-Containern oder in On-premises-Systemen.

Bei der Implementierung neuer Software bieten API-Gateways den Vorteil, dass man als Entwickler nur noch mit dem Gateway kommunizieren muss anstatt mit den einzelnen Services. «Auf diese Weise können Entwickler einzelne Teile der Software modernisieren oder verschiedene Architekturen testen, ohne dass sie das Frontend oder den Client verändern müssen», erklärt Jan Moser. Zudem können sie einzelne Teile gesondert verändern und testen. Das kann bei der Modernisierung einer veralteten Client-Server-Applikation die Arbeit enorm vereinfachen. Zum Beispiel lässt sich so in einem Onlineshop-System das Payment verändern, während am Bestellvorgang und an allen anderen Teilen nichts angerührt werden muss. «Weil die Teile vom API-Gateway abgetrennt werden, kann man ein bestehendes System also Schritt für Schritt modernisieren.» Auch das Testen wird durch API-Gateways beschleunigt. Dank der Abstraktion, die sie ermöglichen, können Pilot-Releases oder Beta-Versionen mit realen Business-Daten getestet werden, ohne dabei Veränderungen am bestehenden System vornehmen zu müssen. «Man kann das System aber auch mit Fake-Daten simulieren, um nicht am scharfen System arbeiten zu müssen.» So lassen sich echte Antworten des Systems generieren, um die Reaktionen des Systems testen zu können.

API-Gateways erhöhen die Sicherheit kostengünstig

API-Gateways bieten noch mehr Vorteile, als Systeme vor unberechtigten Zugriffen zu schützen. Da die Verarbeitung von Anfragen bei Cloud-Providern üblicherweise pro Zeiteinheit oder gemäss der Anzahl Nutzungen verrechnet wird, können die Prüfungen von grossen Mengen an Requests sehr teuer werden.

«Hier hilft ein API-Gateway», sagt Jan Moser, «es ist in der Lage, viele dieser Calls bereits vorab zurückzuweisen, sodass sie gar nicht verarbeitet werden müssen. Bei einem plötzlichen Anstieg von bösartigen Anfragen kann das API-Gateway so vor einer Kostenexplosion zu schützen.»

Auch in Punkto Sicherheit überzeugen API-Gateways, denn sie schützen auch vor DDoS-Attacken. Alternative Schutzmechanismen wie ein eigens dafür ausgelegter Load Balancer oder eine Firewall für die Web-Applikation seien vergleichsweise viel aufwändiger zu realisieren, so Moser. API-Gateways könnten aber auch schwach verschlüsselte Systeme zusätzlich schützen, indem ein ankommender Request mit einem stärkeren SSL-Zertifikat repliziert wird. Durch diese Abblockung des Gateways kann das Web-System durch eine bessere Verschlüsselung geschützt werden, falls ein zu schwaches Zertifikat im Client geknackt werden sollte.

Der Experte

Jan Moser

Jan Moser war Software-Architekt bei bbv. Als Teamworker liebte er es, herausfordernde und spannende Projekte gemeinsam mit dem Kunden zum Erfolg zu bringen. Dazu behielt er die neuesten Technologietrends genau im Auge – und fühlte sich an den bbv-Standorten in der Schweiz und in Vietnam zu Hause.

Unser Wissen im Abo

Microfrontends: Microservices weitergedacht

Wie Webentwickler Komplexität reduzieren

Microservices
Cloud als Innovationsbeschleuniger

Coffee-as-a-Service: Kundenerlebnis neu definiert

Cloud Computing
MS Azure Migration

Wachstumschancen nutzen mit der Cloud

Cloud Computing

Artikel kommentieren

Beachtung!

Entschuldigung, bisher haben wir nur Inhalte in English für diesen Abschnitt.

Achtung!

Entschuldigung, bisher haben wir für diesen Abschnitt nur deutschsprachige Inhalte.

Beachtung!

Entschuldigung, bisher haben wir nur Inhalte in English für diesen Abschnitt.

Achtung!

Entschuldigung, bisher haben wir für diesen Abschnitt nur deutschsprachige Inhalte.