Modèle de hub FinOps
Ce document fournit un résumé détaillé des éléments inclus dans le modèle de déploiement FinOps Hubs. Vous pouvez l’utiliser comme guide pour paramétrer votre déploiement ou pour informer les personnalisations que vous pouvez apporter au modèle pour répondre aux besoins de votre organisation. Ce document explique les conditions préalables requises pour déployer le modèle, les paramètres d’entrée que vous pouvez personnaliser, les ressources qui seront déployées et les sorties du modèle. Les sorties de modèle peuvent être utilisées pour se connecter à vos instances hub dans Power BI, l’Explorateur de données ou d’autres outils.
Les hubs FinOps incluent de nombreuses ressources pour offrir une plateforme FinOps sécurisée et évolutive. Les principales ressources avec lesquelles vous allez interagir sont les suivantes :
- Explorateur de données (Kusto) en tant que magasin de données scalable pour l’analytique avancée (facultatif).
- Compte de stockage (Data Lake Storage Gen2) en tant que zone intermédiaire pour l’ingestion de données.
- Instance de Data Factory pour gérer l’ingestion et le nettoyage des données.
Important
Pour utiliser le modèle, vous devez créer des exportations Cost Management pour publier des données dans le conteneur msexports
dans le compte de stockage inclus. Pour plus d’informations, consultez Créer un hub.
Prérequis
Vérifiez que les conditions préalables suivantes sont remplies avant de déployer le modèle :
Vous devez disposer des autorisations suivantes pour créer les ressources déployées.
Ressource Minimum Azure RBAC Déployer et configurer Data Factory¹ Contributeurs de fabrique de données Déployer Key Vault¹ Contributeur Key Vault Configurer les secrets Key Vault¹ Administrateur Key Vault Créer une identité managée¹ Contributeur d’identités gérées Déployer et configurer le stockage¹ Contributeur de compte de stockage Affecter une identité managée aux ressources¹ Opérateur d’identités gérées Créer des scripts de déploiement¹ Rôle personnalisé contenant uniquement les autorisations et Microsoft.Resources/deploymentScripts/write
lesMicrosoft.ContainerInstance/containerGroups/write
actions autorisées ou, alternativement, Contributeur, qui inclut ces autorisations et tous les rôles ci-dessusAttribuer des autorisations à des identités managées¹ Administrateur du contrôle d’accès en fonction du rôle ou, alternativement, propriétaire, qui inclut ce rôle et tous les rôles ci-dessus Créer un abonnement ou un coût de groupe de ressources export² Contributeur Cost Management Créer une exportation de coût de facturation EA² Lecteur d’entreprise, Lecteur du service ou Propriétaire du compte d’inscription (En savoir plus) Créer une exportation de coût de facturation MCA² Contributeur Lire les données d’objet blob dans le stockage³ Contributeur aux données Blob du stockage ¹ Il suffit d’attribuer des autorisations de déploiement de ressources hubs sur l’étendue du groupe de ressources.
Les autorisations Cost Management doivent être attribuées sur l’étendue à partir de laquelle vous souhaitez exporter vos coûts.
Les autorisations de données blob sont requises pour accéder aux données de coût exportées à partir de Power BI ou d’autres outils clients.Le fournisseur de ressources Microsoft.EventGrid doit être inscrit dans votre abonnement. Pour plus d’informations, consultez Inscrire un fournisseur de ressources.
Important
Si vous oubliez cette étape, le déploiement réussit, mais le déclencheur de pipeline ne sera pas démarré et les données ne seront pas prêtes. Pour plus d’informations, consultez Résolution des problèmes liés aux rapports Power BI.
Paramètres
Voici les paramètres que vous pouvez utiliser pour personnaliser le déploiement :
Paramètre | Type | Description | Valeur par défaut |
---|---|---|---|
hubName | Chaîne | facultatif. Nom du hub. Permet de garantir des noms de ressources uniques. | « finops-hub » |
location | Chaîne | facultatif. Emplacement Azure où toutes les ressources doivent être créées. Consultez l’article https://aka.ms/azureregions. | Identique au déploiement |
storageSku | Chaîne | facultatif. Référence SKU de stockage à utiliser. LRS = Coût le plus bas, ZRS = Haute disponibilité. Notez que les références SKU Standard ne sont pas disponibles pour le stockage Data Lake gen2. Autorisé : Premium_LRS , Premium_ZRS . |
« Premium_LRS » |
nomExplorateurDonnées | Chaîne | facultatif. Nom du cluster Azure Data Explorer à utiliser pour l’analytique avancée. S’il est vide, Azure Data Explorer ne sera pas déployé. Obligatoire à utiliser avec Power BI si vous avez plus de 2 à 5 millions de dollars/mo dans les coûts surveillés. Valeur par défaut : « » (n’utilisez pas). | |
nomExplorateurDonnéesSku | Chaîne | facultatif. Nom de la référence SKU Azure Data Explorer. Valeur par défaut : « Dev(Pas de SLA)_Standard_E2a_v4 ». | |
niveauExplorateurDonnéesSku | Chaîne | facultatif. Niveau de référence SKU pour le cluster Azure Data Explorer. Utilisez Basic pour le coût le plus bas sans contrat SLA (en raison d’un seul nœud). Utilisez Standard pour une haute disponibilité et des performances améliorées. Valeurs autorisées : De base, Standard. Valeur par défaut : « De base ». | |
capacitéExplorateurDonnéesSku | Int | facultatif. Nombre de nœuds à utiliser dans le cluster. Valeurs autorisées : 1 pour le niveau de référence SKU de base et 2-1000 pour Standard. Valeur par défaut : 1. | |
balises | Objet | facultatif. Balises à appliquer à toutes les ressources. Nous ajouterons également la balise cm-resource-parent pour améliorer les cumuls de coûts dans Cost Management. |
|
tagsByResource | Objet | facultatif. Balises à appliquer aux ressources en fonction de leur type de ressource. Les balises spécifiques au type de ressource sont fusionnées avec des balises pour toutes les ressources. | |
scopesToMonitor | Tableau | facultatif. Liste des ID d’étendue pour surveiller et ingérer les coûts. | |
exportRetentionInDays | Int | facultatif. Nombre de jours de conservation des données dans le conteneur msexports. | 0 |
ingestionRetentionInMonths | Int | facultatif. Nombre de mois de données à conserver dans le conteneur d’ingestion. | 13 |
rétentionJournauxExplorateurDonnéesEnJours | Int | facultatif. Nombre de jours de conservation des données dans les tables *_log de l’Explorateur de données. | 0 |
rétentionFinaleExplorateurDonnéesEnMois | Int | facultatif. Nombre de mois de données à conserver dans les tables *_final_v* de l’Explorateur de données. | 13 |
remoteHubStorageUri | Chaîne | facultatif. Compte de stockage vers lequel envoyer des données pour l’ingestion dans un hub distant. | |
remoteHubStorageKey | Chaîne | facultatif. Clé de compte de stockage à utiliser lors de l’envoi de données vers un hub distant. | |
activerAccèsPublic | string | facultatif. Désactivez l’accès public au datalake (pare-feu de stockage). | Faux |
préfixeAdresseRéseauVirtuel | Chaîne | facultatif. Plage d’adresses IP pour le réseau virtuel privé utilisé par les hubs FinOps. /26 est recommandé pour éviter de perdre des adresses IP. En interne, les sous-réseaux suivants sont créés : /28 pour les points de terminaison privés, un autre sous-réseau /28 pour les scripts de déploiement temporaire (instances de conteneur) et /27 pour Azure Data Explorer, s’il est activé. |
'10.20.30.0/26' |
Ressources
Les ressources suivantes sont créées dans le groupe de ressources cible pendant le déploiement.
Les ressources utilisent la convention d’affectation de noms suivante : <hubName>-<purpose>-<unique-suffix>
. Les noms sont ajustés pour tenir compte des restrictions de longueur et de caractère. Permet <unique-suffix>
de s’assurer que les noms de ressources sont globalement uniques si nécessaire.
<hubName>store<unique-suffix>
compte de stockage (Data Lake Storage Gen2)- Conteneurs d’objets blob :
msexports
: stocke temporairement les exportations Cost Management.ingestion
: stocke les données ingérées.Remarque
À l’avenir, nous allons utiliser ce conteneur pour mettre en scène des données externes en dehors de Cost Management.-
config
: stocke les métadonnées et les paramètres de configuration du hub. Fichiers :settings.json
– Paramètres du hub.schemas/focuscost_1.0.json
– Définition de schéma FOCUS 1.0 pour la conversion parquet.schemas/focuscost_1.0-preview(v1).json
– Définition de schéma focus 1.0-preview pour la conversion Parquet.schemas/pricesheet_2023-05-01_ea.json
– Définition de schéma EA de la fiche de prix version 2023-05-01 pour conversion vers format parquet.schemas/pricesheet_2023-05-01_mca.json
– Définition du schéma MCA pour la fiche de prix version 2023-05-01 pour la conversion en parquet.schemas/reservationdeatils_2023-03-01.json
– Définition du schéma des détails de réservation, version 2023-03-01, pour la conversion au format Parquet.schemas/reservationrecommendations_2023-05-01_ea.json
– Suggestion de réservation : définition de schéma EA version 2023-05-01 pour la conversion parquet.schemas/reservationrecommendations_2023-05-01_mca.json
– Suggestions de réservation : définition de schéma MCA version 2023-05-01 pour la conversion parquet.schemas/reservationtransactions_2023-05-01_ea.json
– Définition du schéma EA des transactions de réservation pour la version 2023-05-01, destinée à la conversion au format Parquet.schemas/reservationtransactions_2023-05-01_mca.json
– Définition de schéma MCA des transactions de réservation version 2023-05-01 pour conversion au format Parquet.
- Conteneurs d’objets blob :
<hubName>script<unique-suffix>
compte de stockage (Data Lake Storage Gen2) pour les scripts de déploiement.<hubName>-engine-<unique-suffix>
Instance Data Factory- Pipelines:
config_InitializeHub
: initialise (ou met à jour) l’instance du hub FinOps après le déploiement.config_ConfigureExports
: crée des exportations Cost Management pour toutes les étendues.config_StartBackfillProcess
: exécute le travail de remplissage pour chaque mois en fonction des paramètres de rétention.config_RunBackfillJob
: crée et déclenche des exportations pour toutes les étendues définies pour la plage de dates spécifiée.config_StartExportProcess
: obtient la liste de toutes les exportations Cost Management configurées pour ce hub en fonction des étendues définies dans settings.json, puis exécute chaque exportation à l’aide du pipeline config_RunExportJobs.config_RunExportJobs
: exécute les exportations Cost Management spécifiées.msexports_ExecuteETL
: met en file d’attente lemsexports_ETL_ingestion
pipeline pour prendre en compte les limites de déclencheur de pipeline Data Factory.msexports_ETL_ingestion
: convertit les exportations Cost Management en parquet et supprime les données historiques dupliquées dans l’exportation de chaque jour.ingestion_ExecuteETL
: met en file d’attente leingestion_ETL_dataExplorer
pipeline pour prendre en compte les limites de déclencheur de pipeline Data Factory.ingestion_ETL_dataExplorer
– Ingère des données Parquet dans un cluster Azure Data Explorer.
- Déclenche:
config_SettingsUpdated
: déclenche leconfig_ConfigureExports
pipeline lorsque settings.json est mis à jour.config_DailySchedule
: déclenche leconfig_RunExportJobs
pipeline quotidiennement pour les données de coût du mois en cours.config_MonthlySchedule
: déclenche leconfig_RunExportJobs
pipeline mensuel pour les données de coût du mois précédent.msexports_ManifestAdded
: déclenche lemsexports_ExecuteETL
pipeline lorsque les exportations Cost Management sont terminées.ingestion_ManifestAdded
: déclenche le pipelineingestion_ExecuteETL
lorsque des fichiers manifest.json sont ajoutés (gérés par le pipelinemsexports_ETL_ingestion
).
- Points de terminaison privés managés
<hubName>store<unique-suffix>
- Point de terminaison privé managé pour le compte de stockage.<hubName>-vault-<unique-suffix>
- Point de terminaison privé managé pour Azure Key Vault.
- Pipelines:
<hubName>-vault-<unique-suffix>
Instance Key Vault- Secrets :
- Identité managée du système Data Factory
- Secrets :
<dataExplorerName>
Clusters de l’Explorateur de donnéesHub
base de données : fonctions accessibles au public pour extraire des éléments internes.- Inclut 2 ensembles de fonctions :
- Fonctions spécifiques au jeu de données pour la dernière version de FOCUS prise en charge (par exemple,
Costs
,Prices
). - Fonctions spécifiques au jeu de données pour chaque version FOCUS prise en charge (par exemple,
Costs_v1_0
pour FOCUS 1.0). Ces fonctions sont fournies pour la compatibilité descendante. Toutes les fonctions renvoient toutes les données alignées sur la version FOCUS ciblée.
- Fonctions spécifiques au jeu de données pour la dernière version de FOCUS prise en charge (par exemple,
- Les jeux de données sont les suivants :
Costs
,Prices
. - Les versions FOCUS prises en charge sont les suivantes :
v1_0
.
- Inclut 2 ensembles de fonctions :
- base de données
Ingestion
: stocke les données ingérées.- Paramètres:
HubSettingsLog
table : stocke un historique des modifications de configuration de haut niveau (par exemple, les versions, les étendues).HubSettings
fonction : obtient la dernière version des paramètres d’instance du hub.HubScopes
fonction : obtient les étendues actuellement configurées pour cette instance de hub.
- Ouvrir des données :
PricingUnits
Tableau – fichier de mappage Unités de Prix de la boîte à outils FinOps. Utilisé pour la normalisation et le nettoyage des données.Regions
Tableau – fichier de correspondance des régions du kit de ressources FinOps. Utilisé pour la normalisation et le nettoyage des données.ResourceTypes
tableau – Fichier de mappage ResourceTypes à partir du kit de ressources FinOps. Utilisé pour la normalisation et le nettoyage des données.Services
tableau – Fichier de mappage services de la boîte à outils FinOps. Utilisé pour la normalisation et le nettoyage des données.
- Ensembles de données
<dataset>_raw
tableau – données brutes directement à partir de la source d’ingestion. Utilise un schéma d’union pour les données provenant de plusieurs sources.<dataset>_transform_vX_Y
fonction : normalise et nettoie les données brutes pour s’aligner sur la version focus ciblée à l’aide de tables de données ouvertes si nécessaire.- La table
<dataset>_final_vX_Y
: la version nettoyée de la table brute correspondante alignée sur la version cible FOCUS. Rempli via une stratégie de mise à jour qui utilise la fonction de transformation correspondante lorsque les données sont ingérées dans des tableaux bruts.
- Paramètres:
Outre les informations précédentes, les ressources suivantes sont créées pour automatiser le processus de déploiement. Les scripts de déploiement doivent être supprimés automatiquement. Toutefois, ne supprimez pas les identités managées, car cela peut entraîner des erreurs lors de la mise à niveau vers la prochaine version.
- Identités managées :
<storage>_blobManager
(Contributeur aux données blob de stockage) : charge le fichier settings.json.<datafactory>_triggerManager
(Contributeur Data Factory) : arrête les déclencheurs avant le déploiement et les démarre après le déploiement.
- Scripts de déploiement (supprimés automatiquement après un déploiement réussi) :
<datafactory>_deleteOldResources
: supprime les ressources inutilisées des déploiements FinOps hubs précédents.<datafactory>_stopTriggers
: arrête tous les déclencheurs dans le hub à l’aide de l’identité triggerManager.<datafactory>_startTriggers
: démarre tous les déclencheurs dans le hub à l’aide de l’identité triggerManager.<storage>_uploadSettings
: charge le fichier settings.json à l’aide de l’identité blobManager.
Outputs
Voici les sorties générées par le déploiement :
Sortie | Type | Description | Valeur |
---|---|---|---|
nom | Chaîne | Nom du groupe de ressources. | |
location | Chaîne | Les ressources d’emplacement des ressources Azure ont été déployées sur. | |
dataFactorytName | Chaîne | Nom de Data Factory. | |
storageAccountId | Chaîne | ID de ressource du compte de stockage déployé. | |
storageAccountName | Chaîne | Nom du compte de stockage créé pour l’instance hub. Cela doit être utilisé lors de la connexion des rapports Power BI du Toolkit FinOps à vos données. | |
storageUrlForPowerBI | Chaîne | URL à utiliser lors de la connexion de rapports Power BI personnalisés à vos données. | |
clusterId | Chaîne | ID de ressource du cluster Data Explorer. | |
clusterUri | Chaîne | URI du cluster Explorateur de données. | |
NomDbingestion | Chaîne | Nom de la base de données de l'explorateur de données utilisée pour l’ingestion de données. | |
NomDbhub | Chaîne | Nom de la base de données De l’Explorateur de données utilisée pour interroger des données. | |
managedIdentityId | Chaîne | ID d’objet de l’identité managée Data Factory. Cela sera nécessaire lors de la configuration des exportations managées. | |
managedIdentityTenantId | Chaîne | ID de locataire Azure AD. Cela sera nécessaire lors de la configuration des exportations managées. |