Az Event Streaming és esemény-vezérelt architektúra forradalma
Az IT fejlődése során sokféle szoftverarchitektúra jelent meg, melyek célja olyan struktúrát és megközelítést adni a szoftver tervezéshez, amivel a felmerülő igények egy széles köre jól kezelhetővé válik. Ilyen az esemény-vezérelt architektúra (event-driven architecture, EDA) is, ami a szoftverrendszerek működésének középpontjába az „események” létrehozását és feldolgozását helyezi.
Egy esemény ebben a szövegkörnyezetben a rendszer állapotában történő valamilyen változás. Ez nagyon sokféle lehet a konkrét alkalmazás funkciójától függően, pl. egy felhasználó a web-shop-ban a kosarába helyez egy elemet, vagy egy mobil alkalmazásban a felhasználó módosította elérhetőségi adatait, vagy a vállalati logisztikai rendszer érzékeli, hogy egy adott árucikkből a raktárkészlet egy adott szint alá csökkent.
Az EDA tipikusan egy elosztott rendszert feltételez, ahol az egyes szoftverkomponensekkel (pl. mikroszolgáltatásokkal) történik valamilyen esemény, amiről más érintett komponensek értesülhetnek és arra reagálni tudnak. Ezen események és interakciók együttese adja ki azt az üzleti működést, amit a szoftverrendszer megvalósít.
Az EDA előnye, hogy az egymással eseményeken keresztül, aszinkron módon kommunikáló komponensek csak lazán csatoltak, ezért azok fejlesztése és karbantartása könnyebbé válik, a rendszer megbízhatósága és skálázhatósága pedig megnő, különösen valós idejű reagálást igénylő feladatoknál. Nem véletlen, hogy az EDA elterjedése a mikroszolgáltatás-architektúra, és a felhő alapú illetve konténeres futtatókörnyezetek térnyerésével esett egybe.
Event streaming
Az EDA-hoz szorosan kapcsolódó fogalom az eseményfolyam, vagy event streaming. Ennek a néven kívül semmi köze a Netflix illetve Spotify jellegű video vagy audio streaminghez. Az event stream egy adott eseménytípus, azaz az állapotváltozások egy időben egymás után következő sorozata. Az event streaming platform pedig az a köztesszoftver, aminek segítségével az alkalmazások vagy mikroszolgáltatások egyszerűen létrehozhatnak eseményeket (amit egy adatcsomag, egy üzenet ír le), vagy „feliratkozhatnak” őket érintő eseménytípusokra és értesülhetnek mások által létrehozott eseményekről. Ez a kommunikációs minta markánsan más jellemzőkkel rendelkezik, mint a web-en leggyakoribb, szinkron, ún „REST API” alapú kapcsolatok.
A legelterjedtebb event streaming platform a nyílt forráskódú Apache Kafka, egy jól skálázható, hibatűrő megoldás a fenti feladatokra. A legtöbb kereskedelmi event streaming platform is a Kafka-ra épül, azt kiegészítve további funkciókkal és gyártói támogatással.
Az esemény-vezérelt architektúra megvalósításához tipikusan szükség van egy event streaming platformra, mint az eseményeket kezelő szoftver-infrastruktúrára. Ugyanakkor az event streaming-et nem csak EDA-ban lehet használni, egy gyakori használat például a különböző rendszerek által generált naplóbejegyzések, log-ok eljuttatása egy központi naplóelemző rendszerbe.
Teljeskörű eseménykezelő platform az IBM-től
Az IBM a szűkebb értelemben vett event streaming-en túlmutató, teljeskörű IBM Event Automation platformot kínál, elsősorban üzletileg kritikus rendszereket üzemeltető nagy- és középvállalatok számára. A megoldás három önálló, de egymással jól integrált komponensből áll:
- Az IBM Event Streams maga a streaming infrastruktúra, ami az Apache Kafka projekten alapul, de azt kiegészíti számos további funkcióval, köztük egy grafikus adminisztrátor felülettel, az egyes eseménytípusokhoz tartozó adatszerkezeteket leíró Schema Registry-vel, és a konténer platformokon történő könnyebb üzemeltetést támogató ún. Kubernetes Operator-ral.
- Az IBM Event Endpoint Management lehetőséget biztosít a Kafka topic-ok eseményforrásokként történő leírására, katalogizálására és kiajánlására. Az alkalmazásfejlesztők felfedezhetik ezeket a végpontokat és az alkalmazásaikban a rendszer részét képező Event Gateway-en keresztül, szabályozott módon elérhetik azokat.
- Az IBM Event Processing egy low-code fejlesztői és runtime környezet az események valós idejű feldolgozására, az egyes üzenetekben szereplő adatok tetszőleges transzformálására. A runtime a nyílt forráskódú Apache Flink projektre épül, kiegészítve azt egy grafikus low code fejlesztési élménnyel.
Az IBM megközelítés előnye, hogy együttesen lefedi az eseménykezeléssel kapcsolatos IT feladatok teljes életciklusát: a hatékony fejlesztést, a könnyű felhasználhatóságot, a nagy teljesítményű futtatókörnyezetet és az IT biztonsági szempontokat. A nyílt forráskódú komponensek egymástól független összessége helyett egy gyártói támogatással rendelkező, integrált, end-to-end rendszert nyújt, ezáltal jelentős IT élőmunka megtakarítást és üzleti kockázat csökkentést jelent.
Az Intalion Rendszerintegrátor Kft. szakértői tevékenységgel támogatja nagy- és középvállalati ügyfeleit, legyen szó esemény-vezérelt szoftvertervezésről és fejlesztésről, Apache Kafka vagy IBM event streaming platform bevezetésről vagy üzemeltetéstámogatásról. A cikk publikálást az Arrow ECS Kft. támogatta.
[Az Intalion Kft. IBM Gold Partner megbízásából, az Arrow ECS Kft támogatásával készített, fizetett anyag.]