Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure SQL Managed Instance es un motor de base de datos de plataforma como servicio (PaaS) totalmente administrado que proporciona compatibilidad casi completa con la versión más reciente de SQL Server Enterprise Edition. Combina un modelo de implementación con ámbito de instancia con redes nativas de red virtual, lo que proporciona compatibilidad amplia con características de SQL Server junto con las ventajas operativas de una plataforma administrada. SQL Managed Instance tiene como destino cargas de trabajo de SQL Server que dependen de características con ámbito de instancia, como consultas entre bases de datos, agente SQL Server, Service Broker y integración de Common Language Runtime (CLR).
En este artículo se da por supuesto que, como arquitecto, ha revisado el árbol de decisiones del almacén de datos y ha elegido Azure SQL Managed Instance como motor de base de datos para su carga de trabajo.
La guía de este artículo proporciona recomendaciones arquitectónicas que están alineadas con los principios de los pilares del marco Well-Architected.
Ámbito de la tecnología
Esta revisión se centra en las decisiones relacionadas entre sí para los siguientes recursos de Azure:
- Instancia Gestionada de Azure SQL
Nota:
Esta guía de servicio se basa en las instrucciones de la guía del servicio Azure SQL Database. Sql Managed Instance comparte el motor de base de datos de SQL Server con SQL Database, pero usa un modelo de implementación con ámbito de instancia con distintas funcionalidades de arquitectura, redes y características. Revise la guía de SQL Database para obtener instrucciones de plataforma compartida. Esta guía se centra en las funcionalidades específicas de SQL Managed Instance y las consideraciones de arquitectura.
Confiabilidad
El propósito del pilar Fiabilidad es proporcionar una funcionalidad continuada mediante la creación de suficiente resiliencia y la capacidad de recuperarse rápidamente de los fallos.
Los principios de diseño de confiabilidad proporcionan una estrategia de diseño de alto nivel aplicada a componentes individuales, flujos del sistema y al sistema en su conjunto.
Lista de comprobación de diseño de cargas de trabajo
Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Fiabilidad. Determine su relevancia para los requisitos empresariales, teniendo en cuenta la naturaleza de la aplicación y la importancia de sus componentes. Amplíe la estrategia para incluir más enfoques según sea necesario.
Familiarícese con SQL Managed Instance guía de confiabilidad del producto: para obtener más información, consulte los siguientes recursos:
Revise cuotas, límites y problemas conocidos de SQL Managed Instance: Sql Managed Instance aplica límites de implementación regionales, recuentos de bases de datos y límites de almacenamiento que varían según el tipo y el nivel de suscripción. Las implementaciones de nivel superior consumen más cuota de núcleos virtuales, lo que restringe el planeamiento de la capacidad regional.
- Tenga en cuenta los problemas conocidos que afectan a los grupos de conmutación por error, el comportamiento de copia de seguridad durante el uso del vínculo de replicación y las restricciones de migración de versiones anteriores de SQL Server. Revise estas limitaciones durante el diseño inicial para evitar restricciones que no se pueden corregir fácilmente más adelante.
Use características nativas de recuperación ante desastres y copia de seguridad: Use la restauración geográfica para recuperarse de una interrupción del servicio. Puede restaurar una base de datos en cualquier instancia administrada de cualquier región Azure. La restauración usa las copias de seguridad con replicación geográfica más recientes.
Utilice la restauración a un momento dado para realizar la recuperación en caso de errores humanos. La restauración a un punto en el tiempo devuelve la base de datos a un momento anterior para recuperar datos de cambios no intencionados. Combínelo con la inmutabilidad de las copias de seguridad para ayudar a protegerse contra el ransomware y la corrupción intencionada de datos.
Anticipe posibles errores: Use el análisis del modo de error para prever errores y planear mitigaciones para SQL Managed Instance.
Failure Mitigación Las operaciones de administración tardan horas y bloquean otras operaciones en la instancia o en la subred Planee las operaciones de escalado durante las ventanas de mantenimiento. Evite las operaciones de gestión concurrentes y tenga en cuenta las duraciones de varias horas en los planes de recuperación. La propagación inicial de un grupo de conmutación por error puede agotar el tiempo de espera debido a vínculos de red lentos o a bases de datos de gran tamaño Use el emparejamiento global de redes virtuales para obtener el mayor ancho de banda. Supervise el progreso de propagación y planee la duración en función del tamaño de la base de datos y la velocidad del vínculo. Las operaciones de administración en una instancia de una subred pueden bloquear o retrasar las operaciones en otras instancias que comparten el mismo clúster virtual Aísle las instancias de producción en subredes dedicadas para evitar el impacto cruzado de las operaciones de instancia de desarrollo o prueba. Cree redundancia a través de la distribución de zona y la selección de nivel adecuada: Use la redundancia de zona y la selección de niveles adecuada para eliminar puntos únicos de error dentro de una región.
Active la redundancia de nivel de zona para distribuir réplicas entre zonas de disponibilidad. La arquitectura y la idoneidad difieren según la configuración de nivel e implementación.
Evalúe los efectos de redundancia en el rendimiento y los servicios dependientes, incluida la latencia entre zonas en las cargas de trabajo de procesamiento de transacciones en línea (OLTP) y la alineación del almacenamiento de copia de seguridad con implementaciones con redundancia de zona.
Planee el escalado en torno a los tiempos de ejecución de la operación de administración: Las operaciones de administración tardan horas en lugar de minutos, lo que requiere un enfoque diferente para escalar la estrategia y el planeamiento de la capacidad.
Anticipe plazos prolongados para la creación inicial en la subred, que requiere significativamente más tiempo debido al aprovisionamiento de clústeres virtuales. Las operaciones simultáneas se ponen en cola secuencialmente dentro de una subred.
Dimensione las subredes con margen suficiente para futuras ampliaciones. Las subredes infradimensionada restringen el crecimiento y las generaciones de hardware mixto crean clústeres virtuales independientes que consumen direcciones IP adicionales.
Preaprovisiona instancias en espera cuando necesites tiempos de respuesta estrictos de escalado. Aísle las cargas de trabajo de producción en subredes dedicadas para evitar el bloqueo de operaciones entre instancias.
Configure la supervisión y las alertas para el estado de la instancia y el estado de replicación: priorice las alertas de las métricas que indican de forma temprana riesgos de confiabilidad. Realice un seguimiento de la disponibilidad de las instancias a través de eventos de Resource Health, supervise las transiciones del estado de la operación de administración a través de un registro de actividad y compruebe la finalización automatizada de copias de seguridad periódicamente porque los errores de copia de seguridad pueden aparecer silenciosamente cuando surgen problemas de almacenamiento o sistema de nombres de dominio (DNS). En las instancias configuradas con grupos de conmutación por error, establezca alertas sobre el retraso de replicación con respecto a los umbrales del objetivo de punto de recuperación (RPO) para detectar desviaciones de la replicación geográfica antes de que provoquen una exposición inaceptable a la pérdida de datos.
Las transiciones de estado del grupo de conmutación por error revelan interrupciones antes de que se conviertan en brechas de recuperación.
Implemente técnicas de resiliencia de conexión y autoconservación: Construya resiliencia a nivel de aplicación para mitigar fallos transitorios derivados del mantenimiento planificado, las conmutaciones por error y los cambios de rol en DNS.
Agregue lógica de reintento con retroceso exponencial que tenga en cuenta la duración real de la conmutación por error y las ventanas ampliadas de actualización de DNS durante una conmutación por error geográfica.
Prepárese para una degradación del rendimiento por caché fría después de las conmutaciones por error del nivel de Uso general, en las que la instancia se reinicia en un nodo nuevo sin réplicas activas.
Programar ventanas de mantenimiento durante períodos de tráfico bajo. Escalone las ventanas de mantenimiento entre los pares de grupos de conmutación por error para evitar el mantenimiento simultáneo de ambos miembros.
Diseñe la estrategia de recuperación ante desastres mediante grupos de conmutación por error: Los grupos de conmutación por error replican todas las bases de datos de usuario como una unidad en una instancia secundaria geográfica de otra región, pero no se incluyen las bases de datos del sistema. Debe sincronizar los inicios de sesión, las credenciales, los trabajos del Agente SQL y la configuración de nivel de instancia de forma independiente para evitar errores de autenticación y brechas operativas después de la conmutación por error.
Use los puntos de conexión del agente de escucha del grupo de conmutación por error en las cadenas de conexión para evitar cambios durante la conmutación por error. Sincronice las directivas de retención entre miembros porque los cambios de configuración no se replican. Para entornos híbridos, el vínculo instancia administrada ofrece una ruta de replicación alternativa.
Recomendaciones de configuración
| Recomendación | Ventajas |
|---|---|
| Activen la redundancia de zona para las cargas de trabajo de SQL Managed Instance de producción, que requieren protección contra fallos del centro de datos. Puede configurar la redundancia de zona durante la creación de instancias o convertir instancias existentes. Compruebe la idoneidad del nivel antes de continuar. | Logra mayores garantías de acuerdo de nivel de servicio (SLA) que las implementaciones con redundancia local y sobrevive a interrupciones de nivel de centro de datos sin cambios en la conexión de la aplicación. Elimina la zona de disponibilidad como único punto de error, lo que significa que el mantenimiento planeado en una zona no obliga a realizar una conmutación por error visible para la carga de trabajo. |
| Dimensione la subred delegada para acomodar los requisitos actuales de instancia más el margen para escalamiento futuro. Utilice la calculadora de dimensionamiento de subred para determinar el espacio mínimo de direcciones IP para la cantidad prevista de instancias en configuraciones de hardware y niveles. Agregue capacidad de búfer más allá de los requisitos mínimos, ya que el cambio de tamaño de subred requiere operaciones de migración complejas. Tenga en cuenta los límites del clúster virtual, donde diferentes generaciones de hardware y combinaciones de niveles consumen direcciones IP de subred adicionales. |
Un dimensionamiento adecuado de la subred evita cuellos de botella de escalado que requerirían una migración de subred para resolverse. El espacio de direcciones IP sobreaprovisionado cuesta poco y proporciona flexibilidad para el crecimiento futuro de las instancias y los cambios de nivel. |
| Configure alertas de Azure Monitor para métricas de confiabilidad críticas, como la disponibilidad de instancias, el retraso de replicación y el estado de copia de seguridad. Cree reglas de alerta que se desencadenen antes de que el retraso de replicación infrinte los umbrales de RPO. Realice un seguimiento del consumo de almacenamiento para evitar errores de copia de seguridad. | Las alertas proactivas le permiten responder rápidamente a las desviaciones de replicación y a los problemas de estado de la instancia antes de que provoquen pérdida de datos o interrupciones prolongadas. La detección temprana de errores de copia de seguridad evita brechas en la cobertura de puntos de recuperación que podrían pasar desapercibidas hasta que necesite una restauración. |
| Agregue lógica de reintento con retroceso exponencial que tenga en cuenta los comportamientos de reconexión de SQL Managed Instance durante los eventos de conmutación por error. Amplíe los tiempos de espera de reintento en escenarios con agentes de escucha de grupos de conmutación por error para abarcar la ventana de cambio de rol de DNS. | La lógica de reintento absorbe las interrupciones de conectividad transitorias provocadas por eventos de mantenimiento y conmutación, lo que impide que los errores de la aplicación lleguen a los usuarios. Las aplicaciones se recuperan automáticamente de interrupciones breves sin intervención manual. |
| Configura las ventanas de mantenimiento para alejar los eventos de conmutación por error planificados del horario predeterminado. Seleccione ventanas que se alineen con la actividad de carga de trabajo más baja. En los pares de grupos de conmutación por error, asigne programaciones de ventanas de mantenimiento diferentes a las instancias principal y secundaria para evitar el mantenimiento simultáneo. |
Las ventanas de mantenimiento desplazan los eventos de conmutación por error planeados a períodos predecibles y de poco tráfico, lo que reduce el efecto de las interrupciones de conexión transitorias en los usuarios. Las programaciones escalonadas entre las instancias de un grupo de conmutación por error evitan el mantenimiento simultáneo de ambos miembros. |
| Configure grupos de conmutación por error con ámbito de instancia y una directiva de conmutación por error administrada por el cliente para la recuperación ante desastres entre regiones. Cree una instancia secundaria geográfica en una región emparejada que tenga una configuración coincidente y la misma zona DNS. Establezca la conectividad de red virtual entre subredes mediante el emparejamiento de red virtual global para la replicación con la latencia más baja. |
Los grupos de conmutación por error proporcionan replicación geográfica automatizada de todas las bases de datos de usuario y redirigen las conexiones mediante puntos de conexión basados en DNS. Este enfoque admite la recuperación entre regiones sin cambios en la cadena de conexión de la aplicación. La directiva de conmutación por error administrada por el cliente le permite mantener el control sobre las decisiones y los tiempos de recuperación. |
| Configure el almacenamiento de copia de seguridad con redundancia geográfica para mantener copias de seguridad en una región emparejada. Utiliza la restauración geográfica como opción de recuperación alternativa. Configure la retención a largo plazo que usa almacenamiento con redundancia geográfica (GRS) para escenarios de cumplimiento que requieren disponibilidad extendida. | El almacenamiento de copias de seguridad con redundancia geográfica le permite recuperarse en cualquier región de Azure durante un desastre regional, incluso sin grupos de conmutación por error. Este enfoque proporciona una ruta de recuperación independiente que no depende del estado de replicación en tiempo real. |
| Habilite la inmutabilidad de copia de seguridad para proteger las copias de seguridad recientes de los cambios. | La inmutabilidad de la copia de seguridad refuerza la garantía de recuperación para escenarios de ransomware y amenazas internas. Sin embargo, dado que la inmutabilidad no se puede invertir después de habilitarla, alinee la configuración de retención con los requisitos de cumplimiento y recuperación antes de la implementación. |
| Tenga en cuenta el tiempo de aprovisionamiento de la instancia en los cálculos del objetivo de tiempo de recuperación (RTO) de la restauración a un momento dado (PITR), ya que PITR restaura en una instancia nueva y no en una existente. Ejecute restauraciones de prueba para medir la duración de la recuperación de un extremo a otro, incluido el aprovisionamiento de la instancia. Pruebe tanto escenarios de primera instancia en la subred como de subred existente para conocer la variación de los tiempos de restauración. |
Los cálculos precisos del RTO que tienen en cuenta el tiempo de aprovisionamiento de la instancia evitan que subestime la duración de la recuperación durante incidentes reales. Los tiempos de restauración validados proporcionan confianza en que PITR cumple los requisitos de recuperación de la carga de trabajo. |
Seguridad
El propósito del pilar seguridad es proporcionar garantías de confidencialidad, integridad y disponibilidad a la carga de trabajo.
Los principios de diseño de seguridad proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos aplicando enfoques al diseño técnico de SQL Managed Instance.
Lista de comprobación de diseño de cargas de trabajo
Inicie la estrategia de diseño en función de la lista de comprobación de revisión de diseño de seguridad e identifique vulnerabilidades y controles para mejorar la posición de seguridad. Amplíe la estrategia para incluir más enfoques según sea necesario.
Establezca una línea base de seguridad: Comience con la línea de base de seguridad de Azure para Azure SQL. Céntrese en los controles que más afecta el modelo con ámbito de instancia, incluyendo roles personalizados a nivel de servidor para la segmentación administrativa, la delegación de subredes en redes virtuales para el aislamiento de red, la gestión de claves TDE (Cifrado de Datos Transparente) a nivel de instancia y la auditoría de operadores para el acceso al soporte técnico de Microsoft.
SQL Managed Instance comparte la base de seguridad de Azure SQL, pero presenta controles específicos de la instancia, como ensamblados de Common Language Runtime (CLR), servidores vinculados y agente SQL, que expanden la superficie expuesta a ataques más allá de lo que expone SQL Database. Priorice estos controles en la revisión de línea base.
Aplique estrategias de segmentación mediante controles basados en identidades y de nivel de red: SQL Managed Instance admite la segmentación basada en identidades a través de roles de nivel de servidor y de base de datos que aplican la separación de tareas. Los roles de nivel de servidor personalizados proporcionan una segmentación administrativa detallada que no está disponible en SQL Database. Separar el acceso del plano de control del acceso al plano de datos mantiene la administración de instancias distinta de las operaciones de datos.
La segmentación de nivel de red se basa en la implementación de instancias en subredes delegadas dedicadas en las que los grupos de seguridad de red (NSG) controlan los flujos de tráfico. Evite reutilizar tablas de rutas y grupos de seguridad de red (NSG) entre subredes que participen en el emparejamiento de redes virtuales con subredes de SQL Managed Instance.
Los grupos de instancias comparten recursos de máquina virtual subyacentes, lo que afecta a las garantías de aislamiento de inquilinos al consolidar instancias. Evalúe si las cargas de trabajo que tienen requisitos de seguridad diferentes necesitan instancias independientes.
Integración con Microsoft Entra ID para la administración de identidades y acceso: Sql Managed Instance admite la autenticación de Microsoft Entra a través de varios métodos. Este soporte centraliza la administración de identidades y admite directivas de acceso condicional. SQL Managed Instance también admite la autenticación de Windows mediante Kerberos para entidades de seguridad de Microsoft Entra, una funcionalidad que no está disponible en SQL Database. Puede realizar una migración lift-and-shift de aplicaciones heredadas sin cambios en el código.
Planee la arquitectura de identidad mediante la catalogación de identidades administrativas, de operador y de carga de trabajo. Asignar roles de la base de datos usando principios de mínimos privilegios. Use identidades administradas asignadas por el usuario como identidad de instancia para la integración de servicios de Azure.
Implemente el aislamiento de red mediante Azure Virtual Network: Instancia administrada de SQL se implementa en una subred de red virtual dedicada, que proporciona aislamiento de nivel de red de forma predeterminada y da forma a las decisiones de conectividad y seguridad.
Mantenga desactivado el punto de conexión público porque crea otra superficie de ataque, y los grupos de conmutación por error y el vínculo de Instancia administrada solo admiten conectividad local de red virtual.
Delegue la subred de instancia exclusivamente al tipo de instancia administrada y aplique reglas de NSG asistidas por servicio para el control de tráfico.
Asigne tablas de rutas y NSG únicos a cada subred de SQL Managed Instance para el emparejamiento de redes virtuales. La reutilización de tablas compartidas provoca errores de conectividad.
Configure el cifrado de datos para la protección en reposo y en tránsito: Sql Managed Instance proporciona varias capas de cifrado que cubren los datos en reposo, en tránsito y en el nivel de aplicación. Cada capa requiere decisiones de configuración distintas.
Nivel Ámbito Consideración clave TDE En el nivel de instancia, todas las bases de datos heredan la misma clave La rotación afecta a todas las bases de datos simultáneamente y debe conservar las versiones de clave anteriores para la restauración de copias de seguridad. Cifrado de transporte (TLS) Conexiones en tránsito Aplique los estándares actuales de seguridad de la capa de transporte (TLS) y los modos de conexión estrictos para evitar ataques de degradación del protocolo. Siempre Cifrado Las claves de nivel de columna permanecen fuera del motor de base de datos Protege los datos de los usuarios con privilegios. Los enclaves seguros admiten operaciones del lado servidor en datos cifrados. Proteja las configuraciones de instancia para reducir la superficie expuesta a ataques: Sql Managed Instance expone funcionalidades más allá de SQL Database que expanden la superficie expuesta a ataques. Estas capacidades requieren decisiones de endurecimiento específicamente dirigidas, además de controles de gobernanza.
La directiva de actualización controla la cadencia de revisiones de seguridad. Existe una disyuntiva entre la aplicación inmediata y la compatibilidad con el vínculo de Instancia administrada.
Agente SQL, servidores vinculados, ensamblados CLR y xp_cmdshell cada uno requiere evaluación de riesgos. Desactive las funcionalidades sin usar y aplique los estándares TLS actuales.
Use el control de acceso basado en rol de Azure (Azure RBAC) para restringir las operaciones de administración, aplicar bloqueos de recursos y aplicar configuraciones de seguridad a través de Azure Policy.
Proteja las credenciales y las claves de cifrado mediante identidades administradas y Azure Key Vault: Las identidades administradas eliminan las credenciales almacenadas para la conectividad entre instancias y las integraciones entre servicios. Las identidades gestionadas asignadas por el usuario eliminan los secretos de las cadenas de conexión y simplifican la gestión de la rotación de credenciales.
Key Vault proporciona una administración unificada del ciclo de vida de los protectores de TDE y las claves maestras de columna de Always Encrypted. La supervisión del acceso clave detecta patrones de uso inusuales que podrían indicar un riesgo.
Sql Managed Instance usa objetos de credenciales para escribir registros de auditoría en Blob Storage. Renueve estas credenciales antes de que expiren para mantener la continuidad de auditoría. Planee los procedimientos de entrega de credenciales para las identidades que usan la autenticación de SQL durante la migración.
Configure la supervisión de seguridad y el registro de auditoría: La auditoría de SQL Managed Instance admite Azure Blob Storage, Azure Event Hubs y registros de Azure Monitor como destinos de auditoría. La auditoría de operadores proporciona visibilidad sobre las operaciones de soporte técnico de Microsoft en la instancia. La integridad del registro de auditoría requiere controles de evidencia de alteración para el cumplimiento.
La integración de Log Analytics admite consultas avanzadas y correlación de eventos de seguridad, mientras que Event Hubs admite la integración externa de información de seguridad y administración de eventos (SIEM). Microsoft Defender para SQL agrega protección contra amenazas, incluidas las alertas de inyección, fuerza bruta y patrones de acceso inusuales.
Realice un seguimiento de los eventos de autenticación, la ejecución de consultas y los cambios de privilegios a través de especificaciones de auditoría para detectar intentos de escalación y acceso no autorizado.
Recomendaciones de configuración
| Recomendación | Ventajas |
|---|---|
| Cree roles de nivel de servidor personalizados que concedan permisos a funciones administrativas específicas en lugar de conceder privilegios amplios. Evite asignar cuentas de administrador de servidor o de db_owner integradas a cargas de trabajo de aplicación. | Reduce el riesgo de elevación de privilegios limitando cada rol administrativo a los permisos mínimos que necesita. Los roles de nivel de servidor personalizados permiten aplicar una separación granular de las tareas que los roles integrados no proporcionan. |
| Active la autenticación solo de Microsoft Entra y desactive la autenticación basada en SQL para la instancia administrada. Antes de realizar el cambio, migre los trabajos de Agente SQL, los servidores vinculados y las credenciales de auditoría que dependan de inicios de sesión de SQL a entidades de seguridad de Microsoft Entra. | Elimina los vectores de ataque basados en credenciales mediante la eliminación de la autenticación de SQL y la aplicación de protocolos de identidad modernos que admiten la autenticación multifactor. |
| Configure una identidad administrada asignada por el usuario como identidad de instancia para la integración de servicios de Azure, incluido TDE que usa claves administradas por el cliente, auditoría en el almacenamiento y autenticación entre servicios. | Quita la sobrecarga de administración de credenciales para la integración del servicio de Azure y reduce el riesgo de secretos expuestos en la configuración. |
| Mantenga desactivado el punto de conexión público para las instancias de producción. Si necesita acceso público, restrinjalo a intervalos de direcciones IP específicos mediante reglas de NSG. Utilice la conectividad local de la red virtual para el acceso estándar y los puntos de conexión privados para escenarios entre redes virtuales. | Reduce la superficie de ataque de red a rutas de acceso de red virtual autorizadas, lo que simplifica las auditorías de cumplimiento y reduce el alcance de las credenciales comprometidas. |
| Configurar las reglas de NSG en subred de SQL Managed Instance para permitir solo el tráfico entrante necesario desde orígenes autorizados. Aplique un enfoque de denegación de forma predeterminada y conserve al mismo tiempo las reglas obligatorias asistidas por el servicio para las operaciones de la instancia. | Evita el movimiento lateral de recursos comprometidos en subredes adyacentes, lo que limita el radio de explosión durante una infracción de nivel de red. |
| Configure TDE mediante claves administradas por el cliente en una instancia de Key Vault que tenga activadas la eliminación temporal y la protección contra purga. Use una identidad administrada asignada por el usuario para el acceso a claves. Active la rotación automatizada y dedique una instancia de Key Vault a los recursos de SQL Managed Instance. | Mantiene el control total sobre el ciclo de vida de la clave de cifrado, incluida la rotación y la revocación, y cumple los requisitos de cumplimiento de administración de claves de la organización. |
| Use Microsoft Defender para SQL para activar la evaluación de vulnerabilidades y la protección contra amenazas avanzada. Configure alertas para eventos de detección y enrutelas a operaciones de seguridad a través de Microsoft Defender para la nube. | Detecta errores de configuración de seguridad y amenazas activas mediante análisis automatizado y análisis de comportamiento que se integra en los flujos de trabajo de operaciones de seguridad. |
| Desactive el Agente SQL si la carga de trabajo no la usa. Cuando esté activo, evite asignar trabajos a cuentas con privilegios elevados y configure las cuentas de proxy para los pasos que requieren acceso a credenciales específicos. | Evita la elevación de privilegios mediante Agente SQL al restringir la propiedad de los trabajos y el acceso a credenciales, lo que minimiza una superficie de ataque específica de SQL Managed Instance. |
| Almacene las claves protectoras de TDE y las claves maestras de columna de Always Encrypted en una instancia de Key Vault que tenga eliminación temporal y protección contra purga. Active el registro de auditoría de Key Vault y use un almacén dedicado para SQL Managed Instance a fin de evitar la limitación. | Centraliza la administración de claves de cifrado con una pista de auditoría completa y protege contra la pérdida accidental de claves que podrían impedir el acceso a la base de datos. |
| Active la auditoría del servidor y configure grupos de eventos para capturar la actividad de inicio de sesión y las consultas completadas. Configurar destinos duales. Utiliza Blob Storage para la retención a largo plazo y los registros de Azure Monitor para realizar un análisis en tiempo real. Cree una auditoría de servidor independiente que tenga activada la auditoría del operador para realizar un seguimiento de las operaciones de soporte técnico de Microsoft. Active el almacenamiento inmutable en los contenedores de blobs de auditoría para impedir la manipulación de registros. |
Mantiene una pista de auditoría completa de la actividad de la base de datos para los requisitos de cumplimiento, la investigación de incidentes y la detección de anomalías. |
| Configure los valores de diagnóstico para enviar eventos de auditoría de seguridad a un área de trabajo de Log Analytics. Use consultas del lenguaje de consulta kusto (KQL) para la detección de anomalías y configure alertas en patrones de actividad sospechosas, como inicios de sesión erróneos repetidos. | Permite analizar eventos de seguridad en tiempo real y correlacionarse entre cargas de trabajo mediante la agregación centralizada de registros y la detección automatizada de amenazas. |
Optimización de costos
La optimización de costos se centra en detectar patrones de gasto, priorizar las inversiones en áreas críticas y optimizar en otras áreas para ajustarse al presupuesto de la organización al tiempo que se cumplen los requisitos empresariales.
Los Principios de Diseño de Optimización de Costos proporcionan una estrategia de diseño de alto nivel para lograr dichos objetivos y hacer concesiones según sea necesario en el diseño técnico relacionado con SQL Managed Instance y su entorno.
Lista de comprobación de diseño de cargas de trabajo
Inicie su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para la optimización de costos de las inversiones. Ajuste el diseño para que la carga de trabajo esté alineada con el presupuesto asignado para la carga de trabajo. El diseño debe usar las funcionalidades adecuadas de Azure, supervisar las inversiones y encontrar oportunidades para optimizar con el tiempo.
Cree y mantenga un modelo de costo que tenga en cuenta el modelo de facturación de proceso aprovisionado: Sql Managed Instance usa un modelo de proceso aprovisionado siempre en el que los núcleos virtuales facturan continuamente independientemente del uso. El modelo de costos debe tener en cuenta los controladores de costos principales, que incluyen la selección del nivel de servicio, el recuento de núcleos virtuales, la generación de hardware y la asignación de almacenamiento en función del tamaño máximo configurado.
La facturación con ámbito de instancia implica que todas las bases de datos comparten los costes de proceso, lo que requiere una asignación clara para la refacturación y la presentación de costes. Incluya mecanismos de licenciamiento y compromiso, como Ventaja híbrida de Azure, capacidad reservada y réplicas en espera sin licencia. Cada palanca reduce el costo a través de un mecanismo diferente.
Las restricciones de cuota de núcleo virtual regional pueden forzar arquitecturas de multisuscripción, lo que agrega complejidad al seguimiento y la gobernanza de costos.
Supervisar y analizar los costos para identificar oportunidades de optimización: En el modelo siempre aprovisionado, la computación inactiva sigue generando cargos. Use Microsoft Cost Management para realizar un seguimiento de los costos de proceso, almacenamiento, copia de seguridad y licencias por instancia. Compare el consumo real de almacenamiento con el máximo reservado para detectar el desperdicio en la facturación.
Supervise el uso de recursos para identificar el sobreaprovisionamiento de núcleos virtuales y compruebe si el nivel de servicio actual sigue justificado. Cree alertas de presupuesto, previsión y anomalías para detectar aumentos inesperados del costo a partir del escalado o los cambios de configuración.
Optimice las configuraciones de proceso y licencias para reducir los costos de recursos aprovisionados: Los costos de proceso se acumulan continuamente en el modelo de solo aprovisionamiento, por lo que ajuste el número de núcleos virtuales y optimice las licencias desde el principio. Analice el uso antes de seleccionar la configuración. Use el nivel De uso general cuando las cargas de trabajo toleran una mayor latencia de almacenamiento. La diferencia de nivel es el único factor de coste más grande.
Aplique la Ventaja de Azure Híbrido a las licencias existentes de SQL Server, comprométase con capacidad reservada para cargas de trabajo predecibles y designe las secundarias de los grupos de conmutación por error como réplicas en espera sin licencia cuando se usen únicamente para recuperación ante desastres.
Optimice los costos del entorno en las instancias de producción y no producción: Las configuraciones de producción y no producción idénticas desperdician el presupuesto en un modelo siempre aprovisionado. Diferencie los perfiles de costo del entorno aplicando mecanismos de ahorro específicos de SQL Managed Instance a cada nivel.
Optimice los entornos no de producción utilizando stop/start en instancias de uso general durante períodos de inactividad predecibles para reducir los costos de cómputo y licencias.
Diferencie las configuraciones de entorno mediante la implementación de instancias que no son de producción que usan recuentos de núcleos virtuales reducidos y precios de suscripción de pruebas de desarrollo.
Optimice los entornos de recuperación ante desastres evaluando la restauración geográfica como alternativa de menor coste a los grupos de conmutación por error para cargas de trabajo no críticas.
Consolide cargas de trabajo pequeñas mediante grupos de instancias para mejorar la eficiencia de los recursos: Los grupos de instancias consolidan varias instancias pequeñas en el proceso compartido, lo que reduce la sobrecarga por instancia. Los pools son compatibles con configuraciones más pequeñas de vCore exclusivas para implementaciones agrupadas y están restringidos al nivel de uso general en las generaciones de hardware admitidas.
La computación del grupo se cobra a nivel de grupo, independientemente de cuántas instancias se ejecuten dentro de él, por lo que los vCores no utilizados siguen incurriendo en costos. Las decisiones sobre licencias y capacidad reservada se aplican uniformemente en todas las instancias del grupo.
Las instancias agrupadas comparten recursos de red y disco local, lo que puede crear efectos ruidosos y vecinos. Cada instancia recibe núcleos virtuales dedicados y memoria, pero las cargas de trabajo que requieren un aislamiento más seguro deben implementarse como instancias independientes.
Recomendaciones de configuración
| Recomendación | Ventajas |
|---|---|
| Compare el consumo de almacenamiento real con el tamaño máximo configurado porque SQL Managed Instance factura el almacenamiento reservado independientemente del uso. Reduzca el máximo reservado en las instancias en las que la asignación supere significativamente el consumo. | Identifica las instancias en las que el almacenamiento reservado supera el uso real, por lo que puede asignar derechos y reducir el desperdicio de facturación por GB en el modelo de almacenamiento reservado de SQL Managed Instance. |
| Active la ventaja híbrida de Azure en SQL Managed Instance para aplicar las licencias existentes de SQL Server que tengan Software Assurance. Las licencias de Enterprise Edition ofrecen las relaciones de conversión más favorables, especialmente en el nivel De uso general. Al detener una instancia de uso general, desactive primero la Ventaja híbrida de Azure y vuelva a reasignar las licencias a otros recursos de Azure SQL. Vuelva a activar la ventaja después de reiniciar la instancia. |
Reduce los costos de licencias de SQL Server mediante licencias locales existentes para implementaciones en la nube. Los clientes de Enterprise Edition obtienen el mayor ahorro en el nivel de uso general, dadas las relaciones de conversión de vCore favorables. |
| Compre compromisos de capacidad reservada para las implementaciones de SQL Managed Instance que tienen cargas de trabajo predecibles y de larga duración. Aplique reservas a los grupos de instancias para combinar el ahorro del proceso compartido con descuentos basados en compromisos. Para cargas de trabajo con programaciones predecibles, ejecute varias instancias más pequeñas en diferentes franjas horarias bajo la misma reserva de vCore. No puede trasladar las horas reservadas no utilizadas, por lo que maximice su uso mediante la programación. |
Los precios basados en el compromiso reducen los costos en comparación con las tarifas de pago por uso para configuraciones estables de cargas de trabajo. La capacidad reservada emparejada con grupos de instancias proporciona el modelo de implementación más rentable para varias instancias pequeñas. |
| Designe la instancia secundaria en un grupo de conmutación por error como una réplica en espera sin licencia cuando la use exclusivamente para la recuperación ante desastres. El modo de espera admite conmutaciones por error, copias de seguridad, mantenimiento y simulacros de recuperación ante desastres, pero no conexiones de producción. | Elimina los costes de licencias de SQL Server en la secundaria de recuperación ante desastres, pero mantiene los mismos RPO y RTO que una réplica legible. Libera licencias de ventaja híbrida de Azure para la asignación a otros recursos de Azure SQL, lo que aumenta el valor de las inversiones en licencias existentes. |
| Detenga las instancias de Uso general durante períodos de inactividad predecibles para eliminar los cargos de vCore y licencias. Cree programaciones de detención e inicio que definan pares y establezcan un intervalo mínimo entre acciones sucesivas. Tenga en cuenta la latencia de inicio desencadenando las operaciones de inicio antes de cuando la instancia debe estar lista. No puede detener instancias que tengan activadas funcionalidades como grupos de conmutación por error o redundancia de zona. |
Quita los cargos de computación y licencias durante los períodos de inactividad, pero conserva los datos y el almacenamiento de copia de seguridad. La automatización garantiza un ahorro coherente sin intervención manual. |
| Implemente grupos de instancias para hospedar varias instancias administradas pequeñas que comparten una capacidad de procesamiento preaprovisionada.
Dimensione el grupo en función de los núcleos virtuales totales necesarios, active ventaja híbrida de Azure en el nivel de grupo y combine con capacidad reservada para el mayor descuento. Evite los grupos para cargas de trabajo que necesiten el nivel Crítico para la empresa, redundancia de zona o un aislamiento estricto del rendimiento. Las instancias agrupadas comparten recursos de red y disco local, por lo que las cargas de trabajo sensibles a la latencia con riesgo ruidoso y vecino deben implementarse como instancias independientes. |
Desbloquea configuraciones de núcleo virtual más pequeñas que no están disponibles fuera de los grupos, por lo que puede migrar de forma rentable instancias pequeñas de SQL Server sin sobreaprovisionamiento. Los recursos de proceso compartidos reducen la sobrecarga por instancia, pero mantienen el aislamiento de memoria y núcleo virtual dedicado para cada instancia agrupada. |
Excelencia operativa
La excelencia operativa se centra principalmente en los procedimientos para las prácticas de desarrollo, la observabilidad y la gestión de versiones.
Los principios de diseño de excelencia operativa proporcionan una estrategia de diseño de alto nivel para lograr los objetivos relacionados con los requisitos operativos de la carga de trabajo.
Lista de comprobación de diseño de cargas de trabajo
Inicie la estrategia de diseño en función de la lista de comprobación de revisión de diseño para la excelencia operativa para definir procesos de observabilidad, pruebas e implementación relacionados con SQL Managed Instance.
Implemente procedimientos de implementación seguros para los cambios de configuración de instancia: Las operaciones de administración de SQL Managed Instance implican cambios en la infraestructura del clúster virtual que se ejecutan mucho más tiempo que las operaciones típicas de base de datos. Planee las prácticas de implementación en torno a estas duraciones extendidas para minimizar la interrupción de la carga de trabajo.
Tenga en cuenta la duración extendida de las operaciones de creación, escala y cambio de nivel. No los programe durante las horas punta. Las operaciones dentro de la misma subred se serializan.
Planee primero las estrategias de reversión y despliegue en etapas que validen los cambios de configuración en instancias no productivas, ya que las operaciones de escalado en cualquier dirección toman un tiempo comparable.
Coordine los cambios de implementación de los grupos de conmutación por error asegurándose de que las instancias tengan directivas de actualización coincidentes. Programe cambios en las instancias principales y secundarias en momentos diferentes.
Defina la infraestructura como código para las implementaciones de instancias integradas en la red virtual: Sql Managed Instance requiere una implementación integrada de red virtual con delegación de subredes, reglas de NSG y tablas de rutas en vigor antes del aprovisionamiento. Estructure sus plantillas de infraestructura como código (IaC) en capas de dependencias, de modo que primero se implemente la red, después la identidad y RBAC y, por último, los recursos de la instancia.
Configure la detección de desfase de configuración para las reglas de subred, las tablas de rutas y las propiedades de instancia. Use Azure Policy para aplicar estándares de implementación como etiquetas necesarias, niveles permitidos y requisitos de redundancia de zona para instancias de producción.
Diseñe canalizaciones de compilación e implementación para los cambios de esquema e instancia de base de datos: Los cambios en la infraestructura de instancia y las implementaciones de esquemas de base de datos funcionan en escalas temporales fundamentalmente diferentes. Separe las fases de canalización en consecuencia. Use sondeo basado en estado para las fases de infraestructura y puertas de aprobación antes de cualquier operación que desencadene tareas de administración prolongadas.
Los cambios de esquema requieren validación con diferencias de compatibilidad de T-SQL documentadas antes de la implementación. Compruebe la compatibilidad en la canalización y verifique las dependencias de consultas entre bases de datos y las funcionalidades con ámbito de instancia durante la validación posterior a la implementación.
Establezca la observabilidad mediante Azure Monitor y diagnósticos nativos de SQL: La observabilidad de SQL Managed Instance requiere telemetría de la plataforma de Azure Monitor y diagnósticos nativos de SQL, como vistas de administración dinámica (DMV), almacén de consultas y eventos extendidos. Combine estas capas para obtener una vista completa del estado de la instancia y el rendimiento de la carga de trabajo.
Configure la supervisión de la plataforma a través de Azure Monitor aplicando la configuración de diagnóstico en la instancia. Los eventos de la operación de administración aparecen en el registro de actividad y las alertas de Resource Health proporcionan una advertencia temprana de eventos planeados y no planeados. En la base de datos, use almacén de consultas como herramienta principal para el análisis de cargas de trabajo y la optimización de índices. SQL Managed Instance no admite el ajuste automatizado de índices.
Suscríbase a las alertas de Resource Health y a las notificaciones de mantenimiento anticipadas para la advertencia temprana de eventos planeados y no planeados.
Automatizar tareas de administración, supervisión y mantenimiento: SQL Managed Instance incluye el Agente SQL, un programador de trabajos integrado que controla el mantenimiento de la base de datos y las tareas operativas sin orquestación externa. Combine el Agente SQL con automatización de nivel de Azure para una cobertura completa tanto del motor de base de datos como de las operaciones del plano de administración.
Use Agente SQL para el mantenimiento recurrente de bases de datos, la sincronización de inicios de sesión con las secundarias de los grupos de conmutación por error y las alertas sobre errores de trabajos.
Use Azure Automation o Azure Functions para las operaciones que requieren la interacción de Azure Resource Manager, como la supervisión de operaciones de administración y la administración de la retención de copias de seguridad.
Automatice las operaciones del ciclo de vida, como las programaciones de detención e inicio de las instancias aptas durante períodos de inactividad y la configuración de diagnóstico coherente al aprovisionar nuevas instancias.
Establecer prácticas de prueba y validación para las implementaciones de bases de datos: La compatibilidad de SQL Managed Instance con SQL Server admite herramientas de prueba estándar, pero todavía necesita validar las operaciones de administración, las dependencias entre bases de datos y las características con ámbito de instancia. Use entornos de prueba reales de SQL Managed Instance porque SQL Database y SQL Server tienen un comportamiento de operación de administración y infraestructura diferentes.
Recomendaciones de configuración
| Recomendación | Ventajas |
|---|---|
| Supervise el progreso de la operación de administración mediante PowerShell, la CLI de Azure o la API REST para realizar un seguimiento de los pasos y detectar problemas al principio. Cancele las operaciones estancadas o innecesarias cuando estén disponibles. La propia cancelación requiere tiempo de limpieza de infraestructura. | Su equipo adquiere visibilidad sobre las operaciones ampliadas para tomar decisiones informadas sobre la espera, cancelación o escalamiento. La cancelación anticipada reduce el impacto de las operaciones problemáticas antes de que provoquen interrupciones prolongadas. |
Implemente los requisitos previos de red de SQL Managed Instance como un módulo IaC independiente que se complete antes de que comience el aprovisionamiento de la instancia. Incluya en la plantilla la delegación de subred a Microsoft.Sql/managedInstances y las reglas de NSG obligatorias para el tráfico de administración. |
Se validan los requisitos previos de red antes de que comience el aprovisionamiento de instancias, lo que evita errores de implementación debido a la falta de delegación o reglas de NSG. Use módulos independientes para administrar el ciclo de vida de las redes y la infraestructura de base de datos de forma independiente. |
| Establezca los tiempos de espera de la canalización para las fases de infraestructura de SQL Managed Instance en función de las duraciones de operaciones documentadas, que varían significativamente según el tipo de operación. Sondee la API de operaciones de administración en un paso de bucle para realizar un seguimiento del progreso y detectar errores al principio. No dependa de temporizadores de espera fijos que no puedan distinguir las operaciones bloqueadas de las de larga duración. |
Los tiempos de espera correctos eliminan los errores de canalización falsos causados por operaciones que superan los períodos de tiempo de espera predeterminados. El sondeo del progreso dentro de la canalización ayuda a su equipo a responder con mayor rapidez a los errores reales en lugar de esperar a que expiren temporizadores arbitrarios. |
| Active la configuración de diagnóstico con ámbito de instancia y transmita los registros de recursos para todas las categorías pertinentes a un área de trabajo de Log Analytics. Aplique la misma configuración de exportación de streaming en todas las instancias para establecer una línea base de observabilidad confiable. Agregue la configuración de diagnóstico del registro de actividad para capturar eventos de operación de administración. Use indicadores de estado del clúster virtual para detectar problemas de nivel de infraestructura que afectan a la disponibilidad de instancias. |
Use consultas KQL en Log Analytics para analizar registros en todas las instancias, lo que admite el análisis histórico de tendencias para la planeación de la capacidad y la solución de problemas de rendimiento. La telemetría de operaciones de gestión y los datos de estado del clúster virtual le ayudan a solucionar problemas específicos de coordinación a nivel de subred y operaciones extendidas en SQL Managed Instance. |
| Configure notificaciones anticipadas para los eventos de mantenimiento planeado a fin de recibir alertas antes de que se abra la ventana y cuando finalice el mantenimiento. Use estas notificaciones para desencadenar flujos de trabajo de preparación, como notificar a los equipos de aplicaciones o ajustar las directivas de reintento. | El equipo de operaciones obtiene un tiempo de preparación anticipado antes del mantenimiento planeado, lo que reduce la interrupción de las cargas de trabajo críticas para la empresa y admite la comunicación proactiva con las partes interesadas. |
| Configure alertas del registro de actividad para las operaciones de administración que superen los umbrales de duración esperados o produzcan un error. Las operaciones con errores pueden dejar la instancia en un estado intermedio que requiera intervención. Utilice la API de operaciones de administración o los cuadernos de Azure Monitor para visualizar las tendencias de progreso y duración de las operaciones en su entorno de SQL Managed Instance. |
La detección temprana de operaciones en desuso o con errores reduce la ventana de riesgo durante los cambios extendidos de la infraestructura. Su equipo tiene tiempo de intervenir antes de que el impacto se escale. |
| Cree trabajos del Agente SQL para el mantenimiento de índices, las actualizaciones de estadísticas y las comprobaciones de coherencia en todas las bases de datos de la instancia. Programe estos trabajos durante períodos de tráfico bajo y escalone la ejecución para evitar la contención de recursos. | El mantenimiento automatizado coherente mantiene el estado de la base de datos y el rendimiento de consultas en buen estado sin herramientas de programación externas. El Agente SQL Managed Instance nativo reduce la sobrecarga operativa en comparación con la infraestructura de automatización personalizada. |
| Use proyectos de base de datos SQL con la plataforma de destino de SQL Managed Instance para validar la compatibilidad de T-SQL e identificar la sintaxis no admitida antes de la implementación de producción. Pruebe las dependencias de consulta entre bases de datos mediante la nomenclatura de tres partes en las pruebas de integración. Compruebe las características con ámbito de instancia, como las definiciones de trabajo del Agente SQL, las configuraciones de Service Broker y los servidores vinculados como parte de la validación de implementación. |
Encontrará problemas de compatibilidad e errores de implementación antes de llegar a producción, lo que reduce el riesgo de reversión de las operaciones que tardan mucho tiempo en completarse. |
Eficiencia en el rendimiento
La eficiencia del rendimiento consiste en mantener la experiencia del usuario incluso cuando hay un aumento de la carga mediante la administración de la capacidad. La estrategia incluye el escalado de recursos, la identificación y la optimización de posibles cuellos de botella y la optimización del rendimiento máximo.
Los principios de diseño eficiencia del rendimiento proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos de capacidad con respecto al uso esperado.
Lista de comprobación de diseño de cargas de trabajo
Comience su estrategia de diseño basándose en la lista de comprobación de revisión de diseño para Eficiencia del rendimiento. Defina una línea base basada en indicadores clave de rendimiento para SQL Managed Instance.
Llevar a cabo el planeamiento de la capacidad: Sql Managed Instance usa un modelo con ámbito de instancia en el que todas las bases de datos comparten núcleos virtuales, memoria, operaciones de entrada y salida por segundo (IOPS) y almacenamiento. El planeamiento de la capacidad en el patrimonio de la base de datos es esencial porque el consumo de recursos de una base de datos afecta directamente a todos los demás.
Identifique los objetivos de rendimiento para el tiempo de respuesta, el rendimiento y las sesiones simultáneas. Capture las líneas base de rendimiento antes de la migración y los patrones de crecimiento del proyecto para el recuento de bases de datos, el almacenamiento y los volúmenes de transacciones durante el ciclo de vida de la instancia. Tenga en cuenta las restricciones de TempDB específicas del nivel cuando planee cargas de trabajo con un uso intensivo de TempDB.
Las operaciones de administración para el escalado tardan horas en lugar de los minutos típicos de otras ofertas de Azure SQL. Planifique la capacidad con margen suficiente para evitar necesidades urgentes de escalado y coordine las operaciones con las ventanas de mantenimiento para minimizar la interrupción del negocio.
Seleccione la generación de hardware y el nivel de servicio para los requisitos de carga de trabajo: La selección de nivel de servicio y generación de hardware determina la proporción de memoria, las características de E/S y el perfil de latencia disponibles para la carga de trabajo.
Decisión Qué evaluar Nivel de servicio Adáptelo a los requisitos de latencia de E/S y de funcionalidades. Tenga en cuenta las diferencias de arquitectura entre el almacenamiento remoto y local y el efecto de latencia de las configuraciones con redundancia de zona. Modelo de IOPS Los métodos de asignación abarcan desde el escalado dependiente del tamaño de archivo (Uso general) hasta el aprovisionamiento por instancia y por vCore (Crítico para la empresa, Uso general de nueva generación). Tipo de conexión Use el tipo de conexión Redirección en los puntos de conexión locales de red virtual para reducir la latencia por consulta en cargas de trabajo persistentes. Elija la estrategia de escalado adecuada para la carga de trabajo: Sql Managed Instance solo admite el escalado vertical. El servicio no ofrece escalado automático, computación sin servidor ni un nivel de Hiperescala.
Planifique el escalado vertical teniendo en cuenta ventanas de operación de varias horas para los cambios de nivel, los cambios de generación de hardware y los ajustes de vCore. Programe estas operaciones durante los períodos de mantenimiento planeado.
Descargue las cargas de trabajo de lectura en la réplica secundaria legible integrada del nivel Crítico para la empresa. Esta réplica atiende consultas de solo lectura sin coste adicional para cargas de trabajo como informes, análisis y lecturas con coherencia final.
Use memoria flexible en Uso general de nueva generación para ajustar la asignación de memoria independientemente del número de vCore. Los cambios desencadenan una conmutación por error de la instancia como paso final.
Ejecute pruebas de rendimiento para validar el comportamiento de la carga de trabajo de la base de datos: Diseñe pruebas de rendimiento que validen el comportamiento simultáneo de varias bases de datos en el modelo con ámbito de instancia. Incluya combinaciones de transacciones realistas que combinan cargas de trabajo transaccionales, por lotes e informes que se ejecutan simultáneamente. Pruebe con el recuento real de bases de datos y los volúmenes de datos planeados para la instancia.
Capture las líneas base de implementación previa y compare el comportamiento posterior a la migración en diferentes generaciones de hardware y niveles de servicio para confirmar que la configuración seleccionada cumple sus requisitos. Mida el tiempo de recuperación de la carga de trabajo después de conmutaciones por error y operaciones de administración, especialmente en los niveles que usan almacenamiento remoto, donde debe reconstruirse el grupo de búferes.
Identificar y supervisar indicadores de rendimiento: Supervise en los niveles de instancia y base de datos para identificar la contención de recursos porque todas las bases de datos comparten recursos de proceso en el modelo con ámbito de instancia.
Configure la supervisión en el nivel de instancia para realizar un seguimiento de las métricas principales y establecer alertas sobre los umbrales de uso antes de que se vean afectadas las cargas de trabajo. Incluya el rendimiento de escritura del registro con respecto a los límites de cada nivel.
Use almacén de consultas como herramienta principal para identificar las consultas con regresión y planear los cambios. Combínelo con el análisis manual de índices porque SQL Managed Instance no admite el ajuste automático de índices.
Agregue supervisión de recursos de nivel de base de datos para realizar un seguimiento del consumo por base de datos y detectar la contención de recursos compartidos, como TempDB y almacenamiento en memoria.
Optimizar el diseño de cargas de trabajo y el rendimiento de las consultas: SQL Managed Instance incluye funcionalidades de Enterprise Edition que abordan desafíos de rendimiento específicos del modelo con ámbito de instancia, como la gobernanza de recursos entre bases de datos, consultas entre bases de datos, transacciones distribuidas y procesamiento en memoria.
Tenga en cuenta las restricciones de recursos específicas del servicio en la estrategia de optimización. La asignación fija de TempDB, los límites de regulación de la velocidad del registro sobre el rendimiento de escritura y los modelos de IOPS dependientes del nivel presentan tanto restricciones como oportunidades de optimización.
Recomendaciones de configuración
| Recomendación | Ventajas |
|---|---|
| Seleccione la generación de hardware por proporción de memoria por núcleo virtual en lugar de agregar núcleos virtuales cuando la memoria sea la restricción . La generación de hardware de la serie Premium equilibra memoria y coste, mientras que la generación de hardware de la serie Premium optimizada para memoria resulta adecuada para grupos de búferes de gran tamaño o para OLTP en memoria dentro de los límites de capacidad. | El ajuste de derechos por proporción de memoria evita el sobreaprovisionamiento de núcleos virtuales, lo que reduce el costo y cumple los objetivos de rendimiento. |
| Establezca el tipo de conexión de redirección en el punto de conexión local de red virtual para las cargas de trabajo que se conectan desde dentro de la red virtual. Esta configuración enruta el tráfico directamente al nodo de hospedaje después de la autenticación inicial. Los puntos de conexión públicos y privados siempre usan el tipo de conexión proxy independientemente de esta configuración. |
Reduce la latencia para cada consulta en las conexiones locales de red virtual persistentes omitiendo la puerta de enlace después de la autenticación inicial. |
Enrute las cargas de trabajo de solo lectura a la réplica secundaria de Crítico para la empresa mediante ApplicationIntent=ReadOnly en la cadena de conexión. Monitorizar la demora de la réplica secundaria para confirmar que las cargas descargadas cumplen con los objetivos de latencia.Use la secundaria geográfica del grupo de conmutación por error para descargar lecturas entre regiones cuando esté disponible. En SQL Managed Instance, este enfoque reduce la presión sobre los núcleos virtuales compartidos y la memoria en todas las bases de datos de la instancia. |
Libera el cómputo primario para las operaciones de escritura intensiva en todas las bases de datos, ya que dirige las lecturas a la réplica secundaria incluida sin costo adicional. |
Encienda Almacén de consultas en Read-Write modo en cada base de datos y revise los informes periódicamente para identificar consultas con regresión, cambios en los planes y operaciones que consumen recursos.Combine la información de Almacén de consultas con las DMV de índices que faltan para evaluar y crear índices manualmente. SQL Managed Instance no admite la administración automática de índices. Establezca los valores de retención y tamaño de almacenamiento para equilibrar la disponibilidad de los datos históricos con el consumo de almacenamiento. |
Proporciona visibilidad continua sobre la calidad del plan de consulta y el comportamiento en tiempo de ejecución para que pueda detectar las regresiones al principio y tomar decisiones de optimización informadas. |
| Use OLTP en memoria en el nivel Crítico para la empresa para cargas de trabajo de alto rendimiento, como la ingesta de datos, el almacenamiento en caché y el estado de sesión. Tenga en cuenta la capacidad de almacenamiento OLTP disponible en memoria al seleccionar la generación de hardware porque los límites varían según la configuración. | Elimina la contención de lotes y reduce la sobrecarga de CPU en cargas de trabajo de alto rendimiento, lo que a menudo elimina la necesidad de un nivel de proceso superior. |
| Configura el regulador de recursos para controlar la asignación de CPU, memoria y E/S entre cargas de trabajo que comparten la instancia y tenga en cuenta el comportamiento específico de SQL Managed Instance. Esta funcionalidad aborda directamente el riesgo de vecino ruidoso en el modelo de implementación con ámbito de instancia. | Impide que cualquier sola base de datos o patrón de consulta monopolice los recursos de instancias compartidas, protegiendo el aislamiento de la carga de trabajo en todo el conjunto de bases de datos. |
| Planee el uso de TempDB en torno a la configuración fija de asignación y archivo, que no se puede modificar en SQL Managed Instance. El nivel de propósito general proporciona una asignación de TempDB por vCore inferior a otros niveles de Azure SQL. Evalúe el nivel Crítico para la empresa para cargas de trabajo con un uso intensivo de TempDB que superen estas restricciones. |
Evita el agotamiento del espacio de TempDB teniendo en cuenta las restricciones de asignación fija y configuración de archivos en el nivel de Uso General. |
| Optimice los tamaños de archivo de datos en el nivel De uso general para maximizar las IOPS. Los archivos más grandes reciben proporcionalmente mayor rendimiento de la capa de almacenamiento remoto. En la próxima generación de Uso General, las IOPS se escalan al nivel de instancia en función del almacenamiento reservado en lugar de por archivo. |
Mejora el rendimiento de lectura y escritura ajustando los tamaños de archivo sin necesidad de una actualización de nivel. |
Directivas de Azure
Azure proporciona un amplio conjunto de directivas integradas relacionadas con SQL Managed Instance y sus dependencias. Algunas de las recomendaciones anteriores se pueden auditar a través de Azure Policy. Por ejemplo, puede comprobar si:
- Debe usar claves administradas por el cliente para cifrar los datos en reposo en instancias administradas de SQL.
- Debe activar la autenticación exclusiva de Microsoft Entra en instancias administradas de SQL.
- Debe bloquear el acceso a la red pública en instancias administradas de SQL.
- Debe evitar la redundancia de copia de seguridad GRS en las instancias administradas de SQL.
Para una gobernanza completa, revise las definiciones integradas de Azure Policy para SQL Managed Instance y otras directivas que podrían afectar a la seguridad de la carga de trabajo de la base de datos.
Recomendaciones de Azure Advisor
Azure Advisor es un consultor en la nube personalizado que le ayuda a seguir los procedimientos recomendados para optimizar las implementaciones de Azure.
Para más información, consulte Azure Advisor.
Arquitectura de ejemplo
Arquitectura básica que muestra las recomendaciones clave: aplicación totalmente administrada y protegida en SQL Managed Instance.