A technológiai fejlődés ütemét jól jellemzi a szolgáltatásorientált architektúra (SOA) koncepciója, amelynek alig tíz évre volt szüksége ahhoz, hogy elterjedjen, klasszikussá érjen, majd immár másodvirágzását élje a microservice alapú struktúrában. A microservice integrációs pattern gyors terjedése mögött a technológiai előnyökön kívül elsősorban az üzleti innováció áll. A lightweight komponensek, azaz a microservice pattern használatával számos előnyös tulajdonságot tudunk kihasználni az architektúra kialakításánál:
- A microservice-ek egy adott funkcióra fókuszálnak, így könnyen átlátható a működésük, gyorsan fejleszthetők, módosíthatók.
- Architekturálisan „cloud-ready” a könnyű deploy és self-containing természetből adódóan
- Az egyes microservice-ek deployment-je gyors.
- Minden microservice egymástól függetlenül fejleszthető, új verziók kiadása könnyedén megoldható.
- Az egyes microservice-ek teljesítménye jól skálázható, szintén függetlenül egymástól.
- Az egyes microservice-ek nem feltétlenül kell, hogy azonos technológián készüljenek el. Ezek lehetnek különbözőek, illetve a későbbiekben át lehet térni új technológiákra microservice-enként.
- A microservice modell lehetővé teszi a használatalapú költségmegosztást a belső osztályok vagy akár külső üzleti partnerek között, ezzel elősegítve új üzleti modellek létrejöttét.
Ezen előnyök érdekében a frontend rendszerek mögötti üzleti logika rétegét érdemes microservice pattern alapján felépíteni. Kérdés, hogy a frontendek által meghívott microservice-eket, hogyan tegyük elérhetővé. Vagyis, szükségünk van-e egy middleware integrációs rétegre vagy rábízzuk magunkat az alkalmazásokra? A gyakorlat azt mutatja, hogy már viszonylag alacsony komplexitású rendszereket is érdemes közbülső integrációs réteggel ellátni. Az alkalmazások eltérő technológiája, kora, minősége; valamint az egész rendszer jövőtállósága érdekében nem érdemes a middleware-t kihagyni. A microservice-ek és cloud alkalmazások világában ezt az eszközt API gateway-nek nevezzük. Nézzük, mik egy API gateway főbb funkciói!
- Security: SQL Injection, DoS támadások elleni védelem
- Policy control
- Identity and access management
- Authorization
- Adat formátum konverzió
- Protokoll konverzió
- Kompozíció/Dekompozíció
Mint láthatjuk ezek a funkciók a „klasszikus” SOA rendszerek szívét jelentő ESB-k (Enterprise Service Bus) alapfunkciói, így mondhatjuk, hogy az API gateway-ek gyakorlatilag második generációs ESB-k. Bár, ennyi erővel azt is mondhatnánk, hogy sokadik generációs hálózati tűzfalak, hiszen a felhasználás mindkét eszköztől jelentősen különbözik. Az ESB-k esetében a consumer és a provider általában a vállalati architektúrában helyezkedik el, ellenben az API gateway consumer oldala sok esetben egy harmadik, a vállalati architektúrán kívül álló fél. Lásd például a tipikus felhasználási területet, a PSD2-t. Ugyanakkor a közeli rokonságot jól mutatja, hogy a legnagyobb ESB gyártók sorra jönnek ki API Gateway megoldásaikkal, hiszen az alapfunkcionalitás átfedésben van a klasszikus ESB-k funkcionalitásával.
Az API gateway-ek tipikus használata menedzselt (kontrollált) elérést biztosítani a frontendek számára a különböző microservice-khez. Egy mobil frontend és egy browser alapú frontend esetében például más adatmennyiséget és más adatkörök elérését kell biztosítani, ami különböző microservice-ek, vagy operációk meghívását jelenti. Ezeknek a professzionális kompozícióját tudja biztosítani egy API gateway. Fontos funkció továbbá az is, hogy a consumer oldal azonosítsa magát, és ez alapján az API gateway el tudja dönteni, hogy az adott híváshoz van-e joga a consumer oldalnak. Emellett eldöntheti, hogy adott consumer típus esetén mely microservice-hez kell routolni a hívást például teljesítményigény alapján.
Az API gateway-ek a klasszikus szabványok mellett (web-service, SOA, XML, Java EE service implementációk), a kialakulóban lévő felhőalapú gazdaság népszerű technológiáit is támogatják (REST API, microservice, JSON, node.js).
Egyértelműen látszik, hogy a klasszikus, befelé forduló ESB-k mellett a vállalatoknak rohamléptékben szükséges API integrációs réteget is kiépíteniük. Ennek hiányában lemaradhatnak a termékesedő micro és cloud service-k használata nyújtotta üzleti előnyökről, amelyek messze túlmutatnak az egyébként fontos költséghatékonyságon. A valódi tét a szervezetek számára, hogy képesek-e idejében csatlakozni a szárnyát bontogató API-alapú gazdaságba.