Cloud alapú technológiák skálázhatósága

Cloud alapú technológiák skálázhatósága
Kutatási beszámoló
Készítette: Gyöngyösi Mihály Mátyás
2013. február 28.

Az elmúlt félévben a Central-Europe on Demand Zrt-nél lehetőségem volt megismerni egy nagyméretű, elosztott, felhőn alapuló rendszert és ezen kívül alkalmam volt, hogy megvizsgáljam a core és a hozzá kapcsolódó modulok működését, ezek lassú/optimalizálható pontjait. Ezen pontok  gyorsabbá tételére javaslatokat tettem, majd megvizsgáltam ezek implementációs lehetőségeit.  Három fontosabb területtel foglalkoztam.
Az első terület a Cloud Services Manager (CSM) szoftver egyik modulja, amelynél a csomagok provizionálása, felhasználókhoz rendelésével foglalkozik. A feladatom az volt, hogy ezek a hozzárendelések, illetve ezek lekérdezése a lehető leggyorsabban történjen. Itt egy eléggé összetett részről  beszélünk, ahol nagyon sok komplex objektummal dolgozik a rendszer és ezek betöltése sok helyen lassúvá teszi az elosztott szoftver futását. Munkám során az első feladatom az volt, hogy megtaláljam ezeket az úgynevezett forró pontokat. Eközben sikerült rengeteg tapasztalatot szereznem a Visual Studio beépített profile-erének működésével kapcsolatban. Miután a lassú pontokat megtaláltam, a kutatásaim következő lépése a gyorstás megtervezése, majd a kísérleti implementáció, melynek során új tapasztalatokra tettem szert a .NET  4.0-s keretrendszer Task Parallel Library-jával kapcsolatban, melynek segítségével a napjaink többmagos processzorain lehet párhuzamosan végrehajtható feladatokat  gyorsan és skálázható módon implementálni. Kritikus kérdés ilyen implementációk során, hogy meddig, mennyire éri meg párhuzamosítani, hogy a sok szálváltásnak és a szálak várakoztatásának ne legyen jelentős többletköltsége.
A második nagy terület, amit megvizsgáltam, a CSM átalakítás alatt lévő projektje, ahol tanulmányoztam a régi, illetve az új rendszer közötti különbségeket, illetve megvizsgáltam hogyan lehet megvalósítani egy új rendszert, hogy a régivel teljesen kompatibilis legyen az elérési rétegben, ami ebben az esetben Windows Communication Foundation alapokon íródott. Ezen kívül megvizsgálhattam, hogy milyen irányvonalak mentén lehetséges egyedi funkciókat tartalmazó projekteket Workflow Foundation-ről sima WCF-es projektre alakítani.
 A harmadik, amit megvizsgáltam a CSM frontend része, ami az ASP.NET Webforms-ra épül, ahol a  Telerik által fejlesztett ASP.NET-es kontrolcsomagot használja a rendszer. Miután megismerkedtem a Telerikes kontrollokkal és a frontend felépítésével megkerestem a Google Chrome webfejlesztői eszközei, illetve a Visual Studio profiler-ének segítségével, hogy melyek lehetnek a lassú pontok, majd ezen pontok részletesebb megvizsgálása után javaslatokat tettem ezeknek az javítására, átalakítására. Ezen kívül javaslatokat tettem különböző új javascript framework-ök további vizsgálatára, amivel javítani lehet a frontend válaszidejét, illetve elősegítik a javascript kódok struktúrálását.
Az utolsó általam vizsgált projekt a CSM-hez tartozó CSM Service, amely azokat a modulokat fogja össze, amelyek különböző háttérfolyamatoksat végeznek a CSM szoftver számára. Ezen modulok vizsgálatánál a szálkezelés optimalizálására és a hibakezelő eljárásokra tettem javaslatokat.
A cégnél töltött idő alatt sok nagyon tehetséges és a saját területén professzionális tudással rendelkező csapattárssal ismerkedhettem meg, akik mindig segítőkészek voltak, ha elakadtam, vagy valamit nem sikerült befejeznem.  Remélem, hogy a kutatási eredményeimet hatékonyan tudják felhasználni az éles környezetbe történő implementáció során.

Gyöngyösi Mihály Mátyás