Kterou API gateway?

Petr Jůza
OpenWise Tech blog
Published in
2 min readNov 25, 2019

Vybírali jsme na projektu API gateway a pokud i někdo z vás bude stát před stejným úkolem, pak se mu níže uvedené informace a porovnání mohou hodit. Hledali jsme gateway primárně pro externí použití, tedy pro vystavení rozhraní třetím stránám, ale i jako rozhraní mezi našimi frontendy a backendy.

Do užšího výběru jsme zařadili dvě klasické API gateway a jednu aplikační (programovací) gateway:

Pozn. bohužel Medium podporuje tabulky velice omezeně, tak jsem byl nucen přehled vložit jako obrázky, bohužel bez aktivních odkazů.

Porovnání API gateway 1
Porovnání API gateway 2

Pro náš konkrétní projekt jsme se rozhodli vybrat Tyk API gateway z těchto důvodů:

  • rádi bychom zůstali v open-source (free) variantě a ta nám v případě Tyku přijde “úplnější”, tj. k dipozici není jen samotná API gateway, ale i řada podpůrných nástrojů. Nicméně pokročilé funkce (např. vývojářský portál) jsou k dispozici až v placené verzi.
  • z pohledu integrace je pro nás důležité napojení na IDM (Keycloak) přes OpenID a nejsme si jisti, jak moc to bude funkční v open-source verzi Konga (pozn. řada pluginů má free a enterprise verzi)
  • GoLang je pro nás příjemnejší než Lua, navíc výběr jazyků pro psaní pluginů je celá řada
  • Tyk je dle několika srovnání pomalejší než Kong, ale toto pro nás nebylo hlavní kritérium. Také možnosti škálování resp. jednoduchost vytvoření clusteru je u Konga lepší, ale pro nás opět není tak důležité.
  • jasné a srozumitelné platební podmínky, naopak u Konga jsem to nebyl schopen vůbec zjistit

Proč jsme nevybrali jiná řešení?

WSO2 API Manager

  • špatné zkušenosti z již existujících projektů
  • obecně kvalita WSO2 produktů nám přijde velice slabá

Netflix Zuul

  • přímá alternativa k Spring Cloud Gateway
  • porovnání se Spring Cloud Gateway již proběhlo na předchozím projektu, tedy v kategorii “aplikační gateway” již máme jasno a s úspěchem používáme

API Umbrella

Cílem bylo vybrat (aspoň v této fázi výběru) řešení umožňující on-premise nasazení, proto jsme vyřadili např.:

--

--