Napjainkban a publikus számítási felhők egyre elterjedtebbé válnak, hála annak
a kényelemnek, amit az IT szolgáltatások futtatásához szükséges infrastruktúra
kezelésének és fenntartásának átvállalásával nyújtanak. Emellett bizonyos
üzemmódokban – általában PaaS, azaz Platform as a Service szinten – számos olyan
funkcióval rendelkeznek, melyek nagymértékben segítik a rajtuk futtatott alkalmazás
rugalmas és hatékony skálázását.
Ám ezeket a lehetőségeket csak egy a PaaS környezet sajátosságaira
megfelelően felkészített alkalmazás képes igazán kihasználni. Van, hogy egy
hagyományos környezetben egyszerűen implementálható program architektúráját
jelentős mértékben meg kell változtatni, vagy ki kell egészíteni ahhoz, hogy illeszkedjen
ebbe a környezetbe.
Szakdolgozatomban egy olyan webes alapú, valósidejű csevegő alkalmazás
elkészítésének főbb lépéseit mutatom be, mely a Microsoft Azure platformján futva
képes kihasználni a PaaS nyújtotta lehetőségeket.
A nehézséget ebben az esetben a beépített terheléselosztó Round-Robin
ütemezése jelentette, mely lehetetlenné teszi a webes alapú, valósidejű értesítések
alapjául szolgáló Reverse AJAX technika alkalmazását.
Ennek megkerülésére az Azure úgynevezett InstanceInput végpont-típusát
használtam fel, mely lehetővé tette a beépített terheléselosztó megkerülését, és egyfajta
affinitásos (vagy ragadós) terheléselosztás megvalósítását.
Dolgozatomban röviden áttekintem a felhasznált technológiák sajátosságait,
majd bemutatom az elkészült program architektúráját, és a megvalósítás érdekesebb
részleteit. Végül egy egyszerűbb terhelésteszttel vizsgálom meg, valóban skálázható
lett-e az alkalmazást.