Vertikální navýšení kapacity vs. škálování na více instancí
Úvod do škálovatelnosti databází v cloud computingu
Všude samá data – co myslíme pojmem škálovatelnost
Škálovatelnost v cloud computingu je schopnost rychle a snadno zvětšit/zmenšit velikost nebo zvýšit/snížit výkon IT řešení nebo prostředků. Přestože pojem škálovatelnost může označovat schopnost jakéhokoli systému zvládnout rostoucí množství práce, pokud mluvíme o vertikálním navýšení kapacity a škálování na více instancí, často mluvíme o velkém množství databází a dat.
Škálovatelnost databází je pro vývojáře moderních aplikací na prvním místě. Řekněme, že vznikne nová aplikace a poptávka po ní se zvýší z několika uživatelů na miliony uživatelů po celém světě. Jednou z nejdůležitějších schopností, která pomáhá vývojářům aplikací držet krok s poptávkou a minimalizovat výpadky, je schopnost efektivního škálování.
Tato debata o škálování na více instancí a vertikálním navýšení kapacity se zaměřuje na to, jakým způsobem nám škálovatelnost pomáhá adaptovat se na obrovské objemy a širokou škálu dat generovaných cloudy, mobilními zařízeními, sociálními médii a velkými objemy dat, měnící se objemy dat a posuny ve vzorech zatížení.
Škálování na více instancí vs. vertikální navýšení kapacity
Na základní úrovni je možné škálovatelnost databází rozdělit na dva typy:
Vertikální škálování neboli vertikální navýšení nebo snížení kapacity, kdy podle potřeby zvyšujete nebo snižujete výpočetní výkon nebo počet databází, a to změnou úrovní výkonu, nebo s využitím fondů elastických databází, které se automaticky upravují s ohledem na zatížení.
Horizontální škálování neboli škálování na více nebo méně instancí, kdy s využitím přístupu k dělení dat označovaného jako horizontální dělení přidáváte další databáze nebo rozdělujete velké databáze na menší uzly, které umožňují rychlejší a snadnější správu napříč servery.
Vertikální navýšení kapacity
Vertikální škálování se používá v případě, že potřebujete rychle reagovat a vyřešit problémy s výkonem, které není možné vyřešit klasickými technikami optimalizace databází, jako jsou změny dotazů nebo indexování. Vertikální navýšení kapacity je užitečné v případě, že si chcete poradit se špičkami zatížení, kdy vaše aktuální úroveň výkonu nedokáže uspokojit všechny požadavky. Vertikální navýšení kapacity umožňuje přidat další prostředky, abyste snadno zvládli špičky zatížení. Jakmile už tyto prostředky nebudou potřeba, můžete se pak vertikálním snížením kapacity vrátit do původního stavu a ušetřit náklady na cloud.
Kdy využít vertikální navýšení kapacity:
-
Zaznamenali jste, že vaše úlohy dosahují některých limitů výkonu, jako jsou limity procesoru nebo vstupně-výstupních operací.
-
Potřebujete rychle reagovat a vyřešit problémy s výkonem, které není možné vyřešit klasickou optimalizací databází.
-
Potřebujete řešení, které vám umožní měnit úrovně služeb s ohledem na měnící se požadavky na latenci.
Horizontální škálování na více instancí
Vývojáři aplikací začínají zvažovat škálování na více instancí nebo horizontální škálování, když pro své úlohy nemají dostatek prostředků, a to ani při použití nejvyšších úrovní výkonu. V případě horizontálního škálování se data rozdělí do několika databází (neboli horizontálních oddílů) napříč servery a jednotlivé horizontální oddíly umožňují nezávislé vertikální navýšení nebo snížení kapacity.
Jak dělení dat zlepšuje škálovatelnost? Pokud vertikálně navyšujete kapacitu jedné databáze přidáváním prostředků, jako jsou virtuální počítače, nakonec dosáhnete limitu fyzického hardwaru. Vzhledem k tomu, že jsou jednotlivé datové oddíly hostované na samostatných serverech, tak pokud rozdělíte data napříč několika horizontálními oddíly, můžete systém téměř neomezeně škálovat na více instancí.
Některé typy databázových technologií, zejména nerelační databáze nebo databáze NoSQL, nabízejí jedinečné schopnosti horizontálního škálování dat na více instancí horizontálním dělením databází, a díky tomu dokážou zpracovávat velké objemy dat, nesouvisející, neurčitá nebo rychle se měnící data.
Některé relační databázové služby (SQL), které původně nabízely vertikální navýšení nebo snížení kapacity, navíc začínají nabízet skvělé možnosti, které odpovídají výhodám škálovatelnosti nerelačních databází. Služby hyperškálování, jako jsou Microsoft Azure SQL Database Hyperscale a Azure Database for PostgreSQL Hyperscale umožňují uživatelům rychle škálovat úložiště až na 100 TB, nabízejí flexibilní architekturu nativní pro cloud, která umožňuje zvětšování úložiště podle potřeby, a umožňují téměř okamžité zálohování a rychlé obnovení databází během několika minut.
Kdy využít škálování na více instancí:
-
Máte geograficky distribuované aplikace, z nichž každá by měla mít přístup k části dat v dané oblasti. Každá aplikace bude mít přístup pouze k horizontálnímu oddílu přidruženému k dané oblasti, aniž by měla vliv na ostatní horizontální oddíly.
-
Váš scénář zahrnuje globální horizontální dělení, například vyrovnávání zatížení, kdy máte velký počet geograficky distribuovaných klientů, kteří vkládají data do svých vyhrazených horizontálních oddílů.
-
Dosáhli jste maximálních požadavků na výkon, a to i při použití nejvyšších úrovní výkonu vaší služby, nebo se vaše data nevejdou do jedné databáze.
Automatické škálování
Automatické škálování je proces automatické a dynamické úpravy prostředků tak, aby vyhovovaly požadavkům systému na výkon. Se zvyšujícím se objemem práce můžou aplikace vyžadovat další prostředky, aby si udržely potřebné úrovně výkonu nebo dokázaly vyhovět rostoucí poptávce. Pokud se poptávka sníží a další prostředky už nejsou potřeba, můžete snížit útratu v cloudu použitím automatické služby, která bude rušit přidělení nepoužívaných prostředků.
Automatické škálování využívá výhody elasticity prostředí hostovaných v cloudu. Snižuje režii spojenou se správou tím, že snižuje potřebu rozhodování systémových operátorů ohledně přidávání nebo odebírání prostředků nebo kontroly výkonu systému.
Existují dva hlavní způsoby škálování aplikací – vertikální a horizontální. Automatizace vertikálního škálování je však méně běžná, protože vertikální navýšení kapacity často vyžaduje, aby byl systém během opětovného nasazení dočasně nedostupný.
Automatické škálování je běžnější při horizontálním škálování, protože škálování na více nebo méně instancí představuje pouhé přidání nebo odebrání instancí prostředků a během zřizování nových prostředků nedojde k přerušení provozu aplikace. Pokud poptávka klesne, prostředky je možné bezproblémově a bez výpadků vypnout a zrušit jejich přidělení.
Řada poskytovatelů cloudových systémů, jako je Microsoft Azure, podporuje automatické horizontální škálování.
Nejčastější dotazy
-
Databáze je jakákoli kolekce vzájemně propojených informací uložených a uspořádaných tak, aby se s nimi dalo lépe pracovat a aby byly lépe přístupné. Vzhledem k závratnému tempu generování nových dat a datových typů je čím dál složitější udržet tato data uspořádaná, přístupná a zabezpečená. Ke zpracování obrovských objemů dat se často využívají systémy pro správu databází (DBMS), které zahrnují vrstvu nástrojů pro správu.
S ohledem na obrovské objemy a širokou škálou dat generovaných cloudy, mobilními zařízeními, sociálními médii a velkými objemy dat neustále vznikají nové typy databází a databázové technologie.
-
Databáze NoSQL, často označované jako nerelační nebo "nejen SQL", představují rozmanitou sadu databázových technologií, které zajišťují ukládání a načítání dat jiným způsobem než u tradičních relačních databází (SQL).
Databáze NoSQL nevyžadují předdefinované schéma a můžou využívat několik datových modelů. Díky tomu jsou velmi efektivní při zpracování velkých objemů nestrukturovaných dat a škálování databázových projektů s velkými objemy dat.
-
PostgreSQL je robustní opensourcová databáze, která pracuje s relačním a nerelačním dotazováním a je známá pro svou spolehlivost a integritu dat. PostgreSQL se běžně používá v oblastech, jako jsou finanční služby, výroba, vládní geografické informační systémy nebo webové technologie. Vývojáři s využitím PostgreSQL vytvářejí aplikace a správci PostgreSQL důvěřují s ochranou dat.
-
Ukládání do mezipaměti je běžná technika, kterou vývojáři a IT specialisté využívají ke zvýšení výkonu a zlepšení škálovatelnosti celého systému. Ukládání do mezipaměti funguje na principu dočasného zkopírování často používaných dat do rychlého úložiště umístěného v blízkosti aplikace. Pokud je toto rychlé úložiště dat umístěné blíž k aplikaci než původní zdroj, může se díky ukládání do mezipaměti výrazně zkrátit doba odezvy klientských aplikací, protože obsluha dat probíhá rychleji. Vývojáři často navrhují aplikace tak, aby se zpracovávaná data ukládala do mezipaměti a poté se mezipaměť znovu použila k rychlejšímu obsloužení požadavků než při standardních databázových dotazech.
-
Horizontální dělení dat je typ dělení dat, který umožňuje rozdělit velkou databázi na menší databáze, které umožňují rychlejší a snadnější správu napříč servery.
-
Platforma jako služba, často označovaná zkratkou PaaS, je služba od poskytovatele cloudu, která nabízí prostředí na vyžádání pro vývoj, testování, doručování a správu aplikací. Platforma jako služba umožňuje vývojářům snadno a rychle vytvářet webové nebo mobilní aplikace, aniž by se museli starat o nastavování nebo správu základní infrastruktury serverů, úložiště, sítě a databází, které jako vývojáři potřebují.
Zdroje informací
Prozkoumejte škálovatelnost cloudu v Azure
Seznamte se s komplexním přístupem k vertikálnímu navýšení kapacity a škálování na více instancí, který vyhovuje vašemu scénáři napříč místními, multicloudovými a hraničními prostředími. Řada databázových služeb Azure dává na výběr z několika plně spravovaných relačních databází, databází NoSQL a databází v paměti, postavených na proprietárních i opensourcových databázových strojích, které vyhoví všem potřebám vývojářů moderních aplikací.
Šetřete čas a peníze díky automatizované správě infrastruktury, včetně řešení automatizace škálovatelnosti, dostupnosti a zabezpečení.
Související produkty a služby
Azure SQL
Řada cloudových databází SQL nabízející flexibilní možnosti migrace, modernizace a vývoje aplikací
Azure Cosmos DB
Rychlá databáze NoSQL s otevřenými rozhraními API pro libovolné škálování
Azure PostgreSQL
Plně spravovaný, inteligentní a škálovatelný PostgreSQL.
Azure SQL Database
Spravovaná inteligentní služba SQL v cloudu.
Azure SQL Managed Instance
Spravovaná a vždy aktuální instance SQL v cloudu
SQL Server na virtuálních počítačích
Migrace úloh SQL Serveru do cloudu s nejnižšími celkovými náklady na vlastnictví.
Azure Database for MySQL
Plně spravovaná a škálovatelná služba MySQL Database
Azure Maria DB
Spravovaná databázová služba MariaDB pro vývojáře aplikací
Azure Cache for Redis
Zrychlení aplikací díky vysoké propustnosti a nízké latenci při ukládání dat do mezipaměti
-
Škálování bez limitů s využitím spravovaných databází
Zaměřte se na vytváření aplikací a usnadněte si práci s využitím databází spravovaných platformou Microsoft Azure.