Alkalmazások felhőbeköltöztetése

A felhőalapú technológiák bevezetése napjainkban szinte minden vállalatot érint. Míg egyesek még mindig hezitálnak, sokan már részben vagy teljesen a felhőbe költöztették alkalmazásaikat. Az alkalmazásportfólió felhőbe való áthelyezése összetett folyamat, amely időt és alapos tervezést igényel. Számos vállalat jelenleg is ezen az úton halad, törekedve a teljes vagy részleges átállásra.

Egy vállalat számára, amely akár több száz rendszert tartalmazó, összetett alkalmazásportfólióval rendelkezik, kihívást jelenthet eldönteni, mely alkalmazásokat és milyen módon migrálják a felhőbe. A lehetőségek széles skálája létezik, kezdve azzal, hogy egy alkalmazást nem költöztetnek át, vagy kivezetik, folytatva az alkalmazás felhőalapú megoldással történő helyettesítésén, egészen addig, hogy kisebb-nagyobb módosításokkal áthelyezik a felhőbe.

Kivezetés (Retire)
Vannak olyan alkalmazások, amelyeket nyugdíjazhatunk, és nem szükséges a felhőbe költöztetni. A kivezetés jó döntés lehet, ha az alkalmazás funkcióit már más alkalmazások lefedik vagy integrálhatók más rendszerekbe, illetve ha az alkalmazást alig vagy egyáltalán nem használják. Továbbá, ha a vállalat működési modellje vagy stratégiája megváltozik, és az alkalmazásra nincs már szükség, a kivezetés ésszerű megoldás.

Megtartás (Retain)
Ha egy alkalmazásnak speciális hardver követelményei vannak, amelyek a felhőben nem biztosíthatók, vagy olyan szigorú adatvédelmi és szabályozási előírások vonatkoznak rá, hogy a felhőbe költöztetése jogi akadályokba ütközhet, akkor a helyes döntés az alkalmazás helyi infrastruktúrán tartása. Amikor egy alkalmazás kiemelten kritikus az üzletmenet szempontjából, és bármilyen változtatás jelentős kockázatot hordoz, vagy olyan komplex integrációkkal rendelkezik a helyi infrastruktúrán vagy ahhoz kapcsolt alkalmazásokkal, hogy a költöztetés nagyon magas költségeket vonna maga után, akkor szintén megfontolandó a megtartás. Ezekben az esetekben a megtartás nem feltétlenül végleges döntés; előfordulhat, hogy bizonyos előkészületek elvégzése után újra érdemes megvizsgálni a kérdést.

Áttérés felhő változatra (Repurchase)
Számos helyi infrastruktúrán működtetett alkalmazásnak létezik már felhős változata, ami megkönnyíti a felhőbe költözést, hiszen csak át kell térni a felhős verzióra. A vállalatok számára kritikus, nagy alkalmazások esetében, mint például az ügyfélportálok és vállalatirányítási rendszerek, a szállítók jellemzően már rendelkeznek felhőalapú változatokkal is. Előfordulhat az is, hogy a szóban forgó alkalmazásnak nincs közvetlen felhős változata, de elérhető egy olyan felhőalapú alkalmazás, amely megegyező vagy fejlettebb funkcionalitást kínál, és akár a migrációt is támogatja. Ilyen esetekben a megegyező vagy jobb funkcionalitású felhőalkalmazásra való áttérés az ésszerű döntés.

Mikor kell módosítani az alkalmazásokat?
A kritikus nagy alkalmazások mellett, amelyekre a szállítók jellemzően már kínálnak felhőmegoldásokat, a vállalati alkalmazásportfóliókban számos egyéb alkalmazás is található, amelyek szintén az üzleti folyamatokat támogatják, és gyakran kapcsolódnak ezekhez a nagy alkalmazásokhoz. Ezek az alkalmazások gyakran egyedi fejlesztésűek, ami még komplexebbé teszi a döntést a felhőbe migrálás mikéntjéről. A megoldás spektruma az egyszerű felhőbe helyezéstől kezdve, ahol az alkalmazás a felhőben fut, egészen addig terjed, hogy a felhőplatform előnyeit kihasználva átalakítjuk az alkalmazást teljes értékű felhőalkalmazássá. Ahogy egyre jobban alkalmazkodunk a felhőhöz, az átfutási idő és a költségek is ennek megfelelően növekednek.

Felhőben futtatás (Rehosting)
Vannak olyan helyzetek, amikor a vállalatok időszűkében vannak, korlátosak a rendelkezésre álló erőforrások, vagy nagyon kockázatkerülők a felhőbe való migráció során. Ilyenkor optimális lehet a felhőben való futtatás, amihez minimálisan vagy egyáltalán nem kell átalakítani az alkalmazásokat. A vállalatok gyakran akkor is fontolóra veszik ezt a megoldást, amikor csak a hardvert szeretnék megújítani anélkül, hogy új hardvert vásárolnának, vagy előkészítik az alkalmazás későbbi átalakítását felhőalapú alkalmazássá. A felhőmigráció elején gyakran ez a migrációs típus a legmegfelelőbb, különösen akkor, amikor az alkalmazást fejlesztő csapat még tanulja a felhő technológiát, hiszen a felhőben futtatás egy gyorsan megvalósítható kezdeti lépés.

Teendők
Még ennél a migrációs típusnál is számos teendőnk akad. Az alkalmazásokat futtató helyi virtuális gépeket át kell migrálnunk a felhőbe, beleértve a webszervereket, alkalmazásszervereket, adatbázisokat és egyéb komponenseket. El kell végeznünk a szükséges hálózati beállításokat, és át kell konfigurálnunk az alkalmazás beállításait a felhő környezetnek megfelelően. Továbbá biztosítanunk kell, hogy az alkalmazás telepítési eljárásai a felhőben is működjenek, és az alkalmazást integrálni kell a felhőben elérhető logging, monitoring és mentési megoldásokkal. Szükség esetén az alkalmazást át kell kapcsolnunk a felhőben elérhető azonosítási és hozzáférés-szabályozási szolgáltatásokra is. Végül, szükség lehet bizonyos felhő, alkalmazás komponens (pl. adatbázis) vagy alkalmazás paraméter hangolására a megfelelő teljesítmény elérése érdekében.

Előnyök-hátrányok
A felhőben futtatásra való áttérés kétségtelen előnye, hogy rövid átfutási idővel, költséghatékonyan és viszonylag kockázatmentesen megoldható, mivel nincs szükség kódmódosításra. Azonban ez a megoldás nem használja ki a felhőspecifikus előnyöket, mint a rugalmasság, a skálázhatóság és a költséghatékonyság teljes mértékben.

Felhőre optimalizálás (Replatforming)
Amikor a vállalatok jobban szeretnék kihasználni a felhőspecifikus előnyöket, akkor jön szóba a felhőre optimalizálás, amely az alkalmazás kisebb mértékű átalakításával teszi ezt lehetővé. Ilyen előnyök közé tartozik a felhőplatformok nagyfokú rugalmassága és skálázhatósága, valamint a felhőalapú tárolási és adatbázis-megoldások, amelyek lehetővé teszik a költségek optimalizálását. Felmerülhet az igény olyan felhőspecifikus szolgáltatások használatára is, mint például a big data elemzés és a mesterséges intelligencia, amelyek magasabb fokú integrációt igényelnek a felhőplatformokkal. A felhőre optimalizálás logikus állomás a lépésenkénti migráció során is, amikor egy vállalat először csak a felhőben futtatja az alkalmazást, majd optimalizálja, végül teljes értékű felhőalkalmazássá alakítja.

Teendők
A felhőben futtatás környezetet érintő teendőin felül ebben az esetben már az alkalmazás kódját is módosítanunk kell. Az alkalmazás infrastruktúráját átalakítjuk, ami alapvetően konténerizálást jelent, például Docker használatával. A konténerizálás megkönnyíti a telepítést és a skálázást a felhőben. Bizonyos funkciók esetében érdemes átgondolni a serverless szolgáltatások használatát, mint például az AWS Lambda. A serverless szolgáltatások esetében az adott funkció futtatásához még szervereket sem kell kezelnünk, ami nagy előrelépés a skálázhatóság és a költséghatékonyság terén. Kiválasztjuk, hogy az alkalmazás különböző adatait mely felhős objektum- vagy struktúrált adat tárolón vagy adatbázis-szolgáltatáson tároljuk, és átalakítjuk az alkalmazás adattárolási mechanizmusait ennek megfelelően. Az alkalmazás integrációját is újratervezzük, részlegesen vagy teljesen áttérve a felhő által nyújtott API Gateway és Message Queue szolgáltatások használatára.
 
Előnyök-hátrányok
A felhőre optimalizálás előnye, hogy jobb teljesítmény és költséghatékonyság érhető el, mint a felhőben futtatás esetében, anélkül, hogy az alkalmazást jelentős mértékben meg kellene változtatni. Azonban hátránya, hogy mivel csak részleges átalakításokat végez, még nem használja ki teljes mértékben a felhő nyújtotta összes lehetőséget.

Felhőalkalmazássá alakítás (Refactoring/Re-architecting)
Ennek a típusú migrációnak a nehézségét jelzi, hogy az első kérdés gyakran az, hogy meglévő alkalmazás jelentős átalakításáról vagy teljes újraépítéséről van szó. Számos oka lehet annak, hogy a vállalatok ezt az utat választják. Amikor az alkalmazásnak nagyon magas skálázási elvárásoknak kell megfelelnie, ami a jelenlegi architektúrával nem lehetséges, ez a helyes út. Ez a döntés akkor is indokolt, ha az alkalmazás teljesítményproblémákkal küzd vagy magasak a karbantartási költségei, amelyek a jelenlegi architektúrára vezethetők vissza. További indikáció ehhez a migrációs típushoz, ha az alkalmazás elavult technológiái nem teszik lehetővé modern fejlesztési és üzemeltetési eljárások használatát, vagy ha az alkalmazás nem tud megfelelni az adatvédelmi és szabályozói előírásoknak. Erős érv a felhőalkalmazássá alakítás mellett, ha a vállalati stratégiából fakadó üzleti, technológiai, integrációs elvárásoknak, valamint a gyors üzleti változások lekövetésének csak így tud megfelelni az alkalmazás.

Teendők
A felhőre optimalizáláson felül egy jelentős teendőnk van: az alkalmazás architektúrájának újratervezése és ennek megfelelő átalakítása. A cél az, hogy olyan alkalmazásunk legyen, amely az üzleti funkciók mentén több önálló darabként futtatható. A hagyományos alkalmazások esetében használt „clean architecture,” amely a különböző alkalmazásrétegek elkülönítésére szolgál, mellett bejönnek azok az architekturális elvek, amelyek az alkalmazás üzleti funkciók mentén történő szervezését támogatják, mint például a mikroszolgáltatások (microservices), mikro front-endek és a vertical slice megközelítés. Az alkalmazás architektúrájának átalakításán felül nagyobb mértékben támaszkodunk a serverless szolgáltatásokra és a felhő nyújtotta integrációs képességekre, mint az API gateway-ek és a message queue-k. A felhőalkalmazássá alakítás során elengedhetetlen a CI/CD folyamatok teljes körű automatizálása is.

Előnyök-hátrányok
A felhőalkalmazássá alakítás kétségtelen előnye, hogy maximálisan kihasználja a felhő nyújtotta rugalmasságot és skálázhatóságot. Hátránya viszont, hogy idő- és költségigényes, valamint jelentős kockázatokat hordoz a megvalósítása.

További tartalmak