Si vous envisagez de déplacer votre environnement SQL Server vers Azure, vous n'avez que quelques options. Vous pouvez d'abord utiliser la solution PaaS d'Azure SQL Database et déplacer une seule base de données ou utiliser un pool élastique. Votre autre option a été une solution IaaS utilisant des machines virtuelles Azure exécutant Microsoft SQL Server. Nous aurons bientôt une troisième option appelée instance gérée de base de données SQL.
Les instances gérées comblent le fossé entre SQL Server sur site et Azure Base de données SQL
Les instances gérées ont été présentées pour la première fois lors de la conférence Microsoft Build au printemps 2017, et jusqu'à présent, l'aperçu a été limité à un petit nombre de clients et de consultants. Les instances gérées peuvent être considérées comme un hybride entre une version complète de SQL Server et Azure SQL Database. Les bases de données uniques et élastiques sont construites sur un modèle de programmation de portée de base de données et les instances gérées sont construites sur un modèle de programmation de portée d'instance. Cela rend les instances gérées plus compatibles avec SQL Server sur site.
Les instances gérées offrent bien plus l'impression d'un serveur SQL sur site, tout en étant construites sur la même infrastructure qu'Azure SQL Database. Ce qui le distingue d'Azure SQL Database, c'est qu'il présente une instance complète de SQL Server au client. Dans Azure SQL Database, vous configurez un serveur, qui est en réalité un conteneur, puis vous pouvez avoir plusieurs bases de données sur ce serveur, mais elles ne peuvent pas facilement communiquer entre elles. Avec les instances gérées, toutes les bases de données de l'instance se trouvent sur le même serveur SQL réel, de sorte que vous bénéficiez d'une prise en charge complète des requêtes entre bases de données. Il s'agit d'une fonctionnalité énorme pour de nombreuses applications qui, autrement, n'étaient pas adaptées à Azure SQL Database, et je pense que cela permettra à de nombreuses autres applications SQL Server de migrer vers le cloud.
La fonctionnalité au niveau de l'instance est désormais prise en charge. Cela inclut des éléments tels que les tables temporaires globales, SQL Server Agent, Service Broker, la réplication, l'audit SQL et le Common Language Runtime (CLR). Les instances gérées peuvent également prendre en charge des bases de données d'une taille maximale de 35 To. Actuellement, la plus grande capacité pour une base de données Azure SQL est de 4 To au niveau supérieur. Je soupçonne que cela pourrait changer bientôt, et encore une fois, cela ouvrira le cloud pour plus d'applications.
Les instances gérées bénéficient également de toutes les fonctionnalités de la plate-forme PaaS, notamment les sauvegardes automatiques, la détection des menaces, les évaluations des vulnérabilités, la haute disponibilité, la géoréplication, le conseiller de base de données, et bien plus encore. J'ai vu une présentation qui parlait du fonctionnement du processus de basculement automatique et j'ai appris que les objets au niveau du serveur sont répliqués sur l'instance de basculement. Cela signifie que des éléments tels que les connexions et les tâches (points sensibles pour bon nombre de nos environnements actuels) sont gérés pour vous.
Au cours de la dernière année, j'ai aidé de nombreux clients à migrer vers Azure SQL Database, et l'un des principaux défis est la migration des données. Vous ne pouvez pas simplement effectuer une sauvegarde et une restauration SQL Server sur Azure SQL Database. J'ai été très heureux d'apprendre qu'avec les instances gérées de base de données SQL, nous pouvons utiliser des sauvegardes SQL Server natives et restaurer des instances gérées, cependant, vous devez utiliser le mécanisme de sauvegarde vers URL. Cela rendra les migrations vers les instances gérées beaucoup plus faciles, cependant, puisque les instances gérées sont construites sur Azure SQL Database, il s'agit d'un ticket à sens unique :vous ne pouvez pas sauvegarder vos bases de données d'instances gérées et les restaurer sur site. Si vous avez décidé de ramener votre base de données sur site ou hors des instances gérées, vous devrez exporter vos données.
Les bases de données sur les instances gérées sont beaucoup plus prêtes à migrer vers Azure SQL Base de données
D'autre part, comme elles sont construites sur la plate-forme Azure SQL Database, les bases de données individuelles que vous placez dans une instance gérée peuvent être migrées vers leurs propres bases de données Azure SQL individuelles. Cela fait d'une instance gérée un tremplin parfait, où vous pouvez résoudre les complications d'isolation qui vous empêchent de migrer directement vers PaaS.
Je suis curieux de savoir si la réplication est prise en charge. Je n'ai pas encore pu savoir si une base de données Managed Instance peut être un éditeur ou si elle ne peut être qu'un abonné, comme une base de données Azure SQL. S'il peut s'agir d'un éditeur, cela pourrait être un moyen efficace de migrer vers une installation sur site. J'espère vraiment que dans un avenir proche, nous aurons également la possibilité de restaurer des sauvegardes SQL Server natives sur des bases de données SQL Azure singleton. Il semble que la technologie existe, il suffit de l'étendre à l'environnement PaaS existant.
Une autre observation intéressante à propos des instances gérées est que puisque la technologie est construite sur le modèle Azure SQL Database, la version SQL Server suivra celle d'Azure SQL Database. Cela pourrait compliquer les choses avec le support du fournisseur. De nombreux fournisseurs déclareront qu'ils certifient leur produit sur SQL Server version X. Même si les instances gérées prendront en charge presque toutes les fonctionnalités de SQL Server 2017, elles n'utiliseront pas la même version de build, de sorte que les vérifications de version par programmation seront compliquées. Votre meilleur plan d'action ici est de repousser le fournisseur, car il est peu probable que Microsoft hésite sur cette position, et je ne doute pas que certaines de ces conversations seront difficiles.
Les fournisseurs feront-ils l'effort de certifier leurs produits sur les instances gérées, ou cela deviendra-t-il un problème comme celui que nous avons rencontré avec la virtualisation ? Au début de la virtualisation, de nombreux fournisseurs ont déclaré qu'ils ne prenaient pas en charge leurs produits virtualisés, mais Microsoft prenait entièrement en charge la virtualisation de Windows X et de SQL Server X. Espérons que nous verrons des fournisseurs se joindre à nous et certifier leurs produits sur les instances gérées. Je vois certainement des pionniers de SQL Server qui passeront aux instances gérées après leurs propres tests.
Chaque fois qu'un client cherche à migrer vers le cloud, la sécurité est une préoccupation majeure. Les instances gérées offrent une prise en charge VNET avec des adresses IP privées et un VPN vers les réseaux sur site. Cela peut permettre à un client de protéger son environnement de l'Internet public et de bénéficier d'un isolement complet.
Je suis enthousiasmé par les instances gérées et j'ai vraiment hâte qu'elles soient plus largement disponibles. Pour les clients qui souhaitent un environnement géré, mais qui ont besoin d'une solution plus riche en fonctionnalités qu'une base de données SQL Azure singleton ou élastique, je pense que les instances gérées seraient la solution idéale. Il y a eu un écart entre Azure SQL Database et SQL Server sur une machine virtuelle Azure, car de nombreux clients ont besoin de plus que les offres Azure SQL Database, mais SQL Server sur une machine virtuelle Azure nécessite encore plus de maintenance et de responsabilité qu'ils ne le souhaitaient. Les instances gérées comblent vraiment cet écart. Ils prennent en charge une base de données beaucoup plus grande, permettent des migrations de données plus faciles, permettent des requêtes entre bases de données et ne devraient nécessiter aucune modification de code puisque la plate-forme est si hautement compatible avec SQL Server sur site.
En résumé, si votre organisation envisage de migrer vers un environnement hébergé au sein de la plate-forme Azure SQL Database, vous pourrez choisir entre des bases de données Azure SQL individuelles, des pools élastiques ou des instances gérées. Selon les besoins de votre application, l'une de ces solutions devrait convenir parfaitement. Sinon, vous avez également la possibilité d'exécuter une instance SQL Server traditionnelle sur une machine virtuelle Azure, qui offre des fonctionnalités intéressantes telles que les sauvegardes gérées, la géo-réplication, Azure Site Recovery, et bien plus encore. Microsoft continue d'investir dans la plate-forme Azure en proposant de nouveaux produits et fonctionnalités dont ses clients ont besoin, et la prochaine version de Managed Instances est une preuve continue de cet objectif. Restez à l'écoute, car on nous a promis un aperçu public dans un avenir très proche.