Tyk - Open Source API Management im Vergleich

Von: Thomas Bayer
Datum: 9. Mai 2018
Aktualisiert: 19. März 2019

Tyk ist ein in der Programmiersprache Go geschriebenes Open Source API Gateway mit einer kommerziellen API Management Plattform. Die Lösung beinhaltet ein Gateway, ein Dashboard, ein Developer Portal sowie Auswertungen zur API Nutzung.

1 Komponenten

Die Funktionen von Tyk sind auf das Gateway und das Dashboard verteilt. Das Dashboard beinhaltet den Endpoint Designer, Analytics und das Developer Portal.

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. Die Abbildung unten zeigt den Designer mit einer Reihe von Endpunkten.


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 dutzenden 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 JWT Tokens 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. Das 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

Tyk Pump kann die Analysedaten neben der MongoDB auch anderen Systemen zur Verfügung stellen. Dazu gehören:

  • ElasticSearch
  • Graylog
  • InfluxDB
  • Moesif
  • Prometheus
  • Splunk
  • StatsD

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, empfiehlt sich mit einer Cloud Installation erst mal die Funktionen von Tyk zu erkunden. Der kostenlose Tarif limitiert die Anzahl der Aufrufe pro Tag.

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

Eine lokale Installation mit Docker gestalte sich aufwendig und zeitintensiv. 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 die 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. Danach 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.

Update (18. März 2019):
Der Hersteller tyk.io hat sich gemeldet und die Komplexität der Installation zurückgewiesen. Für eine unkomplizierte Installation gibt es eine Docker Compose Konfiguration. Mit dieser war ich tatsächlich in der Lage in 15 Minuten eine komplette Installation mit Gateway, Dashboard und MongoDB aufzusetzen. Die Installation ist laut tyk.io nicht für die Produktion oder Lasttests geeignet. Die Modification der Host-Datei, die Eingabe eines Lizenzschlüssels und das Ausführen eines Setup-Skriptes sind dennoch notwendig. Der Hersteller arbeitet momentan daran, den Benutzer bei der Installation besser zu unterstützen.

3 Sicherheit

Für die Absicherung eines API stehen die folgenden Verfahren zur Authentifikation zur Verfügung:

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

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

3.1 Tyk Identity 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 das Produkt gibt es eine Handvoll Plugins vom Tyk Team und von Benutzern aus der Community. Es gibt u.a. 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 limitierten kostenlosen Plan gibt es ab 450 US Dollar pro Monat weitere Tarife. Beispielsweise 1 Million API Calls pro Tag für 600 Dollar.

7 Fazit

Beim tyk Produkt sollte man zunächst den Verwendungszweck mit der Lizenz abgleichen. Das API Gateway und die Pumpe für Analysedaten sind bei der Lösung von tyk Open Source. Eine kommerzielle Nutzung dieser Komponenten ist kostenlos möglich. Das Dashboard sowie das Developer Portal sind Closed Source und nur kostenpflichtig für kommerzielle Anwendungen nutzbar. Privatpersonen oder gemeinnützige Vereine können Dashboard und Developer Portal kostenlos nutzen.

Mit 4275 Sternen ( Stand 19.3.2019) ist das Gateway von tyk recht beliebt. Es steht unter der Open Source MPL 2 Lizenz und kann auch ohne das Dashboard über ein API angesprochen werden.

Das Dashboard ist komfortabel und bietet vielfältige Einstellungsmöglichkeiten. Über Policies läßt sich der Zugriff auf APIs feingranular und individuell einstellen.

Tyk bietet umfangreiche Security-Funktionen nicht nur für die Absicherung von APIs. Beispielsweise läßt sich der Zugriff auf das Dashboard über den Identity Broker mit einem LDAP Server verwalten.

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

  • Das Dashboard und das Developer Portal sind Close Source
  • Umständliche on-premise Installation
  • Swagger wird nur für die Dokumentation verwendet. Keine Integration in den Endpoint Designer.

Dieser Artikel beschreibt Tyk Gateway v2.7.6 und Tyk Dashboard v1.7.5.

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