Implementación de un servicio de base de datos administrado con SQL Managed Instance habilitada para Azure Arc
SQL Managed Instance habilitada para Azure Arc es un servicio de Azure SQL con tecnología del motor de SQL Server que puede implementar en la infraestructura que elija.
Comparación con Azure SQL
Azure SQL es una familia de servicios de base de datos implementados en la infraestructura de Azure:
SQL Server en máquinas virtuales de Azure
Esta opción de implementación de Azure SQL permite que un producto de SQL Server con licencia completa se ejecute en la versión que prefiera en Windows o Linux. El usuario administra todo lo que hay dentro de la máquina virtual invitada, mientras que Microsoft administra la infraestructura. Esta opción se conoce como Infraestructura como servicio (IaaS).
Instancia administrada de Azure SQL
Esta opción de implementación de Azure SQL proporciona una instancia de SQL Server sin versión preinstalada como un servicio totalmente administrado. El usuario tiene acceso a la práctica totalidad de las funcionalidades de una instancia del motor de SQL Server. Microsoft administra todos los aspectos de la plataforma y la infraestructura necesarios para hospedar la instancia. Esta opción es un ejemplo de una plataforma como servicio (PaaS).
Azure SQL Database
Esta opción de implementación de Azure SQL proporciona una base de datos independiente de SQL Server con tecnología de una instancia preinstalada de SQL Server sin versión como un servicio totalmente administrado. El usuario administra la base de datos mientras que Microsoft administra la base de datos SQL, la plataforma y la infraestructura subyacentes. Esta opción también es un ejemplo de una plataforma como servicio (PaaS).
SQL Managed Instance habilitado para Azure Arc
SQL Managed Instance habilitada para Azure Arc es similar a Azure SQL Managed Instance. Tiene características y funcionalidades de administración similares. La intención de SQL Managed Instance habilitada para Azure Arc es proporcionar las mismas funcionalidades y experiencia de plataforma como servicio (PaaS) de Azure, mientras que el cliente elige y administra la infraestructura mediante la plataforma Kubernetes.
Comparación de características
Para comprender las funcionalidades de SQL Managed Instance habilitada para Azure Arc, es importante ver sus características principales, las opciones de implementación y la integración con Azure.
Características principales
Como SQL Managed Instance habilitada para Azure Arc se basa en el motor de SQL Server, proporciona características de instancia principales casi 100 % compatibles con SQL Server y Azure SQL Managed Instance. La instancia incluye una interfaz de lenguaje T-SQL compatible y todas las características de seguridad, rendimiento y disponibilidad. Puede obtener más información sobre las características de SQL Managed Instance habilitada para Azure Arc en la documentación de Microsoft.
Como sucede con Azure SQL Managed Instance, al implementar SQL Managed Instance habilitado para Azure Arc se obtiene una instancia preinstalada de SQL Server sin versión. SQL Managed Instance habilitada para Azure Arc usa imágenes de contenedor de Microsoft Container Registry (MCR).
Azure SQL Managed Instance usa servidores de puerta de enlace para abstraer la aplicación de los detalles de conectividad subyacentes. SQL Managed Instance habilitada para Azure Arc también proporciona abstracción de conexiones mediante los servicios LoadBalancer o NodePort de Kubernetes.
Niveles de servicio
Como sucede con Azure SQL Managed Instance, puede implementar una instancia de SQL Managed Instance habilitada para Azure Arc con dos opciones de implementación denominadas niveles de servicio:
De uso general: como su nombre implica, este nivel de servicio es para la mayoría de las cargas de trabajo. Este nivel de servicio tiene un límite para recursos como el núcleo y la memoria, pero incluye alta disponibilidad básica integrada mediante Kubernetes y el almacenamiento compartido. Las instancias del nivel de uso general se asignan a las características admitidas en SQL Server Standard Edition.
Crítico para la empresa: este nivel de servicio está diseñado para cargas de trabajo que necesitan el mejor rendimiento y el máximo nivel de disponibilidad. Este nivel de servicio no tiene límites de memoria ni núcleos, y usa grupos de disponibilidad para proporcionar alta disponibilidad con escalado de lectura. Las instancias del nivel Crítico para la empresa se asignan a las características admitidas en SQL Server Enterprise Edition.
Los dos niveles de servicio se facturan por núcleo, pero también incluyen la capacidad de usar licencias de Ventaja híbrida de Azure y una opción para desarrolladores sin costo alguno. El nivel de servicio Crítico para la empresa está actualmente en versión preliminar, por lo que no incurre en ningún cargo por su uso. Puede obtener más información sobre los niveles de servicio en la documentación de Microsoft.
Integración de Azure
Al implementar una instancia administrada de Azure SQL, la facturación, el uso, las métricas y los registros se pueden integrar con Azure. Además, puede usar interfaces de Azure como el portal para implementar y configurar una instancia de Azure SQL Managed Instance.
La integración de SQL Managed Instance habilitada para Azure Arc con Azure depende del modo conectado que use.
La integración con Azure se controla automáticamente con el modo conectado directo mediante agentes de Azure Arc y el controlador de datos de Azure Arc. Para la implementación y la configuración, se pueden usar interfaces de Azure como Azure Portal.
Si usa el modo conectado indirecto, se debe enviar una cantidad mínima de datos a Azure con fines de facturación. Opcionalmente, puede exportar datos como métricas y registros. No se admiten la implementación y la configuración mediante Azure Portal con el modo conectado indirecto, Sin embargo, se pueden usar interfaces como la CLI de Azure y kubectl para la implementación y configuración.
Comparación de las funcionalidades de administración
Dado que SQL Managed Instance habilitado para Azure Arc es un servicio administrado, resulta útil comparar sus funcionalidades de administración con Azure SQL Managed Instance. En las secciones siguientes se compara el motor sin versión, la implementación y la configuración, la supervisión, la alta disponibilidad, la recuperación ante desastres y las funcionalidades de migración.
Motor sin versión
Una de las ventajas de usar Azure SQL Managed Instance es que elimina la necesidad de aplicar revisiones y actualizaciones a SQL Server, el sistema operativo y el software de plataforma. El motor de Azure SQL Managed Instance es sin versión, ya que no existe el concepto de versión principal, como en SQL Server. La instancia se actualiza constantemente según sea necesario para aplicar revisiones de software o nuevas funcionalidades.
SQL Managed Instance habilitado para Azure Arc también usa un motor sin versión para que las actualizaciones se apliquen automáticamente según sea necesario mediante imágenes de contenedor actualizadas. La disponibilidad está asegurada gracias a la potencia de Kubernetes para detener e iniciar nuevos contenedores.
Implementación y configuración
La implementación de SQL Managed Instance habilitado para Azure Arc es un proceso sencillo y declarativo muy parecido al de Azure SQL Managed Instance. Al implementar SQL Managed Instance habilitado para Azure Arc, puede especificar un nivel de servicio, límites de memoria y núcleo, especificaciones de clase de almacenamiento y opciones de configuración de SQL, como Agente SQL Server, intercalación y marcas de seguimiento.
En el modo conectado directo, SQL Managed Instance habilitado para Azure Arc se puede implementar con Azure Portal. En el modo conectado indirecto, SQL Managed Instance habilitado para Azure Arc se puede implementar mediante la CLI de Azure (con la extensión arcdata), kubectl o Azure Data Studio.
Fuera de la instancia de SQL, la instancia de SQL Managed Instance habilitado para Azure Arc también se pueden configurar en modo conectado directo mediante Azure Portal. En el modo conectado, las opciones se pueden configurar fuera de la instancia de SQL con la CLI de Azure o kubectl.
Dentro de la instancia de SQL, se pueden usar interfaces estándar de SQL Server, como sp_configure, ALTER SERVER CONFIGURATION y ALTER DATABASE, para configurar las opciones de instancia y base de datos.
Supervisión
Al igual que en Azure SQL Managed Instance, puede supervisar SQL Managed Instance habilitada para Azure Arc mediante Azure Monitor para obtener métricas clave. Localmente en el clúster, también puede usar la supervisión integrada con paneles de Grafana para los nodos o la instancia de SQL.
Los registros de SQL Managed Instance habilitado para Azure Arc pueden visualizarse en Azure Portal mediante el análisis de registros. Localmente en el clúster, también puede usar registros integrados con Kibana.
Puesto que SQL Managed Instance habilitado para Azure Arc se basa en SQL Server, pueden consultarse los archivos ERRORLOG estándar para ver los errores de SQL y los detalles de la instancia. SQL Managed Instance habilitado para Azure Arc también admite todas las vistas de administración dinámica (DMV) y eventos extendidos disponibles.
Alta disponibilidad
Una de las ventajas de usar un servicio administrado como SQL Managed Instance habilitado para Azure Arc es la alta disponibilidad integrada. Al igual que en Azure SQL Managed Instance, el método que se usa para lograr una alta disponibilidad depende del nivel de servicio.
Para el nivel de servicio "De uso general", la alta disponibilidad integrada de los StatefulSets de Kubernetes se usa con almacenamiento compartido.
Para el nivel de servicio Crítico para la empresa, la alta disponibilidad integrada se proporciona mediante una combinación de StatefulSets de Kubernetes y réplicas de Grupos de disponibilidad Always On de SQL Server. Las réplicas de Grupos de disponibilidad se implementan y se configuran automáticamente para el usuario. Al igual en Azure SQL Managed Instance, hay disponible una réplica de solo lectura para descargar las cargas de trabajo de lectura. Las bases de datos del sistema, como la maestra y la modelo, forman parte del grupo de disponibilidad. Los objetos de nivel de sistema, como los trabajos del Agente SQL, estarán disponibles automáticamente después de un evento de conmutación por error.
LoadBalancers y NodePorts de Kubernetes proporcionan abstracción de conexión para la aplicación en caso de que la instancia se mueva dentro del clúster. Además, se proporciona un punto de abstracción de conexión de solo lectura para el nivel de servicio "Crítico para la empresa".
Dado que Microsoft administra la plataforma y la infraestructura al completo de Azure SQL Managed Instance, los usuarios obtienen las ventajas de un Acuerdo de Nivel de Servicio (SLA). Puesto que los clientes deben administrar la infraestructura de SQL Managed Instance habilitado para Azure Arc, el cliente será el administrador y el propietario de todos los SLA.
Recuperación ante desastres
Al igual que en Azure SQL Managed Instance, SQL Managed Instance habilitado para Azure Arc proporciona un sistema de copia de seguridad automática para las bases de datos, incluida la restauración a un momento dado. Los usuarios pueden ejecutar manualmente copias de seguridad COPY_ONLY y restaurarlas en cualquier momento.
Los usuarios deben configurar un objetivo de punto de recuperación (RPO) deseado y un período de retención. Esta configuración determina la frecuencia con la que se realizan las copias de seguridad del registro de transacciones y durante cuánto tiempo se conservan las copias de seguridad.
Azure SQL Managed Instance proporciona redundancia integrada para las copias de seguridad mediante Azure Storage. Los usuarios de SQL Managed Instance habilitado para Azure Arc pueden configurar una clase de almacenamiento de Kubernetes específica que se usará para las copias de seguridad de SQL, pero serán responsables de las necesidades de redundancia.
Migración
Dado que las instancias de SQL Managed Instance habilitado para Azure Arc usan un motor de SQL Server, las versiones de SQL Server existentes se pueden migrar mediante la copia de seguridad y la restauración de la base de datos. Las bases de datos se pueden restaurar directamente desde Azure Storage o mediante la realización de una copia de seguridad local en el contenedor para SQL Managed Instance.
Interfaces para SQL Managed Instance habilitado para Azure Arc
Las interfaces siguientes se pueden usar con SQL Managed Instance habilitado para Azure Arc con el fin de administrar la instancia y compilar aplicaciones:
SQL Server Management Studio (SSMS)
SQL Server Management Studio (SSMS) es totalmente compatible con la consulta y la administración de SQL Managed Instance habilitado para Azure Arc.
Azure Data Studio (ADS)
Azure Data Studio (ADS) es una herramienta multiplataforma que puede consultar y administrar SQL Managed Instance habilitado para Azure Arc. ADS admite consultas mediante T-SQL junto con cuadernos de T-SQL. Además, puede usar la extensión Azure Arc para ADS a fin de crear y administrar recursos de servicios de datos habilitados para Azure Arc, como los de controlador de datos, SQL Managed Instance y servidor de PostgreSQL (versión preliminar).
Herramientas de línea de comandos de SQL
Las herramientas de línea de comandos de SQL, como sqlcmd y bcp, se admiten con SQL Managed Instance habilitado para Azure Arc.
Azure Portal
Si usa el modo conectado directo, puede crear, ver y administrar servicios de datos habilitados para Azure Arc desde Azure Portal. Además, si carga datos mediante el modo conectado indirecto, puede ver los detalles de SQL Managed Instance habilitado para Azure Arc en Azure Portal.
Azure CLI
Puede usar la extensión arcdata con la Interfaz de la línea de comandos de Azure (CLI) multiplataforma para crear, ver y administrar servicios de datos habilitados para Azure Arc, como SQL Managed Instance. La CLI de Azure solo se puede usar en modo conectado indirecto para implementar SQL Managed Instance habilitado para Azure Arc. La CLI de Azure es la interfaz principal para cargar la facturación, las métricas y los registros cuando se usa el modo conectado indirecto.
kubectl
Puede usar la interfaz de la línea de comandos (CLI) kubectl multiplataforma para crear, ver y administrar Servicios de datos habilitados para Azure Arc, incluido SQL Managed Instance. La herramienta CLI de Azure es la interfaz de línea de comandos preferida para su uso con SQL Managed Instance habilitado para Azure Arc, pero puede usar archivos yaml con kubectl para crear y administrar recursos. kubectl solo se puede usar en modo conectado indirecto para implementar SQL Managed Instance habilitado para Azure Arc. Algunos escenarios, como la edición de la configuración predeterminada de restauración a un momento dado, requieren el uso de kubectl.
Controladores de SQL
Puede usar cualquier controlador de SQL Server compatible con la aplicación para conectarse y ejecutar consultas en SQL Managed Instance habilitado para Azure Arc. Se incluye compatibilidad con controladores para lenguajes de programación populares, como C#, Java, Node.js, PHP, Python y Ruby.