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 kiemelten fontos kérdés a modern alkalmazásfejlesztők számára. 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.
A horizontális és a vertikális skálázásról szóló ismertetésünk arra koncentrál, hogy miképpen segít a skálázhatóság alkalmazkodnunk a hatalmas adattömbök puszta méretéhez, az adatmennyiségek változásához és a számítási feladatok változásában megmutatkozó szabályszerűségekhez, és hogy kezelni tudjuk ezeket – a felhőből, a mobileszközökről, a közösségi hálózatokról a big datából származó adatok alapján.
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ó:
A vertikális skálázás (vertikális fel- vagy leskálázás) az, amikor igény szerint növelhetjük vagy csökkenthetjük a számítási teljesítményt vagy az adatbázisokat – vagy a teljesítményszintek módosításával, vagy rugalmas adatbáziskészletek használatával, hogy automatikusan igazodjunk a számítási feladatok igényeihez.
A horizontális skálázás (horizontális fel- vagy leskálázás) az, amikor további adatbázisokat adunk hozzá, vagy kisebb csomópontokra osztunk fel egy nagy adatbázist. Ezt a horizontális particionálás nevű adatpartíciós módszer használatával végezzük el, amely gyorsabban és könnyebben kezelhető több kiszolgálóra kiterjedően.
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 kezelhető 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 feladatokban kiugrások mutatkoznak, és ilyenkor a jelenlegi szintű teljesítmény nem felel meg minden igénynek. 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égeibő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 az erőforrások maximális teljesítménnyel működnek. 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ók fel vagy le.
Hogyan javítja az adatok particionálása a skálázhatóságot? Ha öná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. Mindegyik adatpartíció külön kiszolgálón üzemel, így ha több partícióra 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ázisokolyan egyedi funkciókra képesek, amelyekkel az adatok horizontálisan felskálázhatók a horizontális particionáláshasználatával. Ez lehetővé teszi, hogy a nagy mennyiségű, egymáshoz nem kapcsolódó, nem meghatározott vagy gyorsan változó adatokat kezeljenek.
Egyes olyan relációs (SQL-) adatbázis-szolgáltatások, amelyek eredetileg fel- és leskálázásra használható szolgáltatásokat kínáltak, ma már egyre többször kínálnak 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.
-
Globális horizontális particionálást igénylő szituációt kell kezelnie, például terheléselosztást, amelynél nagy számú földrajzilag elosztott ügyfél van, és ezek a saját dedikált partícióikban helyezik el az adatokat.
-
Maximálisan kihasználta a teljesítményt akár a szolgáltatás által nyújtott legmagasabb teljesítményszintjén is, vagy ha az adatok nem férnek el egy önálló adatbázisban.
Automatikus skálázás
Az automatikus skálázás az a folyamat, amely dinamikusan hozzáigazítja az erőforrásokat a rendszer teljesítménykövetelményeihez. 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 sokszor megtörténik, hogy a rendszer átmenetileg 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, 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.
-
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 adatot, és a big data típusú adatbázisprojektek méreteihez is megfelelőek.
-
A PostgreSQL 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.
-
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.
-
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 szolgáltatásként nyújtott platformokról
Források
Gyorsútmutatók és tanulási modulok
Ismerje meg az Azure-ral elérhető felhőskálázhatóságot
Ismerkedjen meg a vertikális felskálázás és a horizontális felskálázás átfogó szemléletmódját, 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-alapú számítási feladatok migrálása a felhőbe 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
A nagy átviteli sebességű, alacsony késleltetésű adateléréssel felgyorsíthatja az alkalmazásokat
-
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