Tyk - Open Source API Management im Vergleich

Von: Thomas Bayer
Datum: 2018-05-09

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 können die meisten Tyk Funktionen wie Transformation oder URI Rewriting über eine Web Konsole konfiguriert werden.


Abbildung 1: API Endpoint Designer

1.2 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 2: Verteilung der Aufrufe im Tyk Dashboard

Über Fehler gibt es ebenfalls Statistiken.


Abbildung 3: 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 4: Detailansicht einer Nachricht im Log Browser

Die Analyse Möglichkeiten von Typ sind begrenzt und nicht mit denen eines dedizierten Analyse Werkzeuges vergleichbar.

1.3 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 5: 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.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.

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 6: 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 7: 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 8: Anfordern eines API Keys im Catalogue

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

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 Dokumentation

In die Oberfläche des Dashboards eingebaute Textboxen mit ausführlichen Erklärungen ermöglichen Aufgaben wie z.B. das Einrichten eines Endpunktes ohne einen Blick in die Dokumentation innerhalb von wenigen Minuten durchzuführen.


Abbildung 9: Hinweise im Tyk Dashboard

5 Preise

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

6 Fazit

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 soilde Linux und Docker Kenntnisse sowie die Recherche auf unzähligen Seiten und Foren.

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
  • Konfigurierbare eMails für neue User und beim freigeben von Keys

Schwächen

  • Eine kommerzielle Nutzung ist kostenpflichtig
  • Umübersichtliche on-premise Installation
  • Dashboard ist frei konfigurierbar
  • Begrenzte Suchmöglichkeiten bei Analytics und Logging

Dieser Artikel bezieht sich auf die geteste Verion 1.6.1.

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