Partager via


Fiabilité dans Azure Stream Analytics

Azure Stream Analytics est un service hautement résilient qui traite et analyse simultanément les données de streaming à partir de plusieurs sources. Stream Analytics vous fournit les informations qui vous permettent de créer des pipelines de traitement d’événements complexes avec des requêtes de type SQL.

Lorsque vous utilisez Azure, la fiabilité est une responsabilité partagée. Microsoft fournit une gamme de fonctionnalités pour prendre en charge la résilience et la récupération. Vous êtes responsable de comprendre le fonctionnement de ces fonctionnalités dans tous les services que vous utilisez et de sélectionner les fonctionnalités dont vous avez besoin pour atteindre vos objectifs métier et vos objectifs de temps d’activité.

Cet article décrit comment Stream Analytics est résilient aux problèmes potentiels, notamment les pannes temporaires et les pannes de zone de disponibilité. Nous fournissons également des conseils sur la façon de protéger les travaux stratégiques contre les pannes de région et la maintenance des services, et de mettre en évidence certaines informations clés sur le contrat de niveau de service Stream Analytics (SLA).

Important

L’amélioration de la résilience de Stream Analytics seul peut avoir un impact limité si les autres composants ne sont pas tout aussi résilients. Tenez compte de la fiabilité de vos sources de données, y compris les entrées et sorties. Selon vos besoins de résilience, vous devrez peut-être apporter des modifications de configuration dans plusieurs domaines.

Recommandations concernant le déploiement de production

Pour garantir une fiabilité élevée dans les environnements de production avec Stream Analytics, nous vous recommandons de :

  • Utilisez des régions avec des zones de disponibilité : Déployez vos travaux de streaming et d’autres ressources dans les régions qui prennent en charge les zones de disponibilité.
  • Déployez une capacité suffisante : Définissez vos unités de diffusion en continu en fonction de votre débit attendu, avec une capacité supplémentaire pour gérer les pics de charge et avec une mémoire tampon au-dessus de vos besoins de base en cas d’augmentation soudaine.
  • Surveiller l’intégrité : Implémentez une surveillance complète à l’aide des métriques et des journaux de diagnostic Azure Monitor pour suivre l’intégrité des travaux, les événements d’entrée/sortie et l’utilisation des ressources. Configurez des alertes pour les métriques critiques telles que les retards de filigrane et les erreurs d’exécution pour détecter les problèmes avant qu’elles n’affectent le traitement des données. Pour plus d’informations, consultez Surveiller Azure Stream Analytics.
  • Implémentez la redondance multirégion pour les charges de travail stratégiques : Déployez des travaux Stream Analytics identiques dans plusieurs régions avec des configurations synchronisées et un routage des données approprié pour obtenir une résilience régionale. Bien que Stream Analytics ne fournisse pas de réplication multirégion native, cette approche permet le basculement et la continuité. Pour plus d’informations, consultez Les solutions multirégions personnalisées pour la résilience.

Vue d’ensemble de l’architecture de fiabilité

Cette section décrit certains des aspects importants du fonctionnement du service qui sont les plus pertinents du point de vue de la fiabilité. La section présente l’architecture logique, qui inclut certaines des ressources et fonctionnalités que vous déployez et utilisez. Il traite également de l’architecture physique, qui fournit des détails sur le fonctionnement du service sous les couvertures.

Architecture logique

Une tâche est l’unité fondamentale de Stream Analytics qui vous permet de définir et d’exécuter votre logique de traitement de flux. Un travail se compose des composants principaux suivants :

  • Entrées qui lisent les données de streaming à partir de sources de données, telles qu’Azure Event Hubs, Azure IoT Hub ou Azure Storage.
  • Requête qui traite et transforme les données.
  • Sorties qui écrivent en continu des résultats dans différentes destinations, telles qu’Azure SQL Database, Azure Data Lake Storage, Azure Cosmos DB, Power BI, etc.

Pour plus d’informations sur les travaux Stream Analytics et le modèle de ressource, consultez le modèle de ressource Azure Stream Analytics.

Architecture physique

Stream Analytics offre une fiabilité élevée en appliquant plusieurs couches de résilience pour atténuer les problèmes liés à l’infrastructure sous-jacente et aux sources de données d’entrée et de sortie. Les composants suivants permettent de garantir un fonctionnement robuste de vos travaux :

  • Nœuds worker. Les travaux Stream Analytics s'exécutent sur des machines virtuelles (VM) appelées nœuds Worker qui s'exécutent au sein d'un cluster. Lorsque vous utilisez les références SKU Standard ou StandardV2, vos travaux s’exécutent sur des clusters partagés. Lorsque vous utilisez la référence SKU dédiée , vos travaux s’exécutent sur leur propre cluster dédié.

    Étant donné que la plateforme gère automatiquement la création de nœuds Worker, le placement des travaux entre les nœuds Worker, la surveillance de l’intégrité et le remplacement des nœuds Worker non sains, vous ne voyez pas ou ne gérez pas directement les machines virtuelles.

  • Unités de diffusion en continu. Bien que la plateforme gère les nœuds Worker et la distribution des travaux entre les nœuds Worker, vous êtes responsable de l'allocation des unités de streaming (SU) aux travaux. Les unités de calcul représentent les ressources de calcul qui exécutent une tâche. Plus le nombre d'unités de calcul (SUs) est élevé, plus les ressources de calcul sont allouées pour la tâche. Pour plus d’informations, consultez Comprendre et ajuster les unités de streaming Stream Analytics.

  • Points de contrôle. Stream Analytics maintient l'état du travail via un checkpointing régulier de l'état. Les points de contrôle permettent une récupération rapide avec un traitement minimal des données en cas d’échecs, même pour les travaux qui utilisent une logique de requête avec état.

    Lorsque des échecs de traitement se produisent, Stream Analytics redémarre automatiquement à partir du dernier point de contrôle et retraite automatiquement les événements qui échouent pendant le traitement. Cette garantie s’applique à toutes les fonctions intégrées et aux fonctions définies par l’utilisateur dans le travail. Cependant, l'obtention d'une remise de bout en bout exactement une fois dépend des capacités de votre destination de sortie. Pour plus d'informations, veuillez consulter la section Concepts de checkpoint et de relecture dans les travaux Azure Stream Analytics.

Note

Avec Azure Stream Analytics sur IoT Edge , vous pouvez exécuter des travaux sur votre propre infrastructure. Lorsque vous utilisez Stream Analytics sur IoT Edge, vous êtes responsable de sa configuration pour répondre à vos exigences de fiabilité. Stream Analytics sur IoT Edge est en dehors de l’étendue de cet article.

Résilience aux défauts transitoires

Les erreurs temporaires sont des défaillances courtes et intermittentes dans les composants. Elles se produisent fréquemment dans un environnement distribué comme le cloud, et font partie intégrante des opérations ordinaires. Les erreurs temporaires se corrigent après une courte période de temps. Il est important que vos applications puissent gérer les erreurs temporaires, généralement en réessayant les requêtes affectées.

Toutes les applications hébergées dans le cloud doivent suivre les instructions de gestion des erreurs temporaires Azure lorsqu’elles communiquent avec toutes les API, bases de données et autres composants hébergés dans le cloud. Pour plus d’informations, consultez Recommandations pour la gestion des erreurs temporaires.

Stream Analytics gère automatiquement de nombreuses erreurs temporaires pour l’ingestion de données à partir d’entrées et l’écriture de données dans des sorties via des mécanismes de nouvelle tentative intégrés. Après le redémarrage ou la réaffectation d’un nœud Worker, la tâche utilise des points de contrôle pour rejouer tous les événements qui n’ont pas été entièrement traités et continue de traiter jusqu’à atteindre le flux de données actuel.

Il est recommandé de configurer des stratégies d’erreur de sortie. Toutefois, ces stratégies s’appliquent uniquement aux erreurs de conversion de données et n’influencent pas le comportement de gestion des erreurs temporaires.

Résilience aux échecs de zone de disponibilité

Les zones de disponibilité sont des groupes physiquement distincts de centres de données au sein d’une région Azure. Lorsqu'une zone tombe en panne, les services peuvent basculer vers l'une des zones restantes.

Stream Analytics est automatiquement redondant interzones dans les régions qui prennent en charge les zones de disponibilité, ce qui signifie que les travaux utilisent plusieurs zones de disponibilité. La redondance de zone garantit que votre travail est résilient à un grand ensemble de défaillances, y compris les pannes catastrophiques du centre de données, sans aucune modification de la logique d’application.

Lorsque vous créez un travail Stream Analytics dans une région prenant en charge la zone, le service distribue les ressources de calcul de votre travail dans plusieurs zones de disponibilité :

Diagramme montrant un travail Stream Analytics redondant interzones.

Ce modèle de déploiement redondant interzone garantit que vos travaux de streaming continuent de traiter les données même si une zone de disponibilité entière devient indisponible. Par exemple, le diagramme suivant montre comment les travaux continuent à s’exécuter si la zone 3 subit une panne :

Diagramme montrant une tâche Stream Analytics redondante interzone continuant à s’exécuter lorsqu’une zone est en panne.

La redondance de zone s’applique à toutes les fonctionnalités Stream Analytics, notamment le traitement des requêtes, les points de contrôle et les opérations de gestion des travaux. Stream Analytics réplique automatiquement l'état et les données de point de contrôle de votre travail dans les zones de disponibilité, empêchant ainsi la perte de données et permettant un temps d'arrêt quasi nul durant les défaillances de zone.

Spécifications

  • Prise en charge de la région : La redondance de zone pour les ressources Stream Analytics est prise en charge dans n’importe quelle région qui prend en charge les zones de disponibilité. Pour obtenir la liste complète des régions qui prennent en charge les zones de disponibilité, consultez les régions Azure avec des zones de disponibilité.
  • SKUs: La redondance de zone est disponible dans toutes les SKU Stream Analytics.

Coûts

La redondance de zone sur Stream Analytics n’entraîne pas de frais supplémentaires. Vous payez le même tarif pour les unités de streaming, que votre travail s’exécute dans une configuration redondante entre zones ou non. Pour plus d’informations, consultez la tarification d’Azure Stream Analytics.

Configurez la prise en charge des zones de disponibilité

Comportement lorsque toutes les zones sont saines

Cette section décrit ce qu’il faut attendre lorsque vous configurez des travaux Stream Analytics avec prise en charge des zones de disponibilité et que toutes les zones de disponibilité sont opérationnelles.

  • Routage du trafic entre les zones. Stream Analytics exécute chaque travail sur des nœuds Worker. Les données de streaming entrantes peuvent être traitées par des workers dans n'importe quelle zone. Le service utilise l’équilibrage de charge interne pour distribuer les tâches de traitement entre les zones.

  • Réplication des données entre les zones. Stream Analytics réplique l’état du travail et les données de point de contrôle de manière synchrone entre les zones de disponibilité. Lorsque la tâche traite des événements et met à jour son état, Stream Analytics écrit ces modifications dans plusieurs zones de disponibilité avant d'en accuser réception. Cette réplication synchrone garantit une perte de données nulle même si une zone entière devient indisponible. Le processus de réplication est transparent pour votre application et n’affecte pas la latence de traitement dans des conditions normales.

Comportement lors d’une défaillance de zone

Cette section décrit ce que vous devez attendre lorsque vous configurez des travaux Stream Analytics avec prise en charge de la zone de disponibilité et qu’il existe une panne de zone de disponibilité.

  • Détection et réponse : la plateforme Stream Analytics est chargée de détecter une défaillance dans une zone de disponibilité et de répondre. Stream Analytics marque les workers dans la zone défaillante comme défectueux, et les tâches qui s’exécutent sur ces workers sont automatiquement redistribuées aux workers dans les zones saines restantes. Vous n’avez rien à faire pour initier un failover de zone.
  • Notification : Microsoft ne vous avertit pas automatiquement lorsqu’une zone est en panne. Toutefois, vous pouvez utiliser Azure Resource Health pour surveiller l’intégrité d’une ressource individuelle, et vous pouvez configurer des alertes Resource Health pour vous avertir des problèmes. Vous pouvez également utiliser Azure Service Health pour comprendre l’intégrité globale du service, y compris les défaillances de zone, et vous pouvez configurer des alertes Service Health pour vous avertir des problèmes.
  • Demandes actives : les tâches en cours sont transférées vers un autre travailleur dans une zone de disponibilité saine.

    Stream Analytics utilise des points de contrôle pour maintenir l’état de traitement. Lors d'une défaillance de zone, les événements en cours de traitement par des workers dans la zone défaillante sont automatiquement retraités à partir du dernier point de contrôle par des workers dans des zones saines.

  • Perte de données attendue : le système de point de contrôle du travail garantit aucune perte de données.

  • Temps d’arrêt attendu : les travaux en cours reprendnt automatiquement une fois que la plateforme les déplace vers un travailleur sain.

  • Routage du trafic : le service redirige automatiquement toutes les nouvelles données d'entrée vers des workers dans des zones saines. Les connexions existantes à partir de sources d’entrée sont réétablies avec des travailleurs dans des zones opérationnelles. Les connexions de sortie sont de nouveau établies de façon similaire, ce qui garantit un flux de données continu via votre pipeline de diffusion en continu.

Récupération de la zone

Lorsque la zone de disponibilité ayant échoué se récupère, Stream Analytics la réinscrit automatiquement dans le pool de traitement actif. Les travaux commencent à utiliser l’infrastructure récupérée.

Vous n’effectuez aucune action pour la récupération de zone, car la plateforme gère tous les aspects des opérations de récupération de zone, y compris la synchronisation d’état et la redistribution des charges de travail.

Tester les pannes de zone

Étant donné que la plateforme Stream Analytics gère le routage du trafic, le basculement et la récupération de zone de disponibilité, vous n’avez pas besoin de lancer ou de valider les processus associés à la défaillance d'une zone de disponibilité.

Résilience aux défaillances à l’échelle de la région

Stream Analytics déploie des ressources dans une seule région Azure. Si la région devient indisponible, vos travaux (et clusters dédiés, le cas échéant) sont également indisponibles.

Solutions multirégions personnalisées pour la résilience

Pour obtenir une résilience multirégion pour vos charges de travail de streaming, envisagez de déployer des travaux distincts dans plusieurs régions. Lorsque vous le faites, vous êtes responsable du déploiement et de la gestion des travaux et de la configuration des stratégies de routage et de synchronisation des données appropriées. Les tâches Stream Analytics sont deux entités distinctes. Il incombe à votre application d’envoyer des données d’entrée dans les deux entrées régionales et de rapprocher les sorties régionales. Pour plus d’informations sur cette approche, consultez Obtenir une géoredondance pour les tâches Stream Analytics.

Sauvegarde et restauration

Stream Analytics ne dispose pas d’une fonctionnalité de sauvegarde et de restauration intégrée.

Toutefois, si vous souhaitez déplacer, copier ou sauvegarder la définition et la configuration de vos travaux, vous pouvez utiliser l’extension Stream Analytics pour Visual Studio Code pour exporter un travail existant dans le cloud Azure vers votre ordinateur local. Une fois que vous avez enregistré l’intégralité de la configuration de vos travaux Stream Analytics localement, vous pouvez la déployer dans la même région Azure ou une autre région Azure. Pour savoir comment copier, sauvegarder et déplacer vos travaux Stream Analytics, consultez Copier, sauvegarder et déplacer vos travaux Azure Stream Analytics.

Résilience à la maintenance du service

Stream Analytics effectue la maintenance automatique de la plateforme pour appliquer des mises à jour de sécurité, déployer de nouvelles fonctionnalités et améliorer la fiabilité du service. Par conséquent, Stream Analytics peut avoir des mises à jour de service déployées sur une base hebdomadaire (ou plus fréquente). Le service Stream Analytics garantit que toute nouvelle mise à jour passe des anneaux internes rigoureux pour avoir la meilleure qualité.

Tenez compte des points suivants pour vous assurer que vos travaux sont résilients aux activités de maintenance de service :

  • Rendez les travaux résilients aux réexécutions : Les points de contrôle sont généralement utilisés pour restaurer les données après la maintenance du service. Cependant, il est parfois nécessaire d'utiliser une technique de relecture au lieu d'un point de contrôle. Pour plus d'informations et pour savoir comment configurer vos sources de données d'entrée afin que les relectures ne provoquent pas de résultats incorrects ou partiels dans votre sortie, consultez Récupération de travail à partir d’une mise à niveau de service.

  • Envisagez d’atténuer le risque de bogues en déployant des travaux identiques : Le service recherche de manière proactive de nombreux signaux après le déploiement sur chaque lot pour obtenir plus de confiance en l’absence de bogues introduits. Toutefois, quelle que soit la quantité de tests effectuée, il existe toujours un risque qu’un travail en cours d’exécution puisse s’interrompre en raison de l’introduction d’un problème introduit par la maintenance. Si vous exécutez des travaux stratégiques, vous devez prendre des mesures pour éviter ce risque.

    Vous pouvez réduire le risque d’un bogue affectant votre charge de travail en déployant des travaux identiques dans deux régions Azure. Vous devez ensuite surveiller ces travaux pour recevoir des notifications lorsque quelque chose d’inattendu se produit. Si l’un de ces travaux se termine dans un état d’échec après une mise à jour du service Stream Analytics, vous devez :

    • Contactez le support Azure pour identifier la cause et résoudre le problème.
    • Basculez tous les consommateurs en aval afin qu'ils utilisent la sortie de travail saine.

    Lorsque vous sélectionnez des régions Azure à utiliser pour votre travail secondaire, déterminez si votre région a une région jumelée. La liste des régions Azure contient les informations les plus up-to-date sur les régions associées. Stream Analytics garantit que l’infrastructure dans les régions jumelées est mise à jour à différents moments. Le déploiement d’une mise à jour vers Stream Analytics ne se produit pas en même temps dans un ensemble de régions jumelées. Par conséquent, il existe un intervalle de temps suffisant entre les mises à jour pour identifier les problèmes potentiels et les corriger.

Contrat de niveau de service

Le contrat de niveau de service (SLA) pour les services Azure décrit la disponibilité attendue de chaque service et les conditions que votre solution doit respecter pour atteindre cette attente de disponibilité. Pour plus d’informations, consultez les contrats SLA pour les services en ligne.

Stream Analytics fournit des contrats SLA de disponibilité distincts pour les appels d’API pour gérer les travaux et pour les opérations des travaux.