Hoppa till huvudinnehåll

Skala upp jämfört med att skala ut

Introduktion till skalbarhet för databaser inom molnbaserad databehandling

Data, data överallt – vad vi pratar om när vi pratar om skalbarhet

Skalbarhet i molnbaserad databehandling är möjligheten att snabbt och enkelt öka eller minska storleken på eller kraften i en IT-lösning eller resurs. Termen skalbarhet kan referera till ett systems möjlighet att hantera en växande mängd arbete, men när vi pratar om att skala upp kontra skala ut syftar vi ofta på databaser och stora mängder data.

För dagens apputvecklare är det viktigt med skalbara databaser. Anta att en ny app plötsligt blir populär och att efterfrågan växer kraftigt, från en handfull användare till miljontals användare över hela världen. En av de viktigaste sakerna för att apputvecklare ska kunna hålla jämna steg med efterfrågan och minimera stilleståndstiden är möjligheten att skala effektivt.

I den här diskussionen kring utskalning respektive uppskalning fokuserar vi på sätt som skalbarhet kan hjälpa oss med anpassning till och hantering av de stora mängder data, föränderliga datavolymer och förändringar i arbetsbelastningsmönster som genereras från molnet, mobiltjänster, sociala media och stordata.

Skala upp jämfört med att skala ut

Det finns två grundläggande typer av skalning:

Lodrät skalning, eller skala upp eller ned, där du ökar eller minskar databehandlingskraften eller databaserna efter behov, antingen genom att ändra prestandanivåer eller genom att använda elastiska databaspooler för att automatiskt anpassa efter dina arbetsbelastningskrav.

Vågrät skalning, eller skala ut eller in, där du lägger till fler databaser eller delar upp din stora databas i mindre noder, med hjälp av en datapartitioneringsmetod som kallas horisontell partitionering, som kan hanteras snabbare och enklare över servrar.

Skala upp vertikalt

Vertikal skalning används när du snabbt behöver kunna åtgärda ett prestandaproblem som du inte kan lösa med hjälp av klassiska databasoptimeringstekniker, till exempel frågeändringar eller indexering. Uppskalning är användbart för att hantera toppar i arbetsbelastningar om den aktuella prestandanivån inte uppfyller alla behov. Med uppskalning hanterar du belastningstoppar på ett enkelt sätt genom att lägga till fler resurser. När resurserna inte behövs längre kan du skala ned till det ursprungliga tillståndet och minska molnkostnaderna.

Skala upp om:

  • Du ser att dina arbetsbelastningar har nått en viss prestandagräns, till exempel gränsen för CPU eller I/O.
  • Du snabbt behöver kunna åtgärda prestandaproblem som inte kan lösas med klassisk databasoptimering.
  • Du behöver en lösning som gör att du kan ändra och anpassa tjänstnivån efter föränderliga svarstidskrav.

Skala ut horisontellt

Apputvecklare börjar överväga att skala ut eller skala horisontellt när de inte kan få tillräckligt med resurser för sina arbetsbelastningar, även om de körs på de högsta prestandanivåerna. Med horisontell skalning fördelas data på flera databaser, eller så kallade ”shards”, mellan servrar och varje shard kan skalas upp eller ned oberoende av varandra.

Hur förbättrar partitionering av data skalbarheten? När du skalar upp en enskild databas genom att lägga till resurser, till exempel virtuella datorer (VM), når den så småningom en fysisk maskinvarugräns. Eftersom varje datapartition finns på en separat server kan du skala ut ett system nästan obegränsat om du delar upp data på flera shards.

Vissa typer av databastekniker, särskilt icke-relationella eller NoSQL-databaser, utvecklas med unika funktioner för att skala ut data horisontellt genom horisontell partitionering, vilket gör att de kan hantera stora, orelaterade, obestämda eller snabbt föränderliga data.

Och vissa relationsdatabastjänster (SQL) som ursprungligen erbjöd tjänster för att skala upp eller ned börjar nu erbjuda spännande alternativ för att matcha skalbarhetsfördelarna med icke-relationella databaser. Med tjänster i hyperskala som Microsoft Azure SQL Database i hyperskala och Azure Database for PostgreSQL i hyperskala kan användare snabbt skala upp lagringen till 100 TB med en flexibel, molnbaserad arkitektur så att lagringen kan växa efter behov. Användarna får en nästan omedelbar säkerhetskopiering och kan återställa databaser på bara några minuter.

Skala ut om:

  • Du har geo-distribuerade program där varje app ska komma åt en del av data i regionen. Varje app kommer bara åt den shard som är associerad med den regionen utan att påverka andra shards.
  • Du har ett globalt scenario för horisontell partitionering, till exempel belastningsutjämning, där du har ett stort antal geo-distribuerade klienter som infogar data i sina egna dedikerade shards.
  • Gränsen har nåtts för dina prestandakrav, även på de högsta prestandanivåerna i din tjänst, eller om dina data inte får plats i en enskild databas.

Automatisk skalning

Automatisk skalning är processen att automatiskt och dynamiskt matcha resurser för att uppfylla prestandakraven i ett system. När arbetsmängden växer kan appar behöva ytterligare resurser för att upprätthålla de prestandanivåer som krävs eller för att möta en växande efterfrågan. Om efterfrågan minskar och de ytterligare resurserna inte längre behövs kan du minska molnutgifterna med hjälp av en automatisk tjänst som avallokerar de resurser som inte används.

Automatisk skalning utnyttjar elasticiteten hos molndrivna miljöer. Det minskar hanteringskostnaderna eftersom systemoperatörer inte behöver fatta ständiga beslut om att lägga till eller ta bort resurser eller kontrollera systemets prestanda.

Det finns två huvudsakliga sätt att skala appar, vertikalt eller horisontellt, men det är inte lika vanligt att automatisera vertikal skalning, eftersom en uppskalning ofta innebär att systemet blir otillgängligt medan det omdistribueras.

Automatisk skalning är vanligare vid horisontell skalning eftersom en ut- eller inskalning innebär att instanser av en resurs läggs till eller tas bort och att appen fortsätter köras utan avbrott när nya resurser etableras. Om efterfrågan minskar kan resurserna stängas av sömlöst utan driftavbrott och avallokeras.

Många leverantörer av molnbaserade system, inklusive Microsoft Azure, stöder automatisk horisontell skalning.

  • En databas är en samling relaterad information som lagras och organiseras så att den blir enklare att hantera och komma åt. När nya data och datatyper genereras i en svindlande hastighet blir det en utmaning att hålla dessa data organiserade, tillgängliga och säkra. Databashanteringssystem (DBMS), som innehåller hanteringsverktyg, används ofta för att hantera stora mängder data.

    Nya databastyper och tekniker utvecklas ständigt för att kunna hantera den stora mängden data som genereras från molnet, mobiltjänster, sociala medier och stordata.

    Läs mer om databaser
  • NoSQL-databaser, även kallade icke-relationella databaser eller ”Not only SQL” (inte bara SQL), använder olika databastekniker för att hantera datalagring och datahämtning på ett sätt som skiljer sig från traditionella relationsdatabaser (SQL).

    NoSQL-databaser kräver inte något fördefinierat schema och kan använda flera datamodeller, vilket gör att de kan hantera stora volymer ostrukturerade data och skala stordatadatabasprojekt på ett mycket effektivt sätt.

    Läs mer om NoSQL-databaser
  • PostgreSQL är en robust databas med öppen källkod som fungerar med relationsbaserade och icke-relationella frågor, och den är känd för sin tillförlitlighet och dataintegritet. PostgreSQL används ofta inom områden som finansiella tjänster, tillverkning, geografiska informationssystem för myndigheter och webbteknik. Utvecklare skapar appar med PostgreSQL och administratörer litar på att PostgreSQL skyddar deras data.

    Läs mer om PostgreSQL
  • Cachelagring är en vanlig teknik som utvecklare och IT-proffs använder för att förbättra prestanda och skalbarhet i system. Cachelagring innebär att data som används ofta kopieras tillfälligt till en snabb lagring som ligger nära programmet. Om den här snabba datalagringen ligger närmare programmet än originalkällan kan cachelagring ge en betydligt kortare svarstid för klientprogram. Det går helt enkelt att komma åt data snabbare. Utvecklare utformar ofta program så att bearbetade data cachelagras och sedan hämtas från cachelagringen för att kunna hantera begäranden snabbare jämfört med vanliga databasfrågor.

    Läs mer om cachelagring
  • Horisontell datapartitionering är en typ av partitionering som gör att du kan dela upp en stor databas i mindre databaser, som kan hanteras snabbt och enkelt på flera servrar.

    Läs mer om horisontell partitionering av databaser
  • En plattform som en tjänst, ofta förkortad PaaS, är en tjänst från en molnleverantör som erbjuder en miljö på begäran för apputveckling, testning, leverans och hantering. PaaS gör det enklare för utvecklare att snabbt skapa webb- eller mobilappar utan att behöva konfigurera eller hantera den underliggande infrastrukturen med servrar, lagring, nätverk och databaser som behövs för utveckling.

    Läs mer om PaaS

Utforska molnskalbarhet med Azure

Hitta en metod för att skala upp eller ut som passar ditt scenario i lokala miljöer, miljöer med flera moln och gränsmiljöer. Azures serie med databastjänster har flera helt hanterade relationsdatabaser, NoSQL-databaser och minnesinterna databaser med både egenutvecklade motorer och öppen källkod – allt som den moderna apputvecklaren behöver.

Spara tid och pengar med automatiserad infrastrukturhantering, bland annat automatiseringslösningar för skalbarhet, tillgänglighet och säkerhet.

Relaterade produkter och tjänster

Azure SQL

Familjen med SQL-molndatabaser erbjuder flexibla alternativ för migrering, modernisering och utveckling av program

Azure Cosmos DB

Snabb NoSQL-databas med öppna API:er för alla skalor

Azure PostgreSQL

Fullständigt hanterad, intelligent och skalbar PostgreSQL

Azure SQL Database

Hanterad, intelligent SQL i molnet

Azure SQL-hanterad instans

Hanterad, alltid uppdaterad SQL-instans i molnet

SQL Server på Virtual Machines

Migrera SQL Server-arbetsbelastningar till molnet med lägst total ägandekostnad

Azure Database for MySQL

Fullständigt hanterad, skalbar MySQL-databas

Azure Maria DB

Hanterad MariaDB-databastjänst för apputvecklare

Azure Cache for Redis

Påskynda program med datacachning med stora dataflöden och låg fördröjning

Skala utan gränser med hanterade databaser

Om dina databaser hanteras av Microsoft Azure blir ditt jobb enklare och du kan fokusera på att skapa appar

Vi är redo – nu skapar vi ditt kostnadsfria konto

Kan vi hjälpa dig?