Skalere opp versus å skalere ut
En introduksjon til databaseskalerbarhet ved databehandling i skyen.
Data, data overalt – det er det vi snakker om når vi snakker om skalerbarhet
Skalerbarhet i databehandling i skyen er evnen til raskt og enkelt å øke eller redusere størrelsen eller kraften til en IT-løsning eller ressurs. Selv om begrepet skalerbarhet kan referere til funksjonaliteten til ethvert system når det gjelder å håndtere en økende mengde arbeid, refererer vi ofte til databaser og data når vi snakker om å skalere opp versus skalere ut, og mye av det.
Databaseskalerbarhet er noe moderne apputviklere er svært opptatt av. La oss si at en ny app tar av – og etterspørselen etter den vokser fra en håndfull brukere til millioner av brukere over hele verden. Noe av det viktigste i det å hjelpe apputviklerne med å holde tritt med etterspørselen og minimere nedetid, er muligheten til å skalere effektivt.
Denne samtalen om å skalere ut versus å skalere opp fokuserer på hvordan skalerbarhet hjelper oss med å tilpasse og håndtere det store volumet og det store utvalget av data, endrede datavolumer og skiftende arbeidsbelastningsmønstre – alt generert fra skyen, mobilen, sosiale medier og stordata.
Utskalering versus oppskalering
På sitt mest grunnleggende nivå kan databaseskalerbarhet deles inn i to typer:
Loddrett skalering, eller skalering opp eller ned, der du øker eller reduserer datakraften eller databasene etter behov – enten ved å endre ytelsesnivåer eller ved å bruke elastiske databaseutvalg for å justere automatisk til arbeidsbelastningsbehovene.
Vannrett skalering, eller skalere ut eller inn, der du legger til flere databaser eller deler den store databasen inn i mindre noder ved hjelp av en datapartisjoneringstilnærming kalt fragmentering, som kan administreres raskere og enklere på tvers av servere.
Skalere opp loddrett
Loddrett skalering brukes når du må reagere raskt for å løse et ytelsesproblem som du ikke kan løse ved hjelp av klassiske databaseoptimaliseringsteknikker, for eksempel spørringsendringer eller indeksering. Oppskalering er nyttig for å håndtere topper i arbeidsbelastningene der gjeldende ytelsesnivå ikke oppfyller alle kravene. Ved å skalere opp kan du legge til flere ressurser, slik at du enkelt kan håndtere toppene i arbeidsbelastningene. Når ressursene ikke trengs lenger, kan du skalere ned og gå tilbake til den opprinnelige tilstanden og spare på skykostnader.
Oppskaler når:
-
Du ser at arbeidsbelastningene dine når en ytelsesgrense, for eksempel CPU- eller I/U-grenser.
-
Du må reagere raskt for å løse ytelsesproblemer som ikke kan løses med klassisk databaseoptimalisering.
-
Du trenger en løsning som lar deg endre tjenestenivåer for å tilpasse deg endrede ventetidskrav.
Skalere ut vannrett
Apputviklere begynner å vurdere å skalere ut eller å foreta vannrett skalering når de ikke kan få nok ressurser til arbeidsbelastningene sine, selv om de opererer på de høyeste ytelsesnivåene. Med vannrett skalering deles data inn i flere databaser, eller fragmenter, på tvers av servere, og hvert fragment kan skaleres opp eller ned uavhengig av hverandre.
Hvordan forbedrer partisjonering av data skalerbarhet? Når du oppskalerer en enkelt database ved å legge til ressurser som virtuelle maskiner (VM-er), vil den til slutt nå en fysisk maskinvaregrense. Siden datapartisjoner er plassert på en egen server, kan du utvide et system nesten ubegrenset hvis du deler data på tvers av flere fragmenter.
Noen typer databaseteknologier, spesielt ikke-relasjonelle databaser eller NoSQL-databaser, er utviklet med unike funksjoner for å skalere ut data horisontalt ved hjelp av databasefragmentering – slik at de kan håndtere store, urelaterte, ubestemmelige eller raskt endrende data.
Noen relasjonelle (SQL) databasetjenester som opprinnelig tilbød tjenester for å opp- eller nedskalere, begynner også å tilby spennende alternativer for å matche skalerbarhetsfordelene i ikke-relasjonelle databaser. Hyperskaleringstjenester som Microsoft Azure SQL Database hyperskalering og Azure Database for PostgreSQL-hyperskalering gjør det mulig for brukere å skalere lagring raskt opp til 100 TB, gi fleksibel, skybasert arkitektur slik at lagringen kan vokse etter behov, og muliggjør nesten øyeblikkelige sikkerhetskopieringer og raske databasegjenopprettinger på bare noen minutter.
Skaler ut når:
-
Du har geodistribuerte programmer der hver app skal ha tilgang til deler av dataene i området. Hver app får bare tilgang til fragmentet som er knyttet til området uten å påvirke andre fragmenter.
-
Du har et globalt fragmentscenario, for eksempel belastningsfordeling, der du har et stort antall geodistribuerte klienter som setter inn data i sine egne dedikerte fragmenter.
-
Du har maksimert ytelseskravene dine, selv på de høyeste ytelsesnivåene i tjenesten, eller hvis dataene ikke får plass i en enkelt database.
Automatisk skalering
Autoskalering er prosessen med automatisk og dynamisk samsvarende ressurser for å oppfylle ytelseskravene til et system. Etter hvert som arbeidsmengden øker, kan det hende at apper trenger flere ressurser for å opprettholde de nødvendige ytelsesnivåene eller dekke økende etterspørsel. Hvis etterspørselen avtar og tilleggsressursene ikke lenger er nødvendige, kan du spare på skyutgifter ved å ha en automatisk tjeneste på plass for å fjerne tildeling av ubrukte ressurser.
Autoskalering utnytter elastisiteten til skybaserte miljøer. Det letter administrasjonskostnadene ved å redusere behovet for at systemoperatører hele tiden tar beslutninger om å legge til eller fjerne ressurser eller kontrollere systemets ytelse.
Selv om det finnes to hovedmåter apper kan skalere på – loddrett eller vannrett – er det mindre vanlig å automatisere loddrett skalering, fordi oppskalering ofte krever at systemet blir midlertidig utilgjengelig mens det rulles ut på nytt.
Autoskalering er vanligere når du skalerer vannrett fordi skalering ut eller inn bare betyr å legge til eller fjerne forekomster av en ressurs, og appen fortsetter å kjøre uten avbrudd etter hvert som nye ressurser klargjøres. Hvis etterspørselen synker, kan ressurser stenges enkelt uten nedetid og tildeling fjernes.
Mange leverandører av skybaserte systemer, for eksempel Microsoft Azure, støtter vannrett autoskalering.
Vanlige spørsmål
-
En database er en samling beslektet informasjon som er lagret og organisert, slik at den blir enklere å administrere og få tilgang til. Etter hvert som nye data og datatyper genereres i et svimlende tempo, blir det en utfordring å holde dataene organiserte, tilgjengelige og sikre. Systemer for databaseadministrasjon (DBMS), som inkluderer et lag med administrasjonsverktøy, brukes ofte til å håndtere store mengder data.
Nye databasetyper og teknologier oppstår stadig for å tilpasse seg det store volumet og det store utvalget av data generert fra skyen, mobilen, sosiale medier og stordata.
-
NoSQL-databaser, ofte referert til som ikke-relasjonell eller "ikke bare" SQL, er et mangfoldig sett med databaseteknologier som håndterer datalagring og henting på en annen måte enn en tradisjonell, relasjonell (SQL) database.
NoSQL-databaser krever ikke et forhåndsdefinert skjema og kan bruke flere datamodeller, noe som gjør dem ekstremt effektive når det gjelder å håndtere store mengder ustrukturerte data og skalere databaseprosjekter med stordata.
-
PostgreSQL er en robust database med åpen kildekode som fungerer med relasjonell og ikke-relasjonell spørring, kjent for sin pålitelighet og dataintegritet. PostgreSQL er mye brukt innen områder som økonomiske tjenester, produksjon, offentlige geografiske informasjonssystemer og netteknologi. Utviklere oppretter apper med PostgreSQL, mens administratorer stoler på at det beskytter dataene deres.
-
Hurtigbufring er en vanlig teknikk som brukes av utviklere og IT-eksperter for å forbedre ytelsen og skalerbarheten til et system. Hurtigbufring fungerer ved å midlertidig kopiere data som brukes ofte, til rask lagring som er plassert i nærheten av appen. Hvis denne raske datalagringen er plassert nærmere appen enn den opprinnelige kilden, kan hurtigbufring forbedre responstiden for klientapper betraktelig ved å levere data raskere. Utviklere utformer ofte apper for å bufre behandlede data, for så å endre bufferen for å betjene forespørsler raskere enn i standard databasespørringer.
-
Datafragmentering er en type vannrett datapartisjonering som lar deg dele den store databasen inn i mindre databaser, som kan administreres raskere og enklere på tvers av servere.
-
En plattform som tjeneste, ofte forkortet til PaaS, er en tjeneste fra en skytjenesteleverandør som tilbyr et behovsbetinget miljø for apputvikling, testing, levering og administrasjon. Plattform som en tjeneste gjør det enklere og raskere for utviklere å opprette nett- eller mobilapper – uten å måtte håndtere konfigurering eller administrasjon av den underliggende infrastrukturen for servere, lagring, nettverk og databaser de trenger som utviklere.
Ressurser
Utforsk skalerbarhet i skyen med Azure
Oppdag en omfattende tilnærming til oppskalering kontra utskalering – en som passer ditt eget scenario på tvers av lokale miljøer, multiskymiljøer og kantmiljøer. Azure-serien med databasetjenester tilbyr et utvalg av totaladministrerte relasjonsdatabaser, NoSQL-databaser og databaser i minnet. De spenner over proprietære motorer og motorer med åpen kildekode, for å passe til behovene moderne apputviklere har.
Spar tid og penger med automatisert infrastrukturadministrasjon – inkludert automatiseringsløsninger for skalerbarhet, tilgjengelighet og sikkerhet.
Relaterte produkter og tjenester
Azure SQL
En serie med SQL-skydatabaser som tilbyr fleksible alternativer for appoverføring, modernisering og utvikling av apper.
Azure Cosmos DB
Rask NoSQL-database med åpne API-er for enhver skalering.
Azure PostgreSQL
Totaladministrert, intelligent og skalerbar PostgreSQL.
Azure SQL Database
Administrert intelligent SQL i skyen.
Azure SQL Managed Instance
Administrert, alltid oppdatert SQL-forekomst i skyen.
SQL Server på virtuelle maskiner
Overfør SQL Server-arbeidsbelastninger til skyen med de laveste totale eierkostnadene.
Azure Database for MySQL
Heladministrert, skalerbar MySQL-database.
Azure Maria DB
Administrert MariaDB-databasetjeneste for apputviklere.
Azure Cache for Redis
Få fart på programmene med høy gjennomstrømning og datahurtigbufring med lav forsinkelse.
-
Skaler uten grenser med administrerte databaser
Fokuser på å bygge apper og gjør jobben enklere med å få databasene dine administrert av Microsoft Azure.