Als je hebt overwogen om je SQL Server-omgeving naar Azure te verplaatsen, had je maar een paar opties. Ten eerste kunt u de PaaS-oplossing van Azure SQL Database gebruiken en een enkele database verplaatsen of een elastische pool gebruiken. Uw andere optie was een IaaS-oplossing die gebruikmaakt van virtuele Azure-machines met Microsoft SQL Server. We hebben binnenkort een derde optie genaamd een SQL Database Managed Instance.
Beheerde instanties overbruggen de kloof tussen on-prem SQL Server en Azure SQL-database
Managed Instances werden voor het eerst geïntroduceerd tijdens de Microsoft Build-conferentie in het voorjaar van 2017, en tot nu toe is de preview beperkt tot een klein aantal klanten en consultants. Beheerde instanties kunnen worden beschouwd als een hybride tussen een volledige versie van SQL Server en Azure SQL Database. Enkelvoudige en elastische databases zijn gebaseerd op een programmeermodel met databasebereik en beheerde instanties zijn gebouwd op een programmeermodel met subsysteembereik. Dit maakt beheerde instanties beter compatibel met on-premises SQL Server.
Beheerde instanties bieden veel meer het gevoel van een on-premises SQL Server, maar zijn gebouwd op dezelfde infrastructuur als Azure SQL Database. Wat het onderscheidt van Azure SQL Database is dat het een volledig SQL Server-exemplaar aan de klant presenteert. In Azure SQL Database configureert u een server, die in feite een container is, en vervolgens kunt u meerdere databases op die server hebben, maar ze kunnen niet gemakkelijk met elkaar praten. Met beheerde instanties bevinden alle databases binnen de instantie zich op dezelfde daadwerkelijke SQL Server, dus u hebt volledige ondersteuning voor query's tussen meerdere databases. Dit is een enorme functie voor veel applicaties die anders niet geschikt waren voor Azure SQL Database, en ik denk dat hierdoor veel meer SQL Server-applicaties naar de cloud kunnen gaan.
Functionaliteit op instantieniveau wordt nu ondersteund. Dit omvat zaken als globale tijdelijke tabellen, SQL Server Agent, Service Broker, replicatie, SQL Audit en Common Language Runtime (CLR). Beheerde instanties kunnen ook databases tot 35 TB ondersteunen. Momenteel is de grootste capaciteit voor een Azure SQL Database 4 TB in de bovenste laag. Ik vermoed dat dit binnenkort zal veranderen, en opnieuw zal de cloud voor meer applicaties worden opengesteld.
Beheerde instanties kunnen ook profiteren van alle functies van het PaaS-platform, waaronder automatische back-ups, detectie van bedreigingen, kwetsbaarheidsbeoordelingen, hoge beschikbaarheid, geo-replicatie, database-adviseur en nog veel meer. Ik heb een presentatie gezien waarin werd besproken hoe het automatische failoverproces werkt en heb geleerd dat objecten op serverniveau worden gerepliceerd naar de failover-instantie. Dit betekent dat zaken als aanmeldingen en taken – pijnpunten voor veel van onze huidige omgevingen – voor u worden afgehandeld.
Het afgelopen jaar heb ik talloze klanten geholpen bij het migreren naar Azure SQL Database, en een van de belangrijkste uitdagingen is het migreren van de gegevens. U kunt niet zomaar een back-up van SQL Server uitvoeren en terugzetten naar Azure SQL Database. Ik was erg blij om te horen dat we met SQL Database Managed Instances native SQL Server-back-ups kunnen gebruiken en terugzetten naar Managed Instances, maar u moet het back-up-naar-URL-mechanisme gebruiken. Dit maakt migraties naar beheerde instanties veel eenvoudiger, maar aangezien beheerde instanties zijn gebouwd op Azure SQL Database, is dit een enkeltje:u kunt geen back-up maken van uw beheerde instantie-databases en deze terugzetten naar on-premises. Als u ooit heeft besloten uw database terug te brengen naar on-premises of uit beheerde instanties, moet u uw gegevens exporteren.
Databases op beheerde instanties zijn veel beter klaar om te migreren naar Azure SQL Database
Aan de andere kant, aangezien ze zijn gebouwd op het Azure SQL Database-platform, kunnen de afzonderlijke databases die u in een beheerd exemplaar plaatst, worden gemigreerd naar hun eigen individuele Azure SQL-databases. Dit maakt een Managed Instance een perfecte opstap, waar u de isolatiecomplicaties kunt uitwerken die voorkomen dat u rechtstreeks naar PaaS migreert.
Ik ben benieuwd of replicatie wordt ondersteund. Ik heb nog niet kunnen achterhalen of een Managed Instance-database een uitgever kan zijn of dat het alleen een abonnee kan zijn, zoals een Azure SQL Database. Als het een uitgever kan zijn, kan dat een effectieve manier zijn om terug te migreren naar on-premises. Ik hoop echt dat we in de nabije toekomst de mogelijkheid zullen hebben om native SQL Server-back-ups te herstellen naar singleton Azure SQL Databases. Het lijkt erop dat de technologie er is, het moet alleen worden uitgebreid voor de bestaande PaaS-omgeving.
Een andere interessante observatie over Managed Instances is dat aangezien de technologie is gebouwd op het Azure SQL Database-model, de SQL Server-versie die van Azure SQL Database zal volgen. Dit kan de zaken met leveranciersondersteuning bemoeilijken. Veel leveranciers zullen aangeven dat ze hun product certificeren op SQL Server versie X. Hoewel Managed Instances bijna alle functies van SQL Server 2017 zullen ondersteunen, zal het niet dezelfde buildversie gebruiken, dus programmatische versiecontroles zullen ingewikkeld zijn. Je beste manier van handelen hier is om de leverancier terug te dringen, aangezien het onwaarschijnlijk is dat Microsoft op dit standpunt zal aarzelen, en ik twijfel er niet aan dat sommige van die gesprekken een uitdaging zullen zijn.
Zullen leveranciers zich inspannen om hun producten te certificeren op Managed Instances, of wordt dit een probleem zoals we hebben ervaren met virtualisatie? In de begindagen van virtualisatie verklaarden veel leveranciers dat ze hun producten niet ondersteunden om gevirtualiseerd te draaien, maar Microsoft ondersteunde Windows X en SQL Server X volledig om gevirtualiseerd te worden. Hopelijk zien we leveranciers aan boord stappen en hun producten certificeren op beheerde instanties. Ik zie zeker enkele SQL Server-pioniers die na hun eigen tests zullen overstappen op beheerde instanties.
Elke keer dat een klant naar de cloud wil migreren, is beveiliging een grote zorg. Beheerde instanties bieden VNET-ondersteuning met privé-IP-adressen en VPN voor on-premises netwerken. Hierdoor kan een klant zijn omgeving beschermen tegen het openbare internet en volledig geïsoleerd zijn.
Ik ben enthousiast over Managed Instances en kan echt niet wachten tot het op grotere schaal beschikbaar is. Voor klanten die een beheerde omgeving willen, maar een oplossing met meer functies nodig hebben dan een singleton of elastische Azure SQL Database, denk ik dat Managed Instances perfect passen. Er is een kloof ontstaan tussen Azure SQL Database en SQL Server op een Azure-VM, omdat veel klanten meer nodig hebben dan Azure SQL Database-aanbiedingen, maar SQL Server op een Azure-VM is nog steeds meer onderhoud en verantwoordelijkheid dan ze wilden. Beheerde instanties overbruggen die kloof echt. Ze ondersteunen een veel grotere database, zorgen voor eenvoudigere gegevensmigratie, maken query's tussen meerdere databases mogelijk en zouden geen codewijzigingen moeten vereisen, omdat het platform zo goed compatibel is met on-premises SQL Server.
Samenvattend:als uw organisatie overweegt over te stappen naar een gehoste omgeving binnen het Azure SQL Database-platform, kunt u kiezen tussen afzonderlijke Azure SQL-databases, elastische pools of beheerde instanties. Afhankelijk van uw toepassingsbehoeften, zou een van deze oplossingen goed moeten passen. Anders heb je ook de mogelijkheid om een traditioneel SQL Server-exemplaar uit te voeren op een virtuele Azure-machine, die leuke functies biedt zoals beheerde back-ups, geo-replicatie, Azure Site Recovery en nog veel meer. Microsoft blijft investeren in het Azure-platform door nieuwe producten en functies te leveren die hun klanten nodig hebben, en de aanstaande release van Managed Instances is een blijvend bewijs van die focus. Houd ons in de gaten, want er is ons in de zeer nabije toekomst een openbare preview beloofd.