Tyk - Open Source API Management im Vergleich

Von: Thomas Bayer
Datum: 9. Mai 2018
Aktualisiert: 25. Januar 2019

Tyk ist ein in Go geschriebenes Open Source API Gateway und eine Management Plattform. Der Schutz vor unberechtigtem Zugriff stand bei der Entwicklung von Tyk im Mittelpunkt. Auf eine Vielzahl von Features, die das Produkt überladen, wurde bewusst verzichtet.

1 Komponenten

Die Funktionen von Tyk sind auf das Gateway und das Dashboard verteilt.

1.1 Endpoint Designer

Mit dem Endpoint Designer des Dashboards kann ein Endpunkt angelegt und dessen Verhalten konfiguriert werden. Ein Endpunkt ist die Kombination aus Methode und Pfad.


Abbildung 1: API Endpoint Designer

Über Plugins können u.a. die folgenden Funktionen einem Endpunkt zugeordnet werden:

  • Cache
  • White- und Blacklists
  • Header Manipulation
  • JSON Transformation
  • URL Rewriting
  • Circuit Breaker
  • Validierung mit JSON Schema
  • Endpoint Tracking

Die folgende Abbildung zeigt wie eine Validierung mit JSON Schema im Designer konfiguriert werden kann:


Abbildung 2: Validierung mit JSON Schema

Über eine Export-Funktion kann die Konfiguration eines APIs mit allen Einstellungen zu den Endpunkten als JSON Datei exportiert werden. Die einzelnen Konfigurationseinstellungen sind so nicht in duzenden Formularen vergraben und können als Datei z.B. in einem Source Code Management System wie z.B. git verwaltet werden.

Für APIs kann eine Swagger/Open API Dokumentation hinterlegt werden, die im Katalog sichtbar ist. Leider wird die Dokumentation nicht im Endpoint Designer verwendet. Möchte man zum Beispiel eine Transformation oder einen Circuit Breaker im Endpoint Designer einrichten, so muss dort Methode und Pfad nochmals eingerichtet werden, obwohl dies bereits im Swagger Dokument beschrieben ist.

1.1.1 Transformation

JSON und XML Nachrichten können mit golang Templates transformatiert werden. Im API Designer können die Transformationen konfiguriert und getestet werden. In der Abbildung unten sieht man links eine Testnachricht, die mit dem Template in der Mitte in den Output rechts umgewandelt wird.


Abbildung 3: JSON nach JSON Transformation mit golang Template

Eine weitere Möglichkeit Nachrichten zu transformieren sind eigene Middleware Komponenten, die in den Request- und Responseflow eingeklinkt werden können.

1.2 API Catalogue

Tyk besitzt einen einfachen Katalog, der mit eigenen Seiten, Menus, Styles und HTML Templates gestaltet werden kann. Der Screenshot unten zeigt einen Eintrag für ein API im Katalog.


Abbildung 4: API Eintrag im Catalogue

Für ein API kann auch eine Swagger bzw. Open API Dokumentation hinterlegt werden. Wie die Abbildung unten zeigt, wurde der Inhalt einfach übernommen und mit der Swagger UI dargestellt. Die Endpunktadresse wurde nicht auf das Gateway umgestellt. Tyk kann auch keine Swagger Dokumentation aus den Beschreibungen der Endpunkte generieren.


Abbildung 5: Swagger Dokumentation im API Catalogue

Nach der Auswahl eines APIs kann eine Subscription angelegt werden. Je nach Authentifizierung bekommt der Client Entwickler einen API Key, ein JSON Web Token (JWT) oder andere Credentials übergeben.


Abbildung 6: Anfordern eines API Keys im Catalogue

1.3 Analytics

Die Tyk Gateways schreiben Analytics Daten in eine Redis Datenbank, von dort werden sie über einen Pump Service in eine MongoDB übertragen. Ein Dashboard kann dann die Daten der MongoDB visualisieren.


Abbildung 7: Verteilung der Aufrufe im Tyk Dashboard

Über Fehler gibt es ebenfalls Statistiken.


Abbildung 8: Diagramme und Statistiken zu Fehlern

Im Log Browser können alle Nachrichten, die durch die API Gateways verarbeitet wurden eingesehen werden. Bis im Log Browser eine Nachricht erscheint, können 2 bis 3 Minuten vergehen.


Abbildung 9: Detailansicht einer Nachricht im Log Browser

Die Analyse Möglichkeiten von Tyk sind begrenzt und nicht mit denen eines dedizierten Analyse Werkzeuges wie z.B. Elastic Search und Kibana vergleichbar.

2 Installation

Tyk kann in der Cloud oder on-premise im eigenen Unternehmen installiert werden. Eine hybride Installation ist ebenfalls möglich.

2.1 Cloud Setup

Das Aufsetzen einer Tyk Instanz in der Cloud des Hersteller ist in zwei Minuten erledigt. Nach der Angabe von Username und Passwort steht eine Instanz dem Anwender zur Verfügung. Da die Angabe einer Kreditkarte nicht erforderlich ist, kann ich jedem empfehlen mit einer Cloud Installation erst mal die Funktionen von Tyk zu erkunden. Der kostenlose Tarif ist auf 50.000 Aufrufe pro Tag begrenzt.

2.2 On-premise

Für die on-premise Installation stehen die folgenden Optionen zur Verfügung:

  • Installation über den Paketmanager von Ubuntu und Red Hat
  • Tarballs für andere Linux Systeme
  • Docker und Docker Compose
  • Vagrant
  • Kubernetes

Die lokale Installation gestalt sich wesentlich aufwendiger und komplexer als bei anderen Produkten. Zunächst ist die Dokumentation zur Installation über die Webseite und github verteilt. Es gibt zur Installation verschiedene Quickstarts und Demos. Nach mehreren erfolglosen Installationsversuchen mußte ich feststellen, dass meine Dokumentation veraltet ist. Schließlich gelang mir eine Docker Installation. Dazu mußte eine Redis und eine Mongo NoSQL Datenbank installiert, eine Konfiguration angepasst und in der /etc/hosts Datei Einträge vorgenommen werden. Dann wird ein Bootstrap Skript ausgeführt, das dem Dashboard initiale Benutzer hinzufügt. Dieses Skript findet man in einem separaten github Repository. Als letzte Hürde muss ein Lizenzkey angefordert und eingetragen werden.

Eine on-premise Installation von Tyk im eigenen Unternehmen ist möglich. Die Hürden bei der Installation machen unmissverständlich klar, dass anstatt einer lokalen Installation eine in der Cloud des Hersteller gewünscht wird.

3 Sicherheit

Für die Absicherung von API stehen die folgenden Verfahren zur Autentifikation zur Verfügung:

  • API Keys ( Auth Token )
  • OAuth2 und Open ID Connect
  • JSON Web Token (JWT)
  • Gegenseitige SSL/TLS Zertifikate
  • HMAC
  • Basic Authentication

Die Zugriffsrechte auf das Tyk Dashboard lassen sich feingranular einstellen. Beispielsweise kann der Zugriff auf die Analytics Funktion eingeschränkt werden.

3.1 Tyk Identitiy Provider

Der Tyk Identitiy Provider ist ein separates Projekt, welches für die Token basierte Authentifizierung von Requests gegen die API Gateway Komponenten verwendet werden kann. Der Identity Provider kann dafür auf andere Identity Management Systeme wie LDAP oder OAuth2 zugreifen.

4 Eigene Erweiterungen

Mit Plugins kann Tyk erweitert werden. Für die Entwicklung der Plugins steht jede Sprache die Google RPC unterstützt wie z.B. JavaScript, Ruby oder Python zur Verfügung. Für Tyk gibt es eine Handvoll Plugins vom Tyk Team und von Benutzern aus der Community. Es gibt Plugins für: Bot Detection, Queuing und CorrelationIDs.

5 Dokumentation

Die Oberfläche des Dashboards ist mit ausführlichen Erklärungstexten versehen, die es ermöglichen Aufgaben wie z.B. das Einrichten eines Endpunktes ohne einen Blick in die Dokumentation durchzuführen.


Abbildung 10: Hinweise im Tyk Dashboard

6 Preise

Neben dem auf 50.000 Aufrufe pro Tag limitierten und kostenlosen Plan gibt es ab 200 Pfund pro Monat weitere Tarife. Beispielsweise 10 Million API Calls pro Tag für 2.000 Pfund.

7 Fazit

Wer seine APIs in erster Linie schützen möchte und eine übersichtliche Lösung sucht, kann bei Tyk fündig werden. Tyk bietet für die Absicherung u.a. OAuth2, OpenId Connect und API Keys. Die übrige Funktionalität der Komponenten API Gateway, Katalog und Analytics ist etwas beschränkt. Innerhin stehen die grundlegendsten Funktionen wie z.B. Quotas, Policies und JSON Validierung zur Verfügung.

Eine nicht-kommerzielle Entwicklerlizenz gibt es für Tyk kostenlos. Für eine on-Premise Installation oder eine kommerzielle Nutzung ist ein kostenpflichtiger Lizenzschlüssel notwendig. Der prominent auf der Homepage plazierte Slogan „FREE TO USE. FOREVER“ wirkt da ein wenig wie Hohn.

Wer ein Produkt für eine on-premise Installation sucht, sollte ein anderes Produkt auswählen. Die Installation ist im Vergleich mit den anderen Produkten umständlich und erfordert Linux und Docker Kenntnisse.

Positiv ist der Kontakt bei Supportanfragen, die teilweise vom Tyk Gründer selbst beantwortet werden.

Stärken

  • Unkomplizierte Cloud Installation
  • Gute Dokumentation in der Oberfläche, genau da wo sie gebraucht wird
  • Übersichtliches geordnetes Produkt, mit dem man sich schnell zurechtfindet
  • Große Anzahl von Mechanismen für die Autentifizierung ( API Keys, OAuth2, JWT, TLS, ..)
  • Konfigurierbare eMails für neue User und beim Freigeben von Keys
  • Rechte für Benutzer des Dashboards sind feingranular einstellbar
  • JSON Export für API Konfigurationen

Schwächen

  • Eine kommerzielle Nutzung ist kostenpflichtig
  • Unübersichtliche on-premise Installation
  • Begrenzte Suchmöglichkeiten bei Analytics und Logging
  • Swagger wird nur für die Dokumentation verwendet

Dieser Artikel beschreibt Tyk Gateway v2.7.4 und Tyk Dashboard v1.7.3.

Weitere Produkte

Dieser Artikel ist Teil einer Reihe über API Management in der weitere Open Source und kommerzielle Lösungen vorgestellt werden.

Lese auch die API Management Einführung