
Fournisseurs de stockage Durable Functions – Azure – Un bon serveur Minecraft
[bzkshopping keyword= »Minecraft » count= »8″ template= »grid »]
<!–
Les fonctions durables conservent automatiquement les paramètres de fonction, les valeurs de retour et d'autres états dans un stockage durable pour garantir une exécution fiable. La configuration par défaut de Durable Functions stocke cet état d'exécution dans un compte Azure Storage (classique). Cependant, il est possible de configurer Durable Functions v2.0 et supérieur pour utiliser un autre fournisseur de stockage durable.
Durable Functions est un ensemble de déclencheurs et de liaisons Azure Functions qui sont alimentés en interne par Durable Task Framework (DTFx). DTFx prend en charge divers fournisseurs de stockage principal, y compris le fournisseur de stockage Azure utilisé par Durable Functions. Commencer dans les fonctions durables v2.5.0, les utilisateurs peuvent configurer leurs applications de fonction pour utiliser des fournisseurs de stockage DTFx autres que le fournisseur de stockage Azure.
Noter
Le choix d'utiliser des fournisseurs de stockage autres qu'Azure Storage doit être fait avec soin. La plupart des applications de fonction exécutées dans Azure doivent utiliser le fournisseur de stockage Azure par défaut pour les fonctions durables. Cependant, il existe des compromis importants en matière de coûts, d'évolutivité et de gestion des données qui doivent être pris en compte lors de la décision d'utiliser un autre fournisseur de stockage. Cet article décrit plusieurs de ces compromis en détail.
Notez également qu'il n'est actuellement pas possible de migrer des données d'un fournisseur de stockage à un autre. Si vous souhaitez utiliser un nouveau fournisseur de stockage, vous devez créer une nouvelle application configurée avec le nouveau fournisseur de stockage.
Deux autres fournisseurs de stockage DTFx ont été développés pour être utilisés avec Durable Functions, le Netherite fournisseur de stockage et le Serveur Microsoft SQL (MSSQL) fournisseur de stockage. Cet article décrit les trois fournisseurs pris en charge, les compare les uns aux autres et fournit des informations de base sur la façon de commencer à les utiliser.
Stockage Azure
Le stockage Azure est le fournisseur de stockage par défaut pour les fonctions durables. Il utilise des files d'attente, des tables et des objets blob pour conserver l'orchestration et l'état de l'entité. Il utilise également des blobs et des blob blob pour gérer les partitions. Dans de nombreux cas, le compte de stockage utilisé pour stocker l'état d'exécution de Durable Functions est le même que le compte de stockage par défaut utilisé par Azure Functions (AzureWebJobsStockage
). Cependant, il est également possible de configurer Durable Functions avec un compte de stockage séparé. Le fournisseur de stockage Azure est intégré à l'extension Durable Functions et n'a aucune autre dépendance.
Les principaux avantages du fournisseur de stockage Azure incluent :
- Aucune configuration requise – vous pouvez utiliser le compte de stockage qui a été créé pour vous par l'expérience de configuration de l'application de fonction.
- Modèle de facturation sans serveur le moins cher – Azure Storage a un modèle de tarification basé sur la consommation entièrement basé sur l'utilisation (plus d'informations).
- Meilleure prise en charge des outils – Azure Storage offre une émulation locale multiplateforme et s'intègre à Visual Studio, Visual Studio Code et Azure Functions Core Tools.
- Le plus mature – Azure Storage était le backend de stockage original et le plus testé au combat pour les fonctions durables.
Le code source des composants DTFx du fournisseur de stockage Azure se trouve dans le référentiel GitHub Azure/durabletask.
Noter
Des comptes de stockage Azure standard à usage général sont requis lors de l'utilisation du fournisseur de stockage Azure. Tous les autres types de comptes de stockage ne sont pas pris en charge. Nous vous recommandons vivement d'utiliser des comptes de stockage à usage général hérités v1, car les nouveaux comptes de stockage v2 peuvent être considérablement plus coûteux pour les charges de travail Durable Functions. Pour plus d'informations sur les types de comptes de stockage Azure, consultez la documentation de présentation du compte de stockage.
Netherite (aperçu)
Le backend de stockage Netherite a été conçu et développé par Microsoft Research. Il utilise Azure Event Hubs et la technologie de base de données FASTER sur Azure Page Blobs. La conception de Netherite permet un traitement à débit nettement plus élevé des orchestrations et des entités par rapport aux autres fournisseurs. Dans certains scénarios de référence, il a été démontré que le débit augmentait de plus d'un ordre de grandeur par rapport au fournisseur de stockage Azure par défaut.
Les principaux avantages du fournisseur de stockage Netherite incluent :
- Débit considérablement plus élevé à moindre coût par rapport aux autres fournisseurs de stockage.
- Prend en charge l'optimisation des prix et des performances, vous permettant d'augmenter les performances selon vos besoins.
- Prend en charge jusqu'à 32 partitions de données avec les références Event Hubs Basic et Standard.
- Plus rentable que les autres fournisseurs pour les charges de travail à haut débit.
Vous pouvez en savoir plus sur les détails techniques du fournisseur de stockage Netherite, y compris comment commencer à l'utiliser, dans la documentation Netherite. Le code source du fournisseur de stockage Netherite se trouve dans le référentiel GitHub microsoft/durabletask-netherite. Une évaluation plus approfondie du fournisseur de stockage Netherite est également disponible dans le document de recherche suivant : Workflows sans serveur avec fonctions durables et Netherite.
Noter
Les Netherite le nom vient du monde de Minecraft.
Microsoft SQL Server (MSSQL) (préversion)
Le fournisseur de stockage Microsoft SQL Server (MSSQL) conserve tous les états dans une base de données Microsoft SQL Server. Il est compatible avec les déploiements sur site et hébergés dans le cloud de SQL Server, y compris Azure SQL Database.
Les principaux avantages du fournisseur de stockage MSSQL incluent :
- Prend en charge les environnements déconnectés – aucune connectivité Azure n'est requise lors de l'utilisation d'une installation SQL Server.
- Portable dans plusieurs environnements et clouds, y compris hébergés sur Azure et sur site.
- Forte cohérence des données, permettant la sauvegarde/restauration et le basculement sans perte de données.
- Prise en charge native du cryptage de données personnalisé (une fonctionnalité de SQL Server).
- S'intègre aux applications de base de données existantes via des procédures stockées intégrées.
Vous pouvez en savoir plus sur les détails techniques du fournisseur de stockage MSSQL, y compris comment commencer à l'utiliser, dans la documentation du fournisseur Microsoft SQL. Le code source du fournisseur de stockage MSSQL se trouve dans le référentiel GitHub microsoft/durabletask-mssql.
Configuration d'autres fournisseurs de stockage
La configuration d'autres fournisseurs de stockage est généralement un processus en deux étapes :
- Ajoutez le package NuGet approprié à votre application de fonction (cette exigence est temporaire pour les applications utilisant des ensembles d'extensions).
- Mettre à jour le hôte.json pour spécifier le fournisseur de stockage que vous souhaitez utiliser.
Si aucun fournisseur de stockage n'est explicitement configuré dans host.json, le fournisseur de stockage Azure sera activé par défaut.
Configuration du fournisseur de stockage Azure
Le fournisseur de stockage Azure est le fournisseur de stockage par défaut et ne nécessite aucune configuration explicite, aucune référence de package NuGet ou aucune référence de groupe d'extension. Vous pouvez trouver l'ensemble complet de hôte.json options de configuration ici, sous le extensions/durableTask/storageProvider
chemin.
Configuration du fournisseur de stockage Netherite
Pour utiliser le fournisseur de stockage Netherite, vous devez d'abord ajouter une référence au package NuGet Microsoft.Azure.DurableTask.Netherite.AzureFunctions dans votre csproj (applications .NET) ou votre extensions.proj (applications JavaScript, Python et PowerShell).
Noter
Le fournisseur de stockage Netherite n'est pas encore pris en charge dans les applications qui utilisent des packs d'extension.
L'exemple host.json suivant montre la configuration minimale requise pour activer le fournisseur de stockage Netherite.
"version": "2.0",
"extensions":
"durableTask":
"fournisseur de stockage":
"type": "Netherite",
"storageConnectionName": "AzureWebJobsStorage",
"eventHubsConnectionName": "EventHubsConnection"
Pour des instructions de configuration plus détaillées, consultez la documentation de démarrage de Netherite.
Configuration du fournisseur de stockage MSSQL
Pour utiliser le fournisseur de stockage MSSQL, vous devez d'abord ajouter une référence au package NuGet Microsoft.DurableTask.SqlServer.AzureFunctions dans votre csproj (applications .NET) ou votre extensions.proj (applications JavaScript, Python et PowerShell).
Noter
Le fournisseur de stockage MSSQL n'est pas encore pris en charge dans les applications qui utilisent des ensembles d'extensions.
L'exemple suivant montre la configuration minimale requise pour activer le fournisseur de stockage MSSQL.
"version": "2.0",
"extensions":
"durableTask":
"fournisseur de stockage":
"type": "mssql",
"connectionStringName": "SQLDB_Connection"
Pour des instructions de configuration plus détaillées, consultez la documentation de démarrage du fournisseur MSSQL.
Comparer les fournisseurs de stockage
Il existe de nombreux compromis importants entre les différents fournisseurs de stockage pris en charge. Le tableau suivant peut être utilisé pour vous aider à comprendre ces compromis et à décider quel fournisseur de stockage est le mieux adapté à vos besoins.
Fournisseur de stockage | Stockage Azure | Netherite | MSSQL |
---|---|---|---|
Statut d'assistance officiel | ✅ Généralement disponible (GA) | ⚠ Avant-première publique | ⚠ Avant-première publique |
Dépendances externes | Compte de stockage Azure (usage général v1) | Centres d'événements Azure Compte de stockage Azure (usage général) |
SQL Server 2019 ou Azure SQL Database |
Options de développement local et d'émulation | Azurite v3.12+ (multiplateforme) Émulateur de stockage Azure (Windows uniquement) |
Émulation en mémoire (plus d'informations) | SQL Server Developer Edition (prend en charge les conteneurs Windows, Linux et Docker) |
Configuration du hub de tâches | Explicite | Explicite | Implicite par défaut (plus d'informations) |
Débit maximal | Modérer | Très haut | Modérer |
Orchestration/évolutivité maximale de l'entité (nœuds) | 16 | 32 | N / A |
Évolutivité maximale de l'activité (nœuds) | N / A | 32 | N / A |
Accompagnement plan de consommation | Entièrement pris en charge | Non pris en charge | Non pris en charge |
Prise en charge du forfait Elastic Premium | Entièrement pris en charge | ⚠ Nécessite une surveillance de l'échelle d'exécution | ⚠ Nécessite une surveillance de l'échelle d'exécution |
Prise en charge de la mise à l'échelle KEDA 2.0 (Plus d'information) |
Non pris en charge | Non pris en charge | ✅ Pris en charge à l'aide du scaler MSSQL (plus d'informations) |
Prise en charge des ensembles d'extensions (recommandé pour les applications non .NET) | Entièrement pris en charge | Non pris en charge | Non pris en charge |
Prix-performance configurable ? | Non | ✅ Oui (Event Hubs TU et CU) | ✅ Oui (SQL vCPU) |
Prise en charge de l'environnement déconnecté | ❌ Connectivité Azure requise | ❌ Connectivité Azure requise | Entièrement pris en charge |
Prochaines étapes
<!– –>
Commentaires
Laisser un commentaire