Fission kiszolgáló nélküli platform monitorozása és teljesítménymérése

OData támogatás
Konzulens:
Dr. Maliosz Markosz
Távközlési és Médiainformatikai Tanszék

Az utóbbi években jelentős teret nyertek a Function-as-a-Service és serverless technológiák. Ezek együttesen olyan platformokat írnak le, amelyek jelentősen megkönnyítik egy fejlesztő életét azzal, hogy programrészleteket tudnak elosztottan futtatni anélkül, hogy a fejlesztőnek a háttérinfrastruktúrát szerveznie vagy akár ismernie kellene. A kereskedelmi megoldások mellett több nyílt forráskódú projekt is létrejött, ezek egyike a Fission.

A Fission egy Kubernetes natív serverless platform, ami indulása óta annyi szolgáltatással bővült, amennyivel már egy figyelemre méltó opcióvá nőtte ki magát. A feladatom az volt, hogy a Fission-t mélyebben tanulmányozzam, aminek része a működés megismerése, a használat kitapasztalása és a Kubernetes pod-okban futó függvények végrehajtásának hatékonysági vizsgálata.

Az első lépés az volt, hogy házi körülmények között virtuális gépekből létrehoztam egy Kubernetes klasztert, amelyet megfelelően felkonfiguráltam, majd ezután feltelepítettem a Fission-t és a hozzá tartozó monitorozáshoz szükséges szolgáltatásokat, azaz a Prometheus-t, a Grafana-t és a Jaeger-t. Minden lépést dokumentáltam a telepítés során, beleértve a felmerülő problémákra talált megoldásokat is. Ezután megismertem a platform működését és a használatának lehetőségeit. Időmérésre készülve kidolgoztam megoldásokat arra, hogy az eredmények kimentésre kerüljenek a mérést végző alkalmazásokból (Hey, Wrk), illetve hogy a mérések idejében létrejövő összes adat a Prometheus monitorozó rendszerből ki legyen exportálva pillanatkép formájában.

A cél a Fission platform hatékonyságának vizsgálata volt, amihez hozzáférést kaptam egy nagy teljesítményű szerver klaszterhez, amely kitűnően szolgált pontos mérések végzéséhez. Egy a klasztertől különálló szervert is használhattam a mérések indítására, így azok számítási igénye nem volt hatással a klaszter működésére. Szkriptet készítettem, hogy egyrészt ne kelljen manuálisan végig vezényelni a teljes mérést, másrészt azért, hogy bármikor megismételhető legyen bárki számára akár egy másik klaszterben is. Felkonfiguráltam a monitorozó szolgáltatásokat, hogy megfelelően meglehessen tekinteni a CPU használatot és a függvény futási időket a mérések alatt.

A mérési eredményekből látszik, hogy kellően gyorsan végrehajtja a kéréseket a Fission, de nagyobb terhelésnél sokszor hibával tér vissza kellően nagy erőforrásokkal rendelkező skálázható pod-ok nélkül. Az alapértelmezett, skálázás nélküli beállítások egy függvénynél jók általános felhasználásához, mert az első függvényindítás így is gyors. Az automatikus skálázás megfelelően működik, ezáltal igény szerinti szolgáltatás is létre hozható. Fission egy ígéretes projekt folyamatosan bővülő szolgáltatásokkal, de sok időt kell rászánni a mindennel egybevett teljeskörű használatához.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.