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 Stream Analytics es un servicio altamente resistente que procesa y analiza los datos de streaming de varios orígenes simultáneamente. Stream Analytics proporciona la información que le permite crear canalizaciones de procesamiento de eventos complejas con consultas similares a SQL.
Cuando se usa Azure, la confiabilidad es una responsabilidad compartida. Microsoft proporciona una variedad de funcionalidades para admitir resistencia y recuperación. Es responsable de comprender cómo funcionan esas funcionalidades dentro de todos los servicios que usa y de seleccionar las funcionalidades que necesita para cumplir los objetivos empresariales y los objetivos de tiempo de actividad.
En este artículo se describe cómo Stream Analytics es resistente a posibles problemas, como errores transitorios y interrupciones de zona de disponibilidad. También se proporcionan instrucciones sobre cómo proteger trabajos críticos frente a interrupciones de región y mantenimiento del servicio, y se resalta cierta información clave sobre el acuerdo de nivel de servicio (SLA) de Stream Analytics.
Importante
La mejora de la resistencia de Stream Analytics por sí sola podría tener un impacto limitado si los otros componentes no son igualmente resistentes. Tenga en cuenta la confiabilidad de los orígenes de datos, incluidas las entradas y salidas. En función de los requisitos de resistencia, es posible que tenga que realizar cambios de configuración en varias áreas.
Recomendaciones de implementación de producción
Para garantizar una alta confiabilidad en entornos de producción con Stream Analytics, se recomienda:
- Usar regiones con zonas de disponibilidad: Implemente los trabajos de streaming y otros recursos en regiones que admiten zonas de disponibilidad.
- Implementar capacidad suficiente: Establezca las unidades de streaming en función del rendimiento esperado, con capacidad adicional para controlar las cargas máximas y con un búfer por encima de los requisitos de línea base en caso de aumento repentino.
- Supervisar el estado: Implemente una supervisión completa mediante métricas y registros de diagnóstico de Azure Monitor para realizar un seguimiento del estado del trabajo, los eventos de entrada y salida y el uso de recursos. Configure alertas para métricas críticas, como retraso de marca de agua y errores en tiempo de ejecución, para detectar problemas antes de que afecten al procesamiento de datos. Para más información, consulte Supervisión de Azure Stream Analytics.
- Implemente redundancia de varias regiones para cargas de trabajo críticas: Implemente trabajos idénticos de Stream Analytics en varias regiones con configuraciones sincronizadas y enrutamiento de datos adecuado para lograr resistencia regional. Aunque Stream Analytics no proporciona replicación nativa en varias regiones, este enfoque permite el cambio por error y la continuidad. Para obtener más información, consulte Soluciones personalizadas de varias regiones para lograr resistencia.
Introducción a la arquitectura de confiabilidad
En esta sección se describen algunos de los aspectos importantes de cómo funciona el servicio que es más relevante desde una perspectiva de confiabilidad. En la sección se presenta la arquitectura lógica, que incluye algunos de los recursos y características que se implementan y usan. También se describe la arquitectura física, que proporciona detalles sobre cómo funciona el servicio en segundo plano.
Arquitectura lógica
Un trabajo es la unidad fundamental de Stream Analytics que permite definir y ejecutar la lógica de procesamiento de flujos. Un trabajo consta de los siguientes componentes principales:
- Entradas que leen datos de streaming de orígenes de datos, como Azure Event Hubs, Azure IoT Hub o Azure Storage.
- Consulta que procesa y transforma los datos.
- Salidas que escriben continuamente resultados en varios destinos, como Azure SQL Database, Azure Data Lake Storage, Azure Cosmos DB, Power BI, etc.
Para más información sobre los trabajos de Stream Analytics y el modelo de recursos, consulte Modelo de recursos de Azure Stream Analytics.
Arquitectura física
Stream Analytics logra una alta confiabilidad aplicando varias capas de resistencia para mitigar los problemas de la infraestructura subyacente y los orígenes de datos de entrada y salida. Los siguientes componentes ayudan a garantizar un funcionamiento sólido de los trabajos:
Nodos de trabajo. Los trabajos de Stream Analytics en máquinas virtuales (VM) se denominan nodos de trabajo que se ejecutan dentro de un clúster. Cuando se usan las SKU Estándar o StandardV2, los trabajos se ejecutan en clústeres compartidos. Cuando usas la SKU dedicada, tus trabajos se ejecutan en su propio clúster dedicado.
Dado que la plataforma administra automáticamente la creación de nodos de trabajo, la colocación de trabajos en nodos de trabajo, la supervisión de estado y el reemplazo de nodos de trabajo incorrectos, no verá ni administrará las máquinas virtuales directamente.
Unidades de streaming. Aunque la plataforma administra los nodos de trabajo y la distribución de tareas entre nodos de trabajo, tú eres responsable de asignar unidades de streaming (SUs) a las tareas. Las SUs representan los recursos de computo que ejecutan un trabajo. Cuanto mayor sea el número de SUs, más recursos de computación se asignan para el trabajo. Para más información, consulte Descripción y ajuste de las unidades de streaming de Stream Analytics.
Puntos de control. Stream Analytics mantiene el estado del trabajo a través de puntos de comprobación normales del estado. Los puntos de control permiten la recuperación rápida con un reprocesamiento de datos mínimo en caso de errores, incluso para trabajos que usan lógica de consulta con estado.
Cuando se producen errores de procesamiento, Stream Analytics se reinicia automáticamente desde el último punto de control y vuelve a procesar automáticamente los eventos que producen errores durante el procesamiento. Esta garantía se aplica a todas las funciones integradas y a las funciones definidas por el usuario dentro del trabajo. Sin embargo, lograr una entrega exactamente una vez de extremo a extremo depende de las capacidades del destino de salida. Para más información, consulte Conceptos de punto de control y reproducción en trabajos de Azure Stream Analytics.
Nota:
Con Azure Stream Analytics en IoT Edge , puede ejecutar trabajos en su propia infraestructura. Al usar Stream Analytics en IoT Edge, es responsable de configurarlo para cumplir los requisitos de confiabilidad. Stream Analytics en IoT Edge está fuera del ámbito de este artículo.
Resilencia a errores transitorios
Los errores transitorios son errores breves e intermitentes en los componentes. Se producen con frecuencia en un entorno distribuido como la nube y son una parte normal de las operaciones. Los errores transitorios se corrigen después de un breve período de tiempo. Es importante que las aplicaciones puedan controlar errores transitorios, normalmente mediante el reintento de solicitudes afectadas.
Todas las aplicaciones hospedadas en la nube deben seguir las instrucciones de control de errores transitorios de Azure cuando se comunican con cualquier API, bases de datos y otros componentes hospedados en la nube. Para obtener más información, consulte Recomendaciones para controlar errores transitorios.
Stream Analytics gestiona automáticamente muchos errores transitorios tanto al ingerir datos desde las entradas como al escribir datos en las salidas mediante mecanismos de reintento integrados. Después de que se reinicia un nodo de trabajo o se reasigne un trabajo, este utiliza puntos de control para reproducir los eventos que no se procesaron completamente y sigue procesándolos hasta alcanzar el flujo de entrada actual.
Se recomienda configurar directivas de error de salida. Sin embargo, estas directivas solo se aplican a los errores de conversión de datos y no influyen en el comportamiento para controlar errores transitorios.
Resistencia a errores de zona de disponibilidad
Las zonas de disponibilidad son grupos físicamente independientes de centros de datos dentro de una región de Azure. Cuando una zona falla, los servicios pueden transferirse a una de las zonas restantes.
Stream Analytics tiene automáticamente redundancia de zona en las regiones que admiten zonas de disponibilidad, lo que significa que los trabajos utilizan varias zonas de disponibilidad. La redundancia de zona garantiza que el trabajo sea resistente a un gran conjunto de errores, incluidas interrupciones catastróficas del centro de datos, sin cambios en la lógica de la aplicación.
Al crear un trabajo de Stream Analytics en una región habilitada para zonas, el servicio distribuye los recursos de cálculo del trabajo en varias zonas de disponibilidad.
Este modelo de implementación con redundancia de zona garantiza que los trabajos de streaming sigan procesando datos incluso si una zona de disponibilidad completa deja de estar disponible. Por ejemplo, en el diagrama siguiente se muestra cómo los trabajos continúan ejecutándose si la zona 3 experimenta una interrupción:
La redundancia de zona se aplica a todas las características de Stream Analytics, como el procesamiento de consultas, los puntos de control y las operaciones de administración de trabajos. Stream Analytics replica automáticamente el estado y los datos de los puntos de control del trabajo en zonas de disponibilidad, lo que impide que se pierdan datos y activa un tiempo de inactividad casi nulo cuando se producen errores de zona.
Requisitos
- Compatibilidad con regiones: La redundancia de zona para los recursos de Stream Analytics se admite en cualquier región que admita zonas de disponibilidad. Para obtener la lista completa de regiones que admiten zonas de disponibilidad, consulte Regiones de Azure con zonas de disponibilidad.
- SKU: La redundancia de zona está disponible en todas las SKU de Stream Analytics.
Cost
La redundancia de zona en Stream Analytics no incurre en cargos adicionales. Se paga la misma tasa por unidades de streaming si el trabajo se ejecuta en una configuración con redundancia de zona o no. Para más información, consulte Precios de Azure Stream Analytics.
Configurar soporte de zonas de disponibilidad
Cree un trabajo de Stream Analytics redundante a nivel de zona. La redundancia de zona se habilita automáticamente al crear un trabajo de Stream Analytics en una región admitida. No se requiere ninguna configuración.
Para obtener instrucciones de implementación, consulte Inicio rápido: Creación de un trabajo de Stream Analytics mediante Azure Portal e Inicio rápido: Creación de un clúster de Azure Stream Analytics dedicado mediante Azure Portal.
Habilitación de la redundancia de zona. Todos los trabajos y clústeres dedicados son automáticamente redundantes por zona en las regiones con zonas de disponibilidad. No es necesario habilitar la redundancia de zona.
Desactivar la redundancia de zona. No se puede deshabilitar la redundancia de zona.
Comportamiento cuando todas las zonas están en buen estado
En esta sección se describe qué esperar al configurar trabajos de Stream Analytics con compatibilidad con zonas de disponibilidad y todas las zonas de disponibilidad están operativas.
Enrutamiento de tráfico entre zonas. Stream Analytics ejecuta cada trabajo en nodos de trabajo. Los trabajadores de cualquier zona pueden procesar los datos de streaming entrantes. El servicio usa el equilibrio de carga interno para distribuir las tareas de procesamiento entre zonas.
Replicación de datos entre zonas. Stream Analytics replica el estado del trabajo y los datos de punto de control de forma sincrónica entre zonas de disponibilidad. A medida que el trabajo procesa eventos y actualiza su estado, Stream Analytics escribe esos cambios en varias zonas de disponibilidad antes de reconocerlos. Esta replicación sincrónica garantiza una pérdida de datos cero incluso si una zona completa deja de estar disponible. El proceso de replicación es transparente para la aplicación y no afecta a la latencia de procesamiento en condiciones normales.
Comportamiento durante un fallo de zona
En esta sección se describe qué pasa cuando se configuran trabajos de Stream Analytics con uso de zonas de disponibilidad y si se produce una interrupción en una zona de disponibilidad.
- Detección y respuesta: la plataforma de Stream Analytics es responsable de detectar un error en una zona de disponibilidad y responder. Stream Analytics marca los recursos de cómputo en la zona con errores como incorrectos y los trabajos que se están ejecutando en esos recursos de cómputo se redistribuyen automáticamente por los recursos de cómputo de las zonas restantes que sean correctos. No es necesario hacer nada para iniciar una conmutación por error de la zona.
- Notificación: Microsoft no le notifica automáticamente cuando una zona está inactiva. Sin embargo, puede usar Azure Resource Health para supervisar el estado de un recurso individual y puede configurar alertas de Resource Health para notificarle problemas. También puede usar Azure Service Health para comprender el estado general del servicio, incluidos los errores de zona, y puede configurar alertas de Service Health para notificarle problemas.
Solicitudes activas: los trabajos en ejecución se desplazan a otro trabajador en una zona de disponibilidad correcta.
Stream Analytics usa puntos de control para mantener el estado de procesamiento. Durante un fallo de zona, los eventos en curso que están siendo procesados por los trabajadores de la zona incorrecta se vuelven a procesar automáticamente desde el último punto de control por los trabajadores de las zonas correctas.
Pérdida de datos esperada: el sistema de puntos de comprobación del trabajo garantiza que no se pierdan datos.
Tiempo de inactividad esperado: las tareas en curso se reanudan automáticamente después de que la plataforma las mueva a un trabajador saludable.
Redireccionamiento del tráfico: el servicio redirige automáticamente todos los nuevos datos de entrada a los trabajadores en zonas correctas. Las conexiones existentes desde las fuentes de entrada se restablecen con los trabajadores en las zonas operativas. Las conexiones de salida se vuelven a establecer de manera similar, lo que garantiza el flujo de datos continuo a través de la tubería de transmisión.
Recuperación de zona
Cuando se recupera la zona de disponibilidad fallida, Stream Analytics la vuelve a reinsertar automáticamente en el grupo de procesamiento activo. Los trabajos comienzan a usar la infraestructura recuperada.
No realiza ninguna acción para la recuperación de zonas, ya que la plataforma controla todos los aspectos de las operaciones de recuperación de zona, incluida la sincronización de estado y la redistribución de cargas de trabajo.
Prueba de fallos de zona
Como la plataforma de Stream Analytics administra el enrutamiento del tráfico, la conmutación por error y la recuperación de zona, no es necesario iniciar ni validar los procesos de fallo de zona de disponibilidad.
Resistencia a errores en toda la región
Stream Analytics implementa recursos en una sola región de Azure. Si la región deja de estar disponible, los trabajos (y los clústeres dedicados, si procede) tampoco están disponibles.
Soluciones personalizadas de varias regiones para la resistencia
Para lograr resistencia en varias regiones para las cargas de trabajo de streaming, considere la posibilidad de implementar trabajos independientes en varias regiones. Al hacerlo, es responsable de implementar y administrar los trabajos y configurar las estrategias de enrutamiento y sincronización de datos adecuadas. Los trabajos de Stream Analytics son dos entidades independientes. Es responsabilidad de la aplicación enviar fuentes de datos de entrada a las fuentes de datos de entrada regionales y elegir los resultados regionales correctos. Para obtener más información sobre este enfoque, consulte Obtención de redundancia geográfica para trabajos de Stream Analytics.
Copias de seguridad y restauración
Stream Analytics no tiene una característica integrada de copia de seguridad y restauración.
Sin embargo, si desea mover, copiar o hacer una copia de seguridad de la definición y configuración de los trabajos, puede usar la extensión de Stream Analytics para Visual Studio Code para exportar un trabajo existente en la nube de Azure al equipo local. Una vez que guarde toda la configuración de los trabajos de Stream Analytics localmente, puede implementarlo en la misma región de Azure u otra. Para obtener información sobre cómo copiar, realizar copias de seguridad y mover los trabajos de Stream Analytics, consulte Copia, copia de seguridad y traslado de los trabajos de Azure Stream Analytics.
Resistencia al mantenimiento del servicio
Stream Analytics realiza el mantenimiento automático de la plataforma para aplicar actualizaciones de seguridad, implementar nuevas características y mejorar la confiabilidad del servicio. Como resultado, Stream Analytics puede tener actualizaciones de servicio implementadas semanalmente (o más frecuentes). El servicio Stream Analytics garantiza que cualquier nueva actualización pase anillos internos rigurosos para tener la máxima calidad.
Tenga en cuenta los siguientes puntos para asegurarse de que los trabajos son resistentes a las actividades de mantenimiento del servicio:
Configure los trabajos para que soporten reintentos: Los puntos de control se usan generalmente para restaurar datos después del mantenimiento de servicio. Sin embargo, en ocasiones es necesario usar una técnica de repetición en lugar de un punto de control. Para obtener más información y aprender a configurar las fuentes de datos de entrada de manera que las re-ejecuciones no provoquen resultados incorrectos o parciales en sus resultados de salida, consulte Recuperación del trabajo desde una actualización del servicio.
Considere la posibilidad de mitigar el riesgo de errores mediante la implementación de trabajos idénticos: El servicio busca proactivamente muchas señales después de implementar en cada lote para obtener más confianza de que no se han introducido errores. Sin embargo, independientemente de la cantidad de pruebas realizadas, todavía existe el riesgo de que un trabajo existente y en ejecución se interrumpa debido a la introducción de un problema introducido por el mantenimiento. Si ejecuta trabajos críticos, debe tomar medidas para evitar este riesgo.
Puede reducir el riesgo de que un error afecte a la carga de trabajo mediante la implementación de trabajos idénticos en dos regiones de Azure. A continuación, debe supervisar estos trabajos para recibir notificaciones cuando se produzca algo inesperado. Si uno de estos trabajos termina en un Estado fallido después de una actualización del servicio Stream Analytics, debería:
- Póngase en contacto con el soporte técnico de Azure para ayudar a identificar la causa y resolver el problema.
- Transferir cualquier consumidor de nivel inferior para que utilice la salida del trabajo que sea correcta.
Al seleccionar regiones de Azure que se van a usar para el trabajo secundario, considere si la región tiene una región emparejada. La lista de regiones de Azure tiene la información más actualizada sobre qué regiones están emparejadas. Stream Analytics garantiza que la infraestructura de las regiones emparejadas se actualice en momentos diferentes. La implementación de una actualización en Stream Analytics no se produce al mismo tiempo en un conjunto de regiones emparejadas. Como resultado, hay un intervalo de tiempo suficiente entre las actualizaciones para identificar posibles problemas y corregirlos.
Acuerdo de nivel de servicio
El contrato de nivel de servicio (SLA) para los servicios de Azure describe la disponibilidad esperada de cada servicio y las condiciones que la solución deberá cumplir para lograr esa expectativa de disponibilidad. Para obtener más información, consulte Acuerdos de Nivel de Servicio para servicios en línea.
Stream Analytics proporciona acuerdos de nivel de servicio de disponibilidad independientes para las llamadas a la API para gestionar trabajos y para las operaciones de los mismos.