Vertikális felskálázás és horizontális felskálázás
Bevezetés az adatbázisok felhőalapú számításban történő skálázhatóságába
Adatok, adatok mindenhol – miről is van szó, amikor skálázhatóságról beszélünk
A felhőalapú számításban a skálázhatóság az a képesség, amellyel gyorsan és egyszerűen lehet növelni vagy csökkenteni egy informatikai megoldás vagy erőforrás méretét vagy kapacitását. Bár a skálázhatóság kifejezés utalhat bármely rendszernél az egyre nagyobb mennyiségű feladat kezelésére való képességére is, a vertikális felskálázás és a horizontális felskálázás kifejezések esetén gyakran adatbázisokról és adatokról van szó – mégpedig ezek igen nagy mennyiségeiről.
Az adatbázisok skálázhatósága a modern alkalmazásfejlesztők számára kiemelten fontos kérdés. Tegyük fel, hogy elindul egy új alkalmazás, és a használati igénye néhány felhasználóról világszerte több millió felhasználóra nő. A hatékony skálázhatóság az egyik legfontosabb képesség, amely segít az alkalmazásfejlesztőknek lépést tartani az igényekkel és minimalizálni az állásidőt.
Amikor horizontális és vertikális felskálázásról beszélünk, akkor arra helyezzük a hangsúlyt, hogy hogyan segít a skálázhatóság az alkalmazkodásban ahhoz, hogy kezelni tudjuk az adatok nagy mennyiségét és változó méreteit, valamint a számítási feladatok váltakozó mintázatait – azokét az adatokét, amelyek a felhőből, a mobileszközökről, a közösségi médiából és a big datából származnak.
Horizontális felskálázás és vertikális felskálázás
Az adatbázisok skálázhatósága alapvetően két típusra osztható:
Vertikális skálázás, illetve vertikális felskálázás és leskálázás, ahol igény szerint növelheti vagy csökkentheti a számítási teljesítményt vagy az adatbázisokat – teljesítményszintek módosításával vagy rugalmas adatbáziskészletek használatával, hogy automatikusan igazodjon a számítási feladatok igényeihez.
Horizontális skálázás, illetve horizontális felskálázás és leskálázás, ahol további adatbázisokat vehet fel, vagy kisebb csomópontokra oszthatja a nagy adatbázisokat. Ezt az adatparticionálási módszert horizontálisnak nevezik, és gyorsabban és egyszerűbben kezelhető a kiszolgálók között.
Vertikális felskálázás
A vertikális skálázást akkor használjuk, ha gyorsan kell intézkedni egy olyan teljesítménybeli probléma megoldásához, amely nem oldható meg a klasszikus adatbázis-optimalizálási technikákkal, például a lekérdezések módosításával vagy az indexeléssel. A vertikális felskálázás akkor hasznos, ha a számítási feladatoknál kiugróan magas szinteket kell kezelni, ahol a jelenlegi teljesítményszint nem elégít ki minden igényt. A vertikális felskálázás lehetővé teszi további erőforrások hozzáadását, és ezzel a csúcsterhelések egyszerűen kezelhetők. Ha az erőforrásokra már nincs szükség, a vertikális leskálázással visszatérhet az eredeti állapotba, és pénzt takaríthat meg a felhő költségeinél.
Vertikális felskálázást érdemes használni, ha:
- Azt látja, hogy a számítási feladatok már elérnek bizonyos teljesítménykorlátokat, például processzorra vagy az I/O-ra vonatkozóan.
- Gyorsan kell reagálnia a klasszikus adatbázis-optimalizálással nem megoldható teljesítménybeli problémákra.
- Olyan megoldásra van szüksége, amely lehetővé teszi a szolgáltatási szintek módosítását a változó késési követelményekhez való alkalmazkodás érdekében.
Horizontális felskálázás
Az alkalmazásfejlesztők a horizontális skálázást akkor veszik fontolóra, ha már nem jut elegendő erőforrás a számítási feladatokra még akkor sem, ha azok a legmagasabb teljesítményszinten üzemelnek. Horizontális skálázás esetén az adatok több adatbázisra, azaz partíciókra vannak felosztva a kiszolgálók között, és az egyes partíciók egymástól függetlenül skálázhatóak fel vagy le.
Hogyan javítja az adatok particionálása a skálázhatóságot? Ha egyedülálló adatbázist skáláz fel vertikálisan úgy, hogy erőforrásokat, például virtuális gépeket ad hozzá, az végül eléri majd a fizikai hardverkorlátot. Mivel az adatpartíciók mindegyike egy külön kiszolgálón van üzemeltetve, ha több partícióra kiterjedően osztjuk szét az adatokat, a rendszert szinte korlátlanul tudjuk horizontálisan felskálázni.
Bizonyos típusú adatbázis-technológiák, különösen is a nem relációs vagy NoSQL-adatbázisok olyan egyedi képességekkel rendelkeznek, amelyekkel az adatok horizontálisan felskálázhatók a horizontális particionálás használatával, és ez lehetővé teszi, hogy ezek nagy mennyiségű, egymáshoz nem kapcsolódó, nem meghatározott vagy gyorsan változó adatokat kezeljenek.
Néhány olyan relációs (SQL-) adatbázis-szolgáltatás, amely eredetileg fel- és leskálázásra használható szolgáltatásokat kínáltak, ma már egyre többször kínál olyan izgalmas lehetőségeket is, amelyek a nem relációs adatbázisok skálázhatósági előnyeivel is összehasonlíthatók. Az olyan rugalmas skálázású szolgáltatások, mint a rugalmas skálázású Microsoft Azure SQL Database és a rugalmas skálázású Azure Database for PostgreSQL lehetővé teszik a tárterület gyors, akár 100 TB-ra történő skálázását, és rugalmas, natív felhős architektúrát biztosítanak, amely lehetővé teszi a tárterület igény szerinti növekedését, a szinte azonnali biztonsági mentéseket és az adatbázisok gyors helyreállítását mindössze néhány perc alatt.
Horizontális felskálázást érdemes használni, ha:
- Olyan, földrajzilag elosztott alkalmazásai vannak, amelyekben minden alkalmazásnak hozzá kell férnie a régióban található adatok egy részéhez. Minden alkalmazás csak az adott régióhoz társított partícióhoz fér hozzá anélkül, hogy ez hatással lenne a többi partícióra.
- Van egy globális horizontális particionálási forgatókönyve, például a terheléselosztás, amelynél nagy számú földrajzilag elosztott ügyfél van, amelyek adatokat szúrnak be a saját dedikált partícióikba.
- Maximálisan kihasználta a teljesítményt akár a szolgáltatás legmagasabb teljesítményszintjénél is, vagy ha az adatok nem férnek el egy egyedülálló adatbázisban.
Automatikus skálázás
Az automatikus skálázás az a folyamat, amely dinamikusan egyezteti egymással az erőforrásokat annak érdekében, hogy azok megfeleljenek a teljesítményre vonatkozó követelményeknek. Az elvégzendő feladatok mennyiségének növekedésével az alkalmazásoknak további erőforrásokra lehet szükségük ahhoz, hogy fenn tudják tartani a kívánt teljesítményszinteket és ki tudják szolgálni a növekvő igényeket. Ha az igény csökken és a további erőforrásokra már nincs szükség, felhőköltségeket takaríthat meg azzal, ha egy automatikus szolgáltatás felszabadítja a már nem használt erőforrásokat.
Az automatikus skálázás a felhőben futtatott környezetek rugalmasságának előnyeit használja. A felügyeleti terheket azzal csökkenti, hogy kevésbé van szükség arra, hogy a rendszer üzemeltetői folyamatosan döntéseket hozzanak erőforrások hozzáadásával vagy eltávolításával kapcsolatban, vagy hogy ellenőrizzék a rendszer teljesítményét.
Bár az alkalmazások skálázásának két fő módja van – vertikális és horizontális – a vertikális skálázás automatizálása kevésbé gyakori, mert a vertikális felskálázásánál gyakran megtörténik, hogy a rendszer ideiglenesen elérhetetlenné válik az újbóli üzembe helyezés során.
Automatikus skálázást a leggyakrabban horizontális skálázásnál használunk, mivel a horizontális fel- vagy leskálázás csupán egy erőforrás példányainak hozzáadását vagy eltávolítását jelenti, miközben az alkalmazás megszakítás nélkül fut tovább az új erőforrások kiépítésekor. Ha az igény csökken, az erőforrások zökkenőmentesen és üzemszünet nélkül leállíthatók és felszabadíthatók.
Számos felhőalapú rendszer szolgáltatója, köztük a Microsoft Azure is támogatja az automatikus horizontális skálázást.
Gyakori kérdések
-
Adatbázisnak nevezzük az összefüggő információk bármilyen gyűjteményét, amelyet úgy tárolnak és rendszereznek, hogy azzal megkönnyítsék a kezelést és a hozzáférést. Ahogy egyre nagyobb ütemben jönnek létre új adatok és adattípusok, az adatok rendszerezése, hozzáférhetővé és biztonságossá tétele is egyre nagyobb kihívást jelent. Az adatbázis-kezelő rendszer (angolul „database management system”, betűszóval DBMS) felügyeleti eszközöket is tartalmaz, és gyakran használatos rendkívül nagy mennyiségű adatok kezelésére.
Folyamatosan születnek új adatbázistípusok és technológiák annak érdekében, hogy alkalmazkodni tudjanak a felhőből, a mobileszközökről, a közösségi médiából és a big data-rendszerekből származó óriási adatmennyiséghez.
További információ az adatbázisokról -
A NoSQL-adatbázisokat gyakran nem relációs vagy „nem csak” SQL-adatbázisoknak is nevezik. Ezek olyan adatbázis-technológiák, amelyek az adattárolást és a lekérést a hagyományos, relációs (SQL-) adatbázisoktól eltérő módon kezelik.
A NoSQL-adatbázisoknál nincs szükség előre definiált sémára, és több adatmodellt is használhatnak, így rendkívül hatékonyan képesek kezelni nagy mennyiségű strukturálatlan adatokat, és a big data típusú adatbázisprojektek méreteihez is megfelelőek.
További információ a NoSQL-adatbázisokról -
A PostgreSQL egy robusztus, nyílt forráskódú adatbázis, amely megbízhatóságáról és adatintegritásáról ismert, és relációs és nem relációs lekérdezésekkel is működik. A PostgreSQL széles körben használatos olyan területeken, mint a pénzügyi szolgáltatások, a gyártás, a kormányzati földrajzi információs rendszerek és a webtechnológia. A fejlesztők a PostgreSQL-lel hoznak létre alkalmazásokat, a rendszergazdák pedig megbíznak benne az adatok védelme terén.
További információ a PostgreSQL-ről -
A gyorsítótárazás technikáját gyakran alkalmazzák a fejlesztők és az informatikai szakemberek a rendszer teljesítményének és méretezhetőségének javítására. A gyorsítótárazás ideiglenesen átmásolja a gyakran használt adatokat egy olyan gyors tárolóba, amely az alkalmazás közelében található. Ha ez a gyors adattároló közelebb van az alkalmazáshoz, mint az eredeti forrás, akkor a gyorsabb adatkiszolgálás révén a gyorsítótárazással lényegesen javítható az ügyfélalkalmazások válaszideje. A fejlesztők gyakran úgy tervezik meg az alkalmazásokat, hogy a feldolgozott adatok gyorsítótárazva legyenek, majd a gyorsítótárat arra a célra használják fel, hogy gyorsabban szolgálják ki a kéréseket a hagyományos adatbázis-lekérdezéseknél.
További információ a gyorsítótárazásról -
Az adatok horizontális particionálása egy adatparticionálási típus, amely lehetővé teszi nagy méretű adatbázisok kisebbekre osztását, hogy gyorsabban és könnyebben lehessen kezelni őket a kiszolgálókon.
További információ az adatbázisok horizontális particionálásáról -
A szolgáltatásként nyújtott platformra gyakran PaaS-ként is hivatkozunk (ez az angol „platform as a service” betűszava). Ez egy felhőszolgáltató által kínált szolgáltatás, amely igény szerint használható környezetet biztosít alkalmazások fejlesztéséhez, teszteléséhez, szállításához és kezeléséhez. A szolgáltatásként nyújtott platform segítségével a fejlesztők egyszerűbben készíthetik el webes vagy mobilalkalmazásaikat, és a fejlesztéshez szükséges kiszolgálók, a tárhely, a hálózat és az adatbázisok háttér-infrastruktúrájának kialakításával és felügyeletével sem kell foglalkozniuk.
További információ a PaaS-ról
Erőforrások
Gyorsútmutatók és tanulási modulok
Ismerje meg a felhő méretezhetőségét az Azure-ral
Olyan átfogó megközelítést ismerhet meg a vertikális felskálázáshoz és a horizontális felskálázáshoz, amely megfelel a saját helyzetének akár a helyszíni, akár a többfelhős, akár a peremhálózati környezetekben. Az Azure adatbázis-szolgáltatási csomagjai a teljes mértékben felügyelt relációs, NoSQL-, és memórián belüli adatbázisok széles választékát kínálják mind jogvédett, mind nyílt forráskódú motorok használatával, hogy kielégíthesse a modern alkalmazások fejlesztőinek igényeit.
Időt és pénzt takaríthat meg az infrastruktúra automatizált kezelésével – beleértve a skálázhatóság, a rendelkezésre állás és a biztonság automatizálási megoldásait.
Kapcsolódó termékek és szolgáltatások
Azure SQL
A felhőbeli SQL-adatbázisok termékcsaládja rugalmas lehetőségeket biztosít az alkalmazások migrálására, korszerűsítésére és fejlesztésére
Azure Cosmos DB
Gyors NoSQL-adatbázis nyílt API-kkal bármilyen mérethez
Azure PostgreSQL
Teljes mértékben felügyelt, intelligens és méretezhető PostgreSQL
Azure SQL Database
Felügyelt intelligens SQL a felhőben
Azure SQL Managed Instance
Felügyelt, mindig naprakész SQL-példány a felhőben
SQL Server on Virtual Machines
SQL Server-es számítási feladatok migrálása a felhőbe egyszerűen a legalacsonyabb TCO-val
Azure Database for MySQL
Teljes mértékben felügyelt, skálázható MySQL-adatbázis
Azure Maria DB
Felügyelt MariaDB-adatbázisszolgáltatás alkalmazásfejlesztőknek
Azure Cache for Redis
Az alkalmazásokat nagy átviteli sebességű, alacsony késleltetésű adateléréssel gyorsíthatja fel
A felügyelt adatbázisokkal korlátlanul skálázhat
A Microsoft Azure által kezelt adatbázisokkal az alkalmazások fejlesztésére koncentrálhat, és egyszerűbbé teheti a munkavégzést