Cloud vagy nem cloud?

Posted 2023-03-19 14:00:00 by sanyi ‐ 5 min read

Pár gondolat a cloud vs on-premise környezet témában

Az utóbbi pár évben jóformán a csapból is az folyik, hogy vége az on-premise hosting környezeteknek, a jövő a cloud.

Természetesen mind a cloud mind az on-premise iránynak vannak harcos képviselői, de én inkább azon a véleményen vagyok hogy mindkettőnek megvan a maga helye.

Az is igaz hogy vannak esetek amikor csak az egyik vagy a másik út járható. Ha mondjuk egy vállalat biztonsági irányelvei megkövetelik egy jól védett on-premise környezet használatát, ami akár teljesen el van szeparálva az internettől, akkor nyilván nem opció a cloud. Ugyanígy nem jön szóba az on-prem környezet ha holnapra kell felhúzni egy globális redundanciával rendelkező, döntően az interneten keresztül kínált szolgáltatást a semmiből.

Ami a cloud-ot igazán vonzóvá teszi, az az egyszerűsége: beregisztrálok, beállítok egy bankkártyát a fiókhoz és már húzhatom is fel az infrastruktúrámat. Ha akarom kicsiben, manuálisan, ha akarom óriási méretekben, automatizáltan. A keserű pirula akkor jön, amikor hó végén megkapom a számlát (főleg ha jó nagy adatforgalma lett a rendszernek).

Ezzel szemben egy on-premise környezetet meg kell tervezni, jókora beruházásra van szükség, időbe (adott esetben hónapokba) telhet a megfelelő hardver beszerzése, majd jó sok mérnökóra a környezet felépítése, bekonfigurálása. Innentől kezdve viszont a cloud-hoz képest meglepően olcsón el tud ketyegni a rendszer.

Kezdetben a cloud jelentős előnye volt az on-prem rendszerekkel szemben az automatizálhatóság, az API-n keresztüli menedzselhetőség, de mostanra ez a probléma megoldódott: többféle open source megoldásra is építhető olyan private cloud jellegű cluster amin aztán API-n keresztül menedzselhető a virtualizált infrastruktúra kialakítása. Az on-prem clusteren ugyanúgy felhúzható mondjuk terraform segítségével egy komplett virtualizált infrastruktúra mint bármelyik publikus cloud szolgáltatónál.

A cloud szolgáltatók mellett szólhat a sok értéknövelt szolgáltatás: automatikusan menedzselt adatbázisok, kubernetes cluster-ek, mesterséges intelligencia alapú szolgáltatások, serverless technológiák, stb. Lehet ezekhez hasonlót csinálni lokálisan, de ezek mind sok munkát igényelhetnek. Ami az ilyen értéknövelt szolgáltatásokkal kapcsolatban probléma lehet, az a költség és a vendor lock-in. Kezdetben hihetetlen olcsónak tűnhet mondjuk egy AWS Lambda alapú szolgáltatás, de ha elkezd nőni a forgalom akkor már fájdalmasabbá válhat a dolog, innen pedig egy másik serverless platformra váltani egyáltalán nem triviális feladat.

Nézzünk pár példát, kicsitől a nagyobb felé haladva.

A minimál verzió: egy picike weboldal, minimális forgalommal, komolyabb rendelkezésreállási igények nélkül. Ilyenkor általában valamilyen shared hosting környezet vagy egy VPS szolgáltató a választás, ezen szinten a saját hardver szóba sem jön és még a cloud is túl drága.

Ha megjelennek a rendelkezésreállási igények, ha már nem elég egyetlen kis VPS akkor jön az a szakasz amikor a cloud jó opció: ezen a szinten egy saját on-premise cluster-be beruházni még túl költséges és nehézkes lépés lenne, a cloud-on viszont könnyedén kielégíthetőek az elvárások.

Ha eljutunk odáig hogy már van úgy 50-100 virtuális gép, jó 1-2 TB össz. memória igénnyel, akkor érdemes lehet elgondolkodni a saját cluster-en. Fel lehet húzni egy minimum 3-5 fizikai gépből és két switchből álló kis cluster-t, ami már teljesen redundáns, jó rendelkezésreállást tud adni és a megfelelő szoftver környezettel egy jól menedzselhető kis private cloud-ként tud funkcionálni. Amit a public cloud-hoz képest biztosan nem fog tudni: kvázi végtelen skálázhatóságot és globális redundanciát. Ezen a szinten a saját cluster még egyetlen adatközpontra korlátozódik és a kapacitása az alatta levő hardver által determinált, ami ugyan bővíthető, de nem egyik napról a másikra. Összefoglalva: ezen a szinten a saját cluster akkor opció, ha a workload kapacitás igénye stabil, nem ingadozik szélsőségesen és nem elvárás a globális redundancia, a rendkívül magas rendelkezésreállás. További fontos szempont, hogy egy ilyen rendszer üzemeltetéséhez szaktudás, know-how kell, enélkül nincs értelme belefogni. Ami a költségeket illeti, ebben a mérettartományban a hardver egyszeri költsége úgy 10-20 millió Ft-tól indul, a hosting mondjuk úgy havi 300 ezer Ft körüli nagyságrendtől. Ezzel szemben a cloud alternatíva minimum havi 3-4 millió Ft körüli költséget jelenthet.

Itt már bejön a hibrid verzió is: akár olyan formában hogy a cloud az on-prem környezet backup megoldásaként funkcionál, akár olyan formában hogy a terhelés stabil, kiszámítható része az on-prem környezeten fut, a terhelési csúcsokat viszont a cloud segítségével kezeli le a rendszer.

Ha tovább megyünk, akkor jön az a szituáció amivel nemrégiben a 37Signals' a Basecamp üzemeltetője szembesült: Save $7 million on cloud by spending $600k on servers, says 37Signals' David Heinemeier Hansson

Ezen a szinten már több adatközpontban húzható fel saját infrastruktúra, ezáltal globálisan is redundáns megoldás biztosítható. Mint a cikkből is látszik, a megtakarítás a public cloud-hoz képest jelentős lehet, de egy ilyen rendszer megtervezése, felépítése és üzemeltetése már bizony komoly mérnöki munkát igényel.

Szintén az on-premise rendszerek mellett teszi le a voksot néhány nagyobb multinacionális cég, akik már akár komplett adatközpontokat képesek felhúzni maguknak, a public cloud szolgáltatókhoz nagyon hasonló felépítésű saját infrastruktúrával.

Természetesen van az a helyzet amikor a pénz nem számít, csak az hogy a szolgáltatás a lehető legjobb minőségű legyen és a lehető legkevesebbet kelljen "vacakolni" a hardverrel. Ilyenkor már valószínűleg nem is az a kérdés hogy cloud vagy nem cloud hanem hogy egy cloud vagy több cloud. Láttunk már olyat hogy az AWS is letérdelt egy-egy régióban rövidebb időszakokra, ilyenkor jól jöhet ha a szolgáltatás akár több nagy cloud szolgáltató infrastruktúrájára is épít és képes rugalmasan áthelyezni a terhelést egyikről a másikra.

Címkék:
cloud on-prem on-premise