Déployer un service de base de données managé avec SQL Managed Instance avec Azure Arc
SQL Managed Instance avec Azure Arc est un service Azure SQL alimenté par le moteur SQL Server qui peut être déployé sur l’infrastructure de votre choix.
Comparaison avec Azure SQL
Azure SQL est une famille de services de base de données déployés dans l’infrastructure Azure :
SQL Server sur machine virtuelle Azure
Cette option de déploiement Azure SQL permet l’exécution d’un produit SQL Server sous licence sur la version de votre choix sur Windows ou Linux. L’utilisateur gère tout dans la machine virtuelle invitée, tandis que Microsoft gère l’infrastructure. Cette option est connue sous le nom d’infrastructure as a service (IaaS).
Azure SQL Managed Instance
Cette option de déploiement Azure SQL fournit une instance SQL Server sans version préinstallée en tant que service complètement managé. L’utilisateur a accès à presque 100 % des fonctions d’une instance de moteur SQL Server. Microsoft gère tous les aspects de la plateforme et de l’infrastructure nécessaires pour héberger l’instance. Cette option est un exemple de platform as a service (PaaS).
Azure SQL Database
Cette option de déploiement Azure SQL fournit une base de données SQL Server autonome alimentée par une instance SQL Server sans version préinstallée en tant que service complètement managé. L’utilisateur gère la base de données tandis que Microsoft gère l’instance, la plateforme et l’infrastructure SQL sous-jacentes. Cette option est aussi un exemple de platform as a service (PaaS).
SQL Managed Instance avec Azure Arc
Managed Instance SQL avec Azure Arc est semblable à Azure SQL Managed Instance. Il offre des fonctionnalités et des fonctions de gestion similaires. L’objectif de SQL Managed Instance avec Azure Arc est de fournir les mêmes fonctions PaaS (Platform as a Service) et expérience d’Azure, tout en laissant le client choisir et gérer l’infrastructure en utilisant la plateforme Kubernetes.
Comparaison des fonctionnalités
Pour comprendre les fonctions de SQL Managed Instance avec Azure Arc, il est important d’examiner ses principales fonctionnalités, ses options de déploiement et son intégration à Azure.
Fonctionnalités de base
Étant donné que SQL Managed Instance avec Azure Arc est basé sur le moteur SQL Server, il offre des fonctionnalités d’instance de base presque 100 % compatibles avec SQL Server et Azure SQL Managed Instance. L’instance comprend une interface de langage T-SQL compatible et toutes les fonctionnalités de sécurité, de performance et de disponibilité. Vous pouvez en savoir plus sur les fonctionnalités de SQL Managed Instance avec Azure Arc dans la documentation de Microsoft.
Comme avec Azure SQL Managed Instance, lorsque vous déployez SQL Managed Instance avec Azure Arc, vous obtenez une instance SQL Server sans version préinstallée. SQL Managed Instance avec Azure Arc utilise les images conteneur de Microsoft Container Registry (MCR).
Azure SQL Managed Instance utilise des serveurs de passerelle pour extraire l’application des détails de connectivité sous-jacents. SQL Managed Instance avec Azure Arc fournit également l’abstraction de connexion à l’aide des services Kubernetes LoadBalancer ou NodePort.
Niveaux de service
Comme avec Azure SQL Managed Instance, vous pouvez déployer SQL Managed Instance avec Azure Arc via deux options de déploiement appelées niveaux de service :
Usage général : comme son nom l’indique, ce niveau de service concerne la plupart des charges de travail. Ce niveau de service a une limite pour les ressources comme les cœurs et la mémoire, mais il est accompagné d’une haute disponibilité intégrée de base via Kubernetes et le stockage partagé. Les instances dans le niveau Usage général correspondent aux fonctionnalités prises en charge dans SQL Server Édition Standard.
Critique pour l’entreprise : ce niveau de service est conçu pour les charges de travail qui nécessitent les meilleures performances et le plus haut niveau de disponibilité. Ce niveau de service n’a pas de limites pour la mémoire ou les cœurs, et utilise des groupes de disponibilité pour fournir une haute disponibilité avec l’échelle horizontale en lecture. Les instances dans le niveau Critique pour l’entreprise correspondent aux fonctionnalités prises en charge dans SQL Server Édition Entreprise.
Les deux niveaux de service sont facturés sur la base des cœurs, mais donnent aussi la possibilité d’utiliser des licences Azure Hybrid Benefit et une option développeur sans frais. Le niveau de service Critique pour l’entreprise est actuellement en préversion et n’engendre pas de frais d’utilisation. Vous pouvez en savoir plus sur les niveaux de service dans la documentation de Microsoft.
Intégration Azure
Lorsque vous déployez une instance Azure SQL Managed Instance, la facturation, l’utilisation, les métriques et les journaux peuvent être intégrés dans Azure. De plus, vous pouvez utiliser les interfaces Azure comme le portail pour déployer et configurer une instance Azure SQL Managed Instance.
L’intégration dans Azure pour SQL Managed Instance avec Azure Arc dépend du mode connecté que vous utilisez.
L’intégration dans Azure est gérée automatiquement avec le mode connecté direct via les agents Azure Arc et le contrôleur de données Azure Arc. Les interfaces Azure comme le portail Azure peuvent être utilisées pour le déploiement et la configuration.
Si vous utilisez le mode de connexion indirect, une quantité minimale de données doit être envoyée à Azure à des fins de facturation. Si vous le souhaitez, vous pouvez exporter des données telles que des métriques et des journaux. Le déploiement et la configuration via le portail Azure ne sont pas pris en charge avec le mode connecté indirect. Toutefois, les interfaces comme Azure CLI et kubectl peuvent être utilisées pour le déploiement et la configuration.
Comparaison des fonctions de gestion
Comme SQL Managed Instance avec Azure Arc est un service géré, il est utile de comparer ses capacités de gestion avec celles d’Azure SQL Managed Instance. Les sections suivantes comparent les fonctionnalités de moteur sans version, de déploiement et de configuration, de monitoring, de haute disponibilité, de récupération d’urgence et de migration.
Sans version
L’un des avantages de l’utilisation d’Azure SQL Managed Instance est que vous n’avez plus besoin d’appliquer des correctifs et des mises à jour à SQL Server, au système d’exploitation, ni à tout autre logiciel de la plateforme. Le moteur pour Azure SQL Managed Instance est souvent appelé sans version parce que le concept de version majeure comme avec SQL Server n’existe pas. L’instance est constamment mise à jour dès que nécessaire pour les correctifs logiciels ou les nouvelles fonctionnalités.
SQL Managed Instance avec Azure Arc utilise aussi un moteur sans version pour pouvoir appliquer les mises à jour automatiquement dès que nécessaire via des images conteneur mises à jour. La disponibilité est maintenue en ayant recours à la puissance de Kubernetes pour arrêter et démarrer de nouveaux conteneurs.
Déploiement et configuration
Le déploiement de SQL Managed Instance avec Azure Arc est un processus simple et déclaratif, tout comme celui d’Azure SQL Managed Instance. Quand vous déployez SQL Managed Instance avec Azure Arc, vous pouvez spécifier un niveau de service, des limites de cœur et de mémoire, des spécifications de classe de stockage et des options de configuration SQL telles que SQL Server Agent, le classement et les indicateurs de trace.
En mode connecté direct, SQL Managed Instance avec Azure Arc peut être déployé avec le portail Azure. En mode connecté indirect, SQL Managed Instance avec Azure Arc peut être déployé en utilisant Azure CLI (avec l’extension arcdata), kubectl ou Azure Data Studio.
En dehors de l’instance SQL, SQL Managed Instance avec Azure Arc peut aussi être configuré en mode connecté direct en utilisant le portail Azure. En mode connecté, les options peuvent être configurées en dehors de l’instance SQL avec Azure CLI ou kubectl.
Dans l’instance SQL, les interfaces SQL Server standard, telles que sp_configure, ALTER SERVER CONFIGURATION et ALTER DATABASE, peuvent être utilisées pour configurer les options d’instance et de base de données.
Surveillance
Comme avec Azure SQL Managed Instance, vous pouvez superviser l’utilisation de SQL Managed Instance avec Azure Arc à l’aide d’Azure Monitor pour les métriques clés. Localement au sein du cluster, vous pouvez également utiliser la supervision intégrée avec des tableaux de bord Grafana pour les nœuds ou l’instance SQL.
Les journaux de SQL Managed Instance avec Azure Arc peuvent être consultés dans le portail Azure par le biais de Log Analytics. Localement au sein du cluster, vous pouvez aussi utiliser des journaux intégrés avec Kibana.
Comme SQL Managed Instance avec Azure Arc est basé sur SQL Server, les fichiers ERRORLOG standard sont disponibles pour consulter les erreurs SQL et les détails de l’instance. SQL Managed Instance avec Azure Arc prend également en charge toutes les vues de gestion dynamique (DMV) et tous les événements étendus disponibles.
Haute disponibilité
L’un des avantages de l’utilisation d’un service managé comme SQL Managed Instance avec Azure Arc est la haute disponibilité intégrée. Comme avec Azure SQL Managed Instance, la méthode utilisée pour obtenir une haute disponibilité dépend du niveau de service.
Pour le niveau de service Usage général, la haute disponibilité intégrée de StatefulSets Kubernetes est utilisée avec le stockage partagé.
Pour le niveau de service Critique pour l’entreprise, la haute disponibilité intégrée est fournie par une combinaison de StatefulSets Kubernetes et de réplicas de groupe de disponibilité Always On SQL Server. Les réplicas de groupe de disponibilité sont automatiquement déployés et configurés pour l’utilisateur. Comme avec Azure SQL Managed Instance, un réplica en lecture seule est disponible pour décharger les charges de travail en lecture. Les bases de données système, telles que master et model, font partie du groupe de disponibilité. Les objets de niveau système, comme les travaux SQL Agent, deviennent automatiquement disponibles après un événement de basculement.
Les services Kubernetes LoadBalancers et NodePorts fournissent une abstraction de connexion pour l’application si l’instance est déplacée dans le cluster. Un point d’abstraction de connexion en lecture seule est également fourni pour le niveau de service Critique pour l’entreprise.
Étant donné que Microsoft gère l’ensemble de la plateforme et de l’infrastructure d’Azure SQL Managed Instance, les utilisateurs bénéficient d’un Contrat de niveau de service (SLA). Étant donné que les clients doivent gérer l’infrastructure pour SQL Managed Instance avec Azure Arc, le client détient et gère tout contrat SLA.
Récupération d'urgence
Comme Azure SQL Managed Instance, SQL Managed Instance avec Azure Arc fournit un système de sauvegarde automatique pour les bases de données, dont une restauration à un instant dans le passé. Les utilisateurs peuvent exécuter manuellement des sauvegardes COPY_ONLY et les restaurer à tout moment.
Les utilisateurs configurent un objectif de point de récupération (RPO) et une période de conservation souhaités. Ces paramètres déterminent la fréquence à laquelle les sauvegardes de journal des transactions sont effectuées et combien de temps elles sont conservées.
Azure SQL Managed Instance fournit une redondance intégrée pour les sauvegardes à l’aide du stockage Azure. Les utilisateurs pour SQL Managed Instance avec Azure Arc peuvent configurer une classe de stockage Kubernetes spécifique à utiliser pour les sauvegardes SQL, mais sont responsables des besoins de redondance.
Migration
Parce que SQL Managed Instance avec Azure Arc utilise un moteur SQL Server, les versions SQL Server existantes peuvent être migrées en utilisant la sauvegarde et la restauration de base de données. Les bases de données peuvent être restaurées directement à partir du stockage Azure ou en copiant une sauvegarde locale dans le conteneur de SQL Managed Instance.
Interfaces pour SQL Managed Instance avec Azure Arc
Les interfaces suivantes peuvent être utilisées avec SQL Managed Instance avec Azure Arc pour gérer l’instance et créer des applications :
SQL Server Management Studio (SSMS)
SQL Server Management Studio (SSMS) est totalement compatible pour interroger et gérer SQL Managed Instance avec Azure Arc.
Azure Data Studio (ADS)
Azure Data Studio (ADS) est un outil multiplateforme qui peut interroger et gérer SQL Managed Instance avec Azure Arc. ADS prend en charge les requêtes en utilisant T-SQL et des notebooks T-SQL. Vous pouvez aussi utiliser l’extension ADS Azure Arc pour créer et gérer des ressources de services de données avec Azure Arc, comme le contrôleur de données, l’instance managée SQL et le serveur PostgreSQL (préversion).
Outils en ligne de commande SQL
Les outils en ligne de commande SQL comme sqlcmd et bcp sont pris en charge par SQL Managed Instance avec Azure Arc.
Portail Azure
Si vous utilisez le mode connecté direct, vous pouvez créer, visualiser et gérer les services de données avec Azure Arc dans le portail Azure. Par ailleurs, si vous chargez des données en mode connecté indirect, vous pouvez voir les détails de SQL Managed Instance avec Azure Arc dans le portail Azure.
Azure CLI
Vous pouvez utiliser l’extension arcdata avec l’interface de ligne de commande (CLI) Azure multiplateforme pour créer, visualiser et gérer les services de données avec Azure Arc, comme SQL Managed Instance. L’interface Azure CLI peut être utilisée seulement en mode connecté indirect pour déployer SQL Managed Instance avec Azure Arc. L’interface Azure CLI est la principale interface pour charger la facturation, les métriques et les journaux en mode connecté indirect.
kubectl
Vous pouvez utiliser l’interface de ligne de commande (CLI) kubectl multiplateforme pour créer, voir et gérer les services de données avec Azure Arc, notamment SQL Managed Instance. L’interface Azure CLI est l’interface de ligne de commande par défaut à utiliser avec SQL Managed Instance avec Azure Arc, mais vous pouvez utiliser des fichiers yaml avec kubectl pour créer et gérer des ressources. Kubectl peut être seulement utilisé en mode connecté indirect pour déployer SQL Managed Instance avec Azure Arc. Certains scénarios, tels que la modification de la configuration de la restauration à un instant dans le passé par défaut, demandent d’utiliser kubectl.
Pilotes SQL
Vous pouvez utiliser n’importe quel pilote SQL Server pris en charge pour votre application afin de vous connecter et d’exécuter des requêtes sur SQL Managed Instance avec Azure Arc. La prise en charge de pilotes est comprise pour les langages de programmation connus comme C#, Java, Node.js, PHP, Python et Ruby.