Technology

Csurgai Gábor, a Telvice fejlesztési igazgatója
Csurgai Gábor, a Telvice fejlesztési igazgatója
Forrás: ITB

Alkalmazás? Monitoring? Automatizálás!

A szoftverek szerepének jelentős felértékelődése és komplexitásuk növekedése magával hozta az igényt, hogy az IT alkalmazások működését jobban megismerjük, és ebből kiindulva több területen, így például az SLA-k kapcsán is új alapokra helyezzünk eddig használt minőségi és rendelkezésre-állási kritériumokat. A modern, mikroszerviz és konténer alapú felhős alkalmazások azonban az alkalmazásteljesítmény-monitoring eszközöktől is új megközelítést igényelnek, kitüntetve ebben is az automatizáció szerepét.

Amikor a felhasználók türelmetlenebbek, mint valaha, és minden kattintás, minden tranzakció eredményét azonnal látni akarják, függetlenül a háttérben zajló folyamatok bonyolultságától, az alkalmazások teljesítménymenedzsmentje fontosabb lesz, mint valaha. Nem véletlen, hogy az erre szolgáló APM (Application Performance Management) eszközök nagyjából tíz éve, a webes alkalmazások népszerűvé válásával kezdtek komolyabban terjedni – mondja Csurgai Gábor, a Telvice fejlesztési igazgatója.

Az addig használatban lévő monitoring eszközök ugyanis inkább a hardveres infrastruktúra és az operációs rendszer működését figyelték, az alkalmazások működéséről közvetlen, mélyebb információt nem szolgáltattak. Az APM-eszközök, amelyek közül a Dynatrace tett szert piacvezető szerepre, viszont az alkalmazásba automatikusan beépülő agentek révén pontosan meg tudták mérni, hogy egy-egy tranzakció melyik szoftvermodulban mennyi időt tölt. Manuális munkával akár kódszintig le lehetett fúrni, és kideríteni, hogy mondjuk melyik Java-metódus felelős a hosszú válaszidőért. A nagy bankok és számos államigazgatási szereplő is felhasználója lett itthon a Dynatrace-nek, teszi hozzá Csurgai Gábor.

 

Intelligensen és automatikusan
A technológia fejlődése, például a mikroszervizekre vagy konténerekre alapuló megoldások terjedése viszont szükségessé tette ezen eszközök továbbfejlesztését. A Dynatrace-nél például az alapoktól újraírták a rendszert, és ennek részeként szakítottak azzal, hogy minden egyes környezetre (Java, .Net, PHP, C++) külön agentet kell telepíteni. Másrészt a felhőben futó, konténerizált, mikroszervizes, dinamikusan változó alkalmazások esetében az adatok humán értelmezése, értékelése gyakorlatilag lehetetlenné vált.

A Dynatrace mintegy két éve megjelent új változata több fontos újítást is tartalmazott, folytatja Csurgai Gábor. Egyrészt, a több különféle agentet felváltotta egyetlen, de intelligens beépülő modul. Az agent automatikusan települ a szerverekre, begyűjti a hosztokra, alkalmazásokra, processzekre és a köztük lévő kapcsolatokra vonatkozó információkat, majd ezeket egy valós idejű, kétdimenziós diagramon meg is jeleníti. A monitorozott alkalmazások tekintetében a legtöbb jelenlegi vagy közelmúltbeli programnyelvet és technológiát egyaránt kezelni tudja az új OneAgent.

A másik nagy újítása a rendszernek, hogy a tranzakciókról folyamatosan érkező információkat fejlett, második generációs mesterséges intelligenciát használó rendszer elemzi. Működése kezdeti szakaszában rövidebb-hosszabb periódusokra meghatározza a teljesítmény normálnak tekinthető küszöbértékeit (természetesen a felhasználó is állíthat be ilyen küszöböket), majd jelzi az azoktól való eltérést. A teljesítmény monitorozása folyamatos, az idő múlásával és az adatok gyűlésével (már viszonylag rövid idő után is) a kiértékelési szempontok automatikusan finomodnak és a működés jellemzői alapján változhatnak, pontosabbá válnak, miáltal egyre mélyebb hibaanalízist és kiterjedtebb hibaok meghatározást biztosít a Dynatrace AI.

A rendszer a műszaki részletek helyett a végső felhasználói élményt helyezi a középpontba, szabadszöveges módon kijelzi a problémát és az okára vonatkozó információt, hangsúlyozza Csurgai Gábor. Továbbra is megmarad a manuális mélyelemzés lehetősége, de a mesterséges intelligencia leveszi a teher nagy részét az üzemeltetők válláról, hogy nekik már tényleg csak a bonyolultabb esetekkel kelljen foglalkozniuk.


SLA és tesztelés új alapokon
A modern alkalmazások működésének mélységben történő feltárása és automatikus elemzése további lehetőségek előtt is megnyitotta a kaput. A Telvice a Dynatrace-szel kapcsolatos tudására alapozva két megoldást is kifejlesztett. Az egyik a jó öreg SLA-definíciókhoz használt méréseket és kiértékelési pontokat helyezi teljesen új alapokra, lehetőséget kínálva olyan szolgáltatási szerződések kialakítására, amelyek jobban tükrözik az ügyfelek érdekeit, illetve közvetlenebb információt, pontosabb képet adnak az ügyfelek számára fontosabb alkalmazás-futási jellemzőkről.


A hagyományos SLA-szerződések ugyanis alapvetően kétféle mérőszámra építettek: egyrészt az infrastruktúra teljesítményét, kapacitásuk rendelkezésre állását mérték (hálózat, processzor, memória, egyebek), másrészt a szolgáltatásmenedzsment működését értékelték (hány hibajegy keletkezett, milyen gyorsan oldották meg, stb). Ezek viszont magas szintű mérőszámok, és igazából nem mondják meg, hogy maguk az alkalmazások hogyan működtek, mennyire álltak rendelkezésre. „A Dynatrace viszont lehetőséget kínál arra, hogy folyamatosan és automatizáltan monitorozzuk az alkalmazások teljesítményét. Így az IT rendszerek rendelkezésre állási szerződéseihez az SLA (Service Level Agreement) méréseket is köthetjük a Dynatrace által szolgáltatott széleskörű mérési adatokhoz, illetve azok felhasználó számára fontos, a működés jóságát jellemző szettjéhez. Ehhez készítettünk mi egy rendszert, amelyben tehát a felhasználó definiálhatja a számára fontos SLA paramétereket. A mérési adatok bekerülnek egy külső adatbázisba, ahol megtörténik az elemzés és a kívánt jelentések előállítása. A kulcsszó a folyamatosság és az automatizáltság: az SLA-indikátorok alakulása minden pillanatban nyomon követhető, a kiértékelés pedig automatikus”, foglalja össze a lényeget Csurgai Gábor.

A Telvice másik, automatizációhoz kötődő megoldása a folyamatos fejlesztést és tesztelést támogatja. Webes és mobil környezetekben alapvető igény, hogy az alkalmazás vagy szolgáltatás rendszeresen frissüljön. Ezt csak úgy lehet hatékonyan megvalósítani, ha a fejlesztés utáni tesztelési és üzembe állítási feladatok minél nagyobb hányada automatizáltan zajlik. A Telvice az egyik legelterjedtebb automatizálási keretrendszerre, a Jenkinsre építette fel saját megoldását. Amikor a fejlesztők lezárnak egy buildet, elindíthatják a folyamatot, amely utána automatikusan végigmegy a statikus kódelemzésen és dinamikus tesztfajtákon (például a funkcionális, regressziós és/vagy terheléses teszten), a tesztkörnyezetbe való integráción (itt a lépéssor integráns részét képező Dynatrace-es méréssel már a működési hatékonyságát is elemezni tudják), és még biztonsági tesztet is lefuttatnak. Ez egyrészt szigorúbb metodikai hátteret ad, csökkenti a manuális munkát és az ebből adódó hibalehetőségeket, részben öndokumentáló, és összességében jobb minőséget és az új verziók gyorsabb, hibamentesebb éles üzembe állítását biztosítja.