Opskalering i forhold til udskalering
En introduktion til databaseskalerbarhed i cloudcomputing.
Data, data overalt – det, vi taler om, når vi taler om skalerbarhed
Skalerbarhed i cloudcomputing er muligheden for hurtigt og nemt at øge eller reducere en it-løsnings eller -ressources størrelse eller kapacitet. Selvom begrebet skalerbarhed kan henvise til et hvilket som helst systems mulighed for at håndtere en stigende mængde arbejde, mener vi ofte databaser og store mængder data, når vi taler om opskalering i forhold til udskalering.
Databaseskalerbarhed er yderst vigtigt for moderne appudviklere. Lad os sige, at en ny app lanceres, og efterspørgslen efter den stiger fra en håndfuld brugere til millioner af brugere over hele verden. En af de vigtigste muligheder for at hjælpe appudviklere med at holde trit med efterspørgslen og minimere nedetiden er muligheden for at skalere effektivt.
I denne samtale om udskalering i forhold til opskalering fokuseres der på de måder, skalerbarhed hjælper os med at tilpasse og håndtere enorme mængder forskellige data samt skiftende datamængder og arbejdsbelastningsmønstre – alt sammen genereret fra cloudmiljøet, mobile enheder, sociale medier og big data.
Opskalering i forhold til udskalering
På det mest grundlæggende niveau kan databaseskalerbarhed inddeles i to typer:
Vertikal skalering eller op- eller nedskalering, hvor du øger eller reducerer databehandlingskapaciteten eller databaseantallet efter behov – enten ved at ændre ydeevneniveauerne eller ved at bruge fleksible databasepuljer til automatisk at foretage en justering i forhold til dine arbejdsbelastningsbehov.
Horisontal skalering eller ud- eller indskalering, hvor du tilføjer flere databaser eller opdeler din store database i mindre noder ved hjælp af en datapartitioneringsmetode, der kaldes sharding, som kan administreres hurtigere og nemmere på tværs af servere.
Vertikal opskalering
Vertikal skalering bruges, når du har brug for at reagere hurtigt for at løse et problem med ydeevnen, som du ikke kan løse ved hjælp af klassiske teknikker til databaseoptimering – f.eks. ændringer af forespørgsler eller indeksering. Opskalering er nyttig til håndtering af spidsbelastninger i dine arbejdsbelastninger, hvor det aktuelle ydeevneniveau ikke kan imødekomme alle behov. Opskalering giver dig mulighed for at tilføje flere ressourcer, så du nemt kan håndtere spidsbelastninger. Når der ikke længere er brug for ressourcerne, kan du med nedskalering gå tilbage til den oprindelige tilstand og spare på cloudomkostningerne.
Skaler op i følgende situation:
-
Du kan se, at dine arbejdsbelastninger når visse grænser for ydeevnen, f.eks. CPU- eller I/O-grænser.
-
Du skal reagere hurtigt for at løse problemer med ydeevnen, der ikke kan løses med klassisk databaseoptimering.
-
Du har brug for en løsning, der gør det muligt at ændre tjenesteniveauer, så de tilpasser sig skiftende krav til ventetid.
Horisontal udskalering
Appudviklere begynder at overveje udskalering eller horisontal skalering, når de ikke kan få nok ressourcer til deres arbejdsbelastninger, selv når de arbejder på de højeste ydeevneniveauer. Med horisontal skalering opdeles data i flere databaser eller shards på tværs af servere, og de enkelte shards kan skaleres op eller ned uafhængigt af hinanden.
Hvordan forbedrer partitionering af data skalerbarheden? Når du skalerer en enkelt database op ved at tilføje ressourcer, f.eks. virtuelle maskiner, når den til sidst en grænse for den fysiske hardware. Da datapartitioner hver især hostes på en separat server, kan du, hvis du opdeler data på tværs af flere shards, skalere et system næsten ubegrænset.
Nogle typer databaseteknologier, især ikke-relationsdatabaser eller NoSQL-databaser, er udviklet med unikke funktioner til horisontal udskalering af data via databasesharding, hvilket gør det muligt for dem at håndtere store, ikke definerede eller hurtigt skiftende data.
Og nogle relationsdatabasetjenester (SQL), som oprindeligt tilbød tjenester til op- eller nedskalering, begynder nu at tilbyde spændende muligheder, der matcher skalerbarhedsfordelene ved ikke-relationsdatabaser. Hyperskaleringstjenester som Microsoft Azure SQL Database Hyperscale og Azure Database for PostgreSQL Hyperscale giver brugerne mulighed for hurtigt at skalere lageret til op til 100 TB, leverer en fleksibel og cloudbaseret arkitektur, der gør det muligt for lageret at vokse efter behov, og giver mulighed for næsten øjeblikkelig sikkerhedskopiering og hurtige databasegendannelser på kun få minutter.
Skaler ud i følgende situation:
-
Du har geo-distribuerede programmer, hvor alle apps skal have adgang til en del af dataene i området. Hver app har kun adgang til den del, der er knyttet til det pågældende område, uden at det påvirker andre shards.
-
Du har et globalt shardingsscenarie – f.eks justering af belastning – hvor du har et stort antal geo-distribuerede klienter, der indsætter data i deres egne dedikerede shards.
-
Du har nået grænsen for ydeevnen, selv på de højeste ydeevneniveauer i din tjeneste, eller hvis dine data ikke kan være i en enkelt database.
Automatisk skalering
Automatisk skalering er processen, hvor ressourcer automatisk og dynamisk matches for at opfylde kravene til et systems ydeevne. I takt med at arbejdsmængden vokser, har apps muligvis brug for flere ressourcer til at vedligeholde de nødvendige ydeevneniveauer eller imødekomme den stigende efterspørgsel. Hvis efterspørgslen bliver langsommere, og der ikke længere er brug for yderligere ressourcer, kan du spare på cloududgifterne ved at have en automatisk tjeneste, der deallokerer ikke-benyttede ressourcer.
Automatisk skalering udnytter fleksibiliteten i cloudhostede miljøer. Det letter administrationen ved at reducere behovet for, at systemoperatorer konstant skal træffe beslutninger om at tilføje eller fjerne ressourcer eller kontrollere systemets ydeevne.
Selvom der er to primære måder, apps kan skaleres lodret eller vandret på, er det ikke så almindeligt at automatisere vertikal skalering, fordi opskalering ofte kræver, at systemet midlertidigt er ikke-tilgængeligt, mens det genudrulles.
Automatisk skalering er mere almindelig i forbindelse med horisontal skalering, fordi ud- eller indskalering blot betyder tilføjelse eller fjernelse af forekomster af en ressource, og din app fortsætter med at køre uden afbrydelser, efterhånden som der klargøres nye ressourcer. Hvis efterspørgslen falder, kan ressourcer nemt lukkes uden nedetid og omallokeres.
Mange udbydere af cloudbaserede systemer, f.eks. Microsoft Azure, understøtter automatisk horisontal skalering.
Ofte stillede spørgsmål
-
En database er en vilkårlig samling af indbyrdes forbundne oplysninger, der er gemt og organiseret, så det er nemmere at administrere og få adgang til dem. Da nye data og datatyper genereres i et stadig hurtigere tempo, bliver det en udfordring at holde disse data organiseret, tilgængelige og sikre. DBMS (Database Management Systems), som indeholder et lag af administrationsværktøjer, bruges ofte til at håndtere meget store datamængder.
Der opstår konstant nye databasetyper og teknologier, som tilpasser sig den enorme mængde forskellige data, der genereres fra cloudmiljøet, mobile enheder, sociale medier og big data.
-
NoSQL-databaser, der ofte kaldes ikke-relationelle eller "ikke kun" SQL, er et bredt udvalg af databaseteknologier, der håndterer datalagring og -hentning anderledes end en traditionel relationsdatabase (SQL).
NoSQL-databaser kræver ikke et foruddefineret skema og kan bruge flere datamodeller, hvilket gør dem ekstremt effektive til at håndtere store mængder ustrukturerede data og skalere big data-databaseprojekter.
-
PostgreSQL er en robust database med åben kildekode, der arbejder med relationsforespørgsler og ikke-relationsforespørgsler, og som er kendt for sin pålidelighed og dataintegritet. PostgreSQL anvendes i stor udstrækning inden for områder som den finansielle sektor, produktion, offentlige myndigheders geografiske informationssystemer og webteknologi. Udviklere opretter apps med PostgreSQL, mens administratorer har bruger den til at beskytte deres data.
-
Cachelagring er en almindelig teknik, der bruges af udviklere og it-teknikere til at forbedre et systems ydeevne og skalerbarhed. Cachelagring fungerer ved midlertidigt at kopiere ofte anvendte data til et hurtigt lager, der er placeret tæt på appen. Hvis det hurtige datalager er placeret tættere på appen end den oprindelige kilde, kan cachelagring forbedre svartiderne for klientapps væsentligt ved at betjene data hurtigere. Udviklere designer ofte programmer til cachelagrede data og omformer dem derefter for at behandle anmodninger hurtigere end i standarddatabaseforespørgsler.
-
Datasharding er en form for horisontal datapartitionering, der giver dig mulighed for at opdele din store database i mindre databaser, som kan administreres hurtigere og nemmere på tværs af servere.
-
En Platform as a Service, ofte forkortet til PaaS, er en tjeneste fra en cloududbyder, som tilbyder et on-demand-miljø til udvikling, test, levering og administration af apps. Platform as a Service gør det nemmere for udviklere hurtigt at udvikle web- eller mobilapps uden at bekymre sig om konfiguration eller administration af den underliggende infrastruktur for de servere, lagre, netværk og databaser, de har brug for.
Ressourcer
Udforsk skalerbarheden i cloudmiljøet med Azure
Udforsk en omfattende tilgang til opskalering i forhold til udskalering, der passer til dit eget scenarie, på tværs af det lokale miljø, multicloudmiljøet og grænseenheder. Med Azures serie af databasetjenester kan du vælge mellem fuldt administrerede relationsdatabaser, NoSQL-databaser og databaser i hukommelsen, hvilket omfatter både beskyttede programmer og programmer med åben kildekode, der passer til moderne appudvikleres behov.
Spar tid og penge med automatiseret administration af infrastruktur – herunder automatiseringsløsninger til skalerbarhed, tilgængelighed og sikkerhed.
Relaterede produkter og tjenester
Azure SQL
Serien af SQL-clouddatabaser, der giver fleksible muligheder for migrering, modernisering og udvikling af apps.
Azure Cosmos DB
Hurtig NoSQL-database med åbne API'er til enhver skala.
Azure PostgreSQL
Fuldt administreret, intelligent og skalerbar PostgreSQL.
Azure SQL Database
Administreret, intelligent SQL i skyen.
Azure SQL Managed Instance
Administreret forekomst af SQL i cloudmiljøet, der altid er opdateret.
SQL Server på Virtual Machines
Migrer arbejdsbelastninger på SQL Server til cloudmiljøet med de laveste samlede ejeromkostninger.
Azure Database for MySQL
Fuldt administreret, skalerbar MySQL-database.
Azure Maria DB
Administreret MariaDB-databasetjeneste til appudviklere.
Azure Cache for Redis
Skab effektive programmer med høj dataoverførselshastighed og kort ventetid på cachelagring af data.
-
Skaler uden grænser med administrerede databaser
Fokuser på at bygge apps, og gør dit job nemmere med databaser, der administreres af Microsoft Azure.