Navigatie overslaan

Omhoog schalen versus uitschalen

Een introductie tot schaalbaarheid van databases in cloud-computing

Gegevens, gegevens waar dan ook, daar hebben we het over wanneer we het hebben over schaalbaarheid

Schaalbaarheid in cloud-computing is de mogelijkheid om de grootte of het vermogen van een IT-oplossing of -resource snel en eenvoudig te laten toenemen of afnemen. Hoewel de term schaalbaarheid kan verwijzen naar het vermogen van elk systeem om een toenemende hoeveelheid werk af te handelen, verwijzen we, wanneer we het hebben over omhoog schalen versus uitschalen, vaak naar databases en gegevens, en dat in grote hoeveelheden.

Schaalbaarheid van databases is waar moderne app-ontwikkelaars zich vooral mee bezighouden. Stel dat een nieuwe app van start gaat en de vraag naar deze app toeneemt van een handjevol gebruikers tot miljoenen gebruikers over de hele wereld. Een van de belangrijkste mogelijkheden waarmee de app-ontwikkelaars de vraag kunnen bijhouden en downtime kunnen minimaliseren, is de mogelijkheid om efficiënt te schalen.

Dit gesprek over uitschalen versus omhoog schalen is gericht op de manieren waarop wij met behulp van schaalbaarheid alleen al de hoeveelheid en enorme variatie aan gegevens aankunnen, door hoeveelheden gegevens te wijzigen en workloadpatronen te verschuiven, die allemaal worden gegenereerd vanuit de cloud, mobiele media, sociale media en big data.

Uitschalen versus omhoog schalen

Op het meest eenvoudige niveau kan schaalbaarheid van databases worden onderverdeeld in twee typen:

Verticaal schalen, of omhoog of omlaag schalen, waarbij je rekenkracht of databases naar behoefte vergroot of verlaagt. Dit kun je doen door prestatieniveaus te wijzigen of door pools voor elastische databases te gebruiken die zich automatisch aanpassen aan de eisen van de workload.

Horizontaal schalen of uit- of inschalen, waarbij je meer databases toevoegt of grote database opsplitst in kleinere knooppunten, met behulp van een aanpak waarin je gegevenspartities maakt. Dit wordt sharding genoemd. Hierdoor kunnen gegevens sneller en gemakkelijker worden beheerd op meerdere servers.

Verticaal omhoog schalen

Verticaal schalen wordt gebruikt wanneer je snel moet reageren om een prestatieprobleem op te lossen dat je niet kunt oplossen met behulp van klassieke databaseoptimalisatietechnieken, zoals querywijzigingen of indexering. Omhoog schalen is handig voor het verwerken van pieken in workloads waarbij het huidige prestatieniveau niet aan alle eisen kan voldoen. Door omhoog te schalen kun je meer resources toevoegen, zodat je eenvoudig piekworkloads kunt verwerken. Wanneer de resources vervolgens niet meer nodig zijn, kun je met omlaag schalen teruggaan naar de oorspronkelijke staat en besparen op cloudkosten.

Wanneer moet je omhoog schalen:

  • Je ziet dat je workloads een bepaalde prestatielimiet hebben bereikt, zoals CPU- of I/O-limieten.
  • Je moet snel reageren als je prestatieproblemen wilt oplossen die niet kunnen worden opgelost met klassieke databaseoptimalisatie.
  • Je hebt een oplossing nodig waarmee je servicelagen zo kunt wijzigen dat deze worden aangepast aan veranderende latentievereisten.

Horizontaal uitschalen

App-ontwikkelaars gaan overwegen om uit te schalen of horizontaal te schalen wanneer ze niet voldoende resources voor hun workloads kunnen krijgen, zelfs niet wanneer ze op de hoogste prestatieniveaus actief zijn. Bij horizontaal schalen worden gegevens gesplitst in verschillende databases, of shards, op verschillende servers, waarbij elke shard onafhankelijk omhoog of omlaag kan worden geschaald.

Hoe verbetert het partitioneren van gegevens de schaalbaarheid? Wanneer je één database omhoog schaalt door resources zoals virtuele machines (VM's) toe te voegen, bereikt deze uiteindelijk een fysieke hardwarelimiet. Omdat gegevenspartities elk op een afzonderlijke server worden gehost, kun je een systeem bijna onbeperkt uitschalen als je gegevens over meerdere shards verdeelt.

Sommige typen databasetechnologieën, met name niet-relationele of NoSQL-databases, zijn ontwikkeld met unieke mogelijkheden om gegevens horizontaal uit te schalen door middel van sharding, waardoor ze grote, niet-gerelateerde, onbepaalde of snel veranderende gegevens kunnen verwerken.

En sommige relationele (SQL) databaseservices die oorspronkelijk services boden om omhoog of omlaag te schalen, zijn begonnen met interessante opties aan te bieden die opwegen tegen de schaalbaarheidsvoordelen van niet-relationele databases. Met hyperscaleservices als Microsoft Azure SQL Database Hyperscale en Azure Database for PostgreSQL Hyperscale kunnen gebruikers de opslagruimte snel opschalen tot 100 TB, een flexibele cloudarchitectuur bieden waarmee de opslagruimte naar behoefte kan worden uitgebreid, en kunnen ze vrijwel direct back-ups maken en snel de database herstellen in slechts enkele minuten.

Wanneer moet je uitschalen:

  • Je hebt geografisch gedistribueerde toepassingen waarbij elke app toegang moet hebben tot een deel van de gegevens in de regio. Elke app heeft alleen toegang tot de shard die aan die regio is gekoppeld zonder dat dit van invloed is op andere shards.
  • Je hebt een globaal shardingscenario, zoals een taakverdeling, waarbij je een groot aantal geografisch gedistribueerde clients hebt die gegevens invoegen in hun eigen toegewezen shards.
  • Je hebt je prestatievereisten maximaal gemaakt, zelfs in de hoogste prestatielagen van uw service, of als je gegevens niet in één database passen.

Automatisch schalen

Automatisch schalen is het proces van automatisch en dynamisch resources zo aan te passen dat deze voldoen aan de prestatievereisten van een systeem. Naarmate de hoeveelheid werk groeit, hebben apps mogelijk extra resources nodig om de benodigde prestatieniveaus te behouden of aan de groeiende vraag te voldoen. Als de vraag afneemt en de extra resources niet meer nodig zijn, kun je besparen op clouduitgaven door een automatische service te gebruiken om de toewijzing van ongebruikte resources ongedaan te maken.

Met automatisch schalen wordt gebruik gemaakt van de elasticiteit van cloudomgevingen. Hierdoor wordt de beheeroverhead eenvoudiger, doordat systeemoperators niet meer voortdurend beslissingen hoeven te nemen over het toevoegen of verwijderen van resources of het controleren van de prestaties van het systeem.

Hoewel er twee belangrijke manieren zijn waarop apps kunnen worden geschaald, verticaal of horizontaal, is het minder gebruikelijk om verticaal schalen te automatiseren, omdat het bij omhoog schalen vaak vereist is dat het systeem tijdelijk niet beschikbaar is terwijl het opnieuw wordt geïmplementeerd.

Automatisch schalen komt vaker voor wanneer je horizontaal schaalt, omdat uit- of inschalen betekent dat je alleen exemplaren van een resource toevoegt of verwijdert. Je app wordt zonder onderbreking uitgevoerd wanneer er nieuwe resources worden ingericht. Als de vraag daalt, kunnen resources probleemloos worden afgesloten zonder uitvaltijd en kan de toewijzing ongedaan worden gemaakt.

Veel providers van cloudsystemen, waaronder Microsoft Azure, bieden ondersteuning voor automatisch horizontaal schalen.

  • Een database is een verzameling van gerelateerde informatie die is opgeslagen en georganiseerd, zodat deze eenvoudiger is te beheren en te gebruiken. Omdat nieuwe gegevens en gegevenstypen in een razendsnel tempo worden gegenereerd, wordt het een uitdaging om die gegevens georganiseerd, toegankelijk en veilig te houden. Vaak worden databasebeheersystemen (DBMS), die een laag beheerhulpprogramma's bevatten, gebruikt om enorme hoeveelheden gegevens te verwerken.

    Er ontstaan voortdurend nieuwe databasetypen en -technologieën om alleen al de hoeveelheid en de enorme variatie aan gegevens aan te kunnen die worden gegenereerd op basis van de cloud, mobiele media, sociale media en big data.

    Meer informatie over databases
  • NoSQL-databases, vaak aangeduid als niet-relationele of 'niet-alleen' SQL, zijn een diverse set databasetechnologieën die het opslaan en ophalen van gegevens anders verwerken dan een traditionele, relationele (SQL-)database.

    Voor NoSQL-databases is geen vooraf gedefinieerd schema vereist. Deze kunnen gebruikmaken van meerdere gegevensmodellen, waardoor ze zeer effectief zijn in het verwerken van grote hoeveelheden ongestructureerde gegevens en het schalen van big-data databaseprojecten.

    Meer informatie over NoSQL-databases
  • PostgreSQL is een robuuste, opensource-database die werkt met relationele en niet-relationele query's, en staat bekend om de betrouwbaarheid en gegevensintegriteit. PostgreSQL wordt veel gebruikt op terreinen als financiële diensten, productie, geografische informatiesystemen voor de overheid en webtechnologie. Ontwikkelaars maken apps met PostgreSQL, terwijl beheerders erop vertrouwen dat zij hiermee hun gegevens kunnen beveiligen.

    Meer informatie over PostgreSQL
  • Caching (in de cache opslaan van gegevens) is een veelvoorkomende techniek die door ontwikkelaars en IT-professionals wordt gebruikt om de prestaties en schaalbaarheid van een systeem te verbeteren. Bij caching gaat het erom dat veelgebruikte gegevens tijdelijk worden gekopieerd naar een snelle opslag die zich vlakbij de app bevindt. Als deze snelle gegevensopslag zich dichter bij de app bevindt dan de oorspronkelijke bron, kan caching de reactietijden voor client-apps significant verbeteren, doordat er meer gegevens kunnen worden verwerkt. Ontwikkelaars ontwerpen vaak apps om verwerkte gegevens in de cache op te slaan en de cache vervolgens voor een nieuw doeleinde te gebruiken om aanvragen sneller te verwerken dan bij standaarddatabasequery's.

    Meer informatie over opslaan in cache
  • Gegevenssharding is een horizontaal type gegevenspartitionering waarmee je je grote database kunt onderverdelen in kleinere databases, die je sneller en gemakkelijker op meerdere servers kunt beheren.

    Meer informatie over databasesharding
  • Platform as a service, vaak afgekort als PaaS, is een service van een cloudserviceprovider die een on-demand omgeving biedt voor het ontwikkelen, testen, leveren en beheren van apps. Met PaaS kunnen ontwikkelaars eenvoudiger en sneller web-apps en mobiele apps maken, zonder dat ze zich bezig hoeven te houden met het opzetten of het beheren van de onderliggende infrastructuur van servers, de opslag, het netwerk en de databases die zij als ontwikkelaars nodig hebben.

    Meer informatie over PaaS

Schaalbaarheid van de cloud verkennen met Azure

Ontdek een uitgebreide benadering voor omhoog schalen versus uitschalen: eentje die past bij je eigen scenario in on-premises omgevingen, omgevingen met meerdere clouds en randomgevingen. De Azure-familie van databaseservices biedt verschillende volledig beheerde, relationele, NoSQL- en in-memory databases die bedrijfseigen en opensource-engines omvatten en zijn afgestemd op de behoeften van moderne app-ontwikkelaars.

Bespaar tijd en geld met automatisch infrastructuurbeheer, waaronder automatiseringsoplossingen voor schaalbaarheid, beschikbaarheid en beveiliging.

Gerelateerde producten en services

Azure SQL

Verschillende SQL-clouddatabases leveren flexibele opties voor app-migratie, modernisering en ontwikkeling

Azure Cosmos DB

Snelle NoSQL-database met open API's voor elke schaal

Azure PostgreSQL

Volledig beheerde, intelligente en schaalbare PostgreSQL

Azure SQL Database

Beheerde, intelligente SQL in de cloud

Azure SQL Managed Instance

Beheerde, altijd up-to-date SQL-instantie in de cloud

SQL Server op Virtual Machines

Uw SQL Server-workloads migreren naar de cloud tegen de laagste TCO

Azure Database voor MySQL

Volledig beheerde, schaalbare MySQL-database

Azure Maria DB

Beheerde MariaDB-databaseservice voor app-ontwikkelaars

Azure Cache voor Redis

Versnel toepassingen met gegevenstoegang met een hoge doorvoer en opslaan in cache met een lage latentie

Onbeperkt schalen met beheerde databases

Je kunt je concentreren op het bouwen van apps en je taak eenvoudiger maken wanneer je databases worden beheerd door Microsoft Azure

Bent u er klaar voor? Stel een gratis account in