CI/CD Fabric Power BI avec Azure DevOps et TMDL

Introduction

En raison de l’augmentation des données et des besoins analytiques, les entreprises cherchent des approches collaboratives pour développer et gérer de manière efficace leurs projets Power BI. Cependant, le travail à plusieurs sur un même modèle sémantique peut s’avérer complexe et source d’erreurs.

Avec l’introduction du format Power BI Project (Pbip) et le TMDL (Tabular Model Definition Language), Power BI peut désormais être intégré dans un pipeline CI/CD de manière beaucoup plus simple, permettant ainsi aux équipes de travailler simultanément et en parallèle sur un même projet.

Cet article explore comment Power BI, Fabric, Azure DevOps et Git s’articulent pour transformer la gestion des projets Power BI en un processus structuré et évolutif.

TMDL (Tabular Model Definition Language):

La combinaison de TMDL avec CI/CD (intégration continue/déploiement continu) pour Power BI représente une avancée dans la gestion des modèles sémantiques.

Le TMDL propose une approche alternative pour la modélisation sémantique à l’aide de code. Il offre une approche déclarative pour définir les objets du modèle tels que les tables, mesures et relations.

La vue TMDL présente plusieurs avantages :

Faciliter la collaboration entre les membres de l’équipe en travaillant simultanément sur le même modèle sémantique sans provoquer de conflits.

Amélioration de l’efficacité de développement avec un éditeur de code avancé.

Simplifier la gestion des mesures : visualiser et modifier toutes les mesures à la fois sur un seul écran.

Permettre d’afficher et de modifier les objets et propriétés du modèle sémantique et éléments non disponibles dans l’interface utilisateur de Power BI Desktop.

Vue TMDL de Power BI facilitant la collaboration et la gestion des modèles sémantiques

Activation de la vue TMDL dans Power BI Desktop

Allez dans File > Options and settings > Options > Preview features

Capture d’écran de Power BI montrant comment activer la vue TMDL via les options de fonctionnalités en préversion.

Redémarrez Power BI Desktop pour appliquer les changements.

Projet Power BI (PBIP)

Quand vous travaillez sur un projet Power BI Desktop (pbix) existant, vous pouvez enregistrer votre travail sous forme de fichier de projet Power BI (pbip).

Les éléments du rapport et du modèle sémantique seront définis dans des fichiers texte structurés dans des dossiers.

Interface Power BI montrant la conversion d’un fichier PBIX en projet PBIP avec structure de fichiers.

Structure et composition du dossier :

Fichier « .pbip » : il sert de ponteur vers le dossier de rapport.

Dossier du rapport de projet « .Report » : contient des fichiers et des sous dossiers de définitions du rapport.

Dossier du modèle sémantique « .SemanticModel » : Stocke des fichiers de modèle de données à l’aide du langage TMDL.

Fichier « .gitignore » : Spécifie les fichiers à exclure des systèmes de contrôle de version Git.

Lorsque vous enregistrez un projet, le modèle sémantique sera enregistré sous la forme d’un dossier TMDL « définition » que vous trouvez dans le dossier « .SemanticModel » .

Arborescence d’un dossier PBIP contenant les fichiers et répertoires du projet Power BI.

L’enregistrement en tant que projet (pbib) offre plusieurs avantages :

– Pouvoir utiliser un éditeur de code tel que VS Code qui offre une expérience d’édition très riche et d’intégration de Git.

– Modifier les éléments du rapport et du modèle sémantique d’une manière programmatique.

– Contrôle de code source avec Git (historique de versions, comparer les révisions « diff »)

– Intégration continue et déploiement continue (CI/CD)

CI/CD pour Power BI

Dans un contexte Power BI, l’enregistrement des projets Power BI dans des fichiers permet leur intégration dans un processus CI/CD :

Intégration continue CI :

– Les développeurs travaillent simultanément sur différentes branches et fusionnent leurs modifications de manière continue.

Automatisation des tests pour vérifier la qualité des modifications apportées aux modèles sémantiques.

– Les modifications sont suivies dans un système de contrôle de version comme Git permettant la gestion des versions.

Déploiement continu :

Automatisation des déploiements des rapports et des modèles sémantiques dans les différents environnement (Dev, Test, Prod).

Gestion des environnements : configuration spécifique à chaque environnement afin d’assurer un déploiement cohérent et fiable.

Configuration du projet Azure DevOps :

Prérequis :

Créer un projet Azure DevOps :

Connectez-vous à Azure DevOps.

Choisissez une organisation existante ou créez-en une nouvelle :

Interface Azure DevOps affichant l’option de création d’un nouveau projet au sein d’une organisation.
Interface Azure DevOps affichant l’option de création d’un nouveau projet au sein d’une organisation.

Créez un projet au sein de l’organisation sélectionnée :

Formulaire de création d’un projet dans Azure DevOps avec les champs de nom, description et visibilité.

Créez un Référentiel :

Allez dans : Repos > Files > Initialiser :

Interface Azure DevOps affichant l’option "Initialize" dans la section Repos > Files.

Votre avez maintenant accès à un projet et un référentiel initialisé avec un fichier Readme et configuré avec une branche « main » par défaut.

Interface Azure DevOps montrant un référentiel Git initialisé avec un fichier README et la branche principale "main".

Clonez le référentiel sur la machine locale :

Accédez au référentiel et cloner le référentiel :

Interface Azure DevOps montrant l'option pour cloner un référentiel Git vers une machine locale.

Cliquez ensuite sur « cloner dans VS Code » :

Interface Azure DevOps affichant l'option « Cloner dans VS Code » pour ouvrir directement le référentiel dans Visual Studio Code.

Sélectionnez ensuite un dossier local pour le référentiel :

Fenêtre de sélection d’un dossier local dans Visual Studio Code pour cloner le référentiel depuis Azure DevOps.

Ouvrez le référentiel dans VS Code et enregistrez votre projet Power BI dans le dossier sélectionné :

Visual Studio Code affichant le référentiel cloné avec un projet Power BI (PBIP) enregistré dans le dossier local.

Validez les modifications :

Écran de Visual Studio Code affichant un projet Power BI enregistré dans un dossier local avec les modifications prêtes à être validées dans Git.

Synchronisez les modifications avec le référentiel distant :

Interface de Visual Studio Code montrant la synchronisation des modifications locales avec le dépôt distant sur Azure DevOps.

Ouvrez Azure DevOps et vérifiez les modifications :

Capture d’écran d’Azure DevOps affichant les derniers commits dans le référentiel, confirmant que les modifications ont bien été synchronisées.

Exemples de modifications apportées au modèle sémantique :

Ajout d’une nouvelle relation entre deux tables dans le modèle :

Interface Power BI montrant l’ajout d’une relation entre deux tables dans le modèle de données.

Intégration Git à un espace de travail Microsoft Fabric

Prérequis Fabric :

– Avoir une capacité Fabric.

– Activer la création des éléments Fabric pour les utilisateurs.

– Activer la synchronisation des éléments d’un espace de travail avec le référentiel Git pour les utilisateurs.

Configuration des prérequis pour intégrer un espace de travail Microsoft Fabric à un référentiel Git.

Prérequis pour Git :

L’intégration Git avec l’espace de travail Fabric prend en charge Azure Devops et GitHub. Dans ce guide, nous utiliserons Azure DevOps. Pour cela, il est nécessaire de disposer de :

– Un compte Azure actif, associé au même utilisateur que celui utilisant l’espace de travail Fabric.

– Un accès à un référentiel existant.

Connecter un espace de travail dans un référentiel Git

Connectez-vous à Fabric > Accéder à l’espace de travail > Accéder aux paramètres de l’espace > Sélectionner « Git integration » > Azure DevOps > Connect

Interface Fabric affichant les étapes pour connecter un espace de travail à un référentiel Git via Azure DevOps.

Une fenêtre s’ouvre pour spécifier : l’organisation, le projet, le référentiel Git et la branche.

Un espace de travail ne peut être connecté qu’à une seule branche et un seul dossier à la fois.

Sélectionnez « Connect and Sync »

Fenêtre de configuration de la connexion Git dans Fabric, avec les champs pour l’organisation, le projet, le référentiel et la branche.
Fenêtre de confirmation indiquant que la synchronisation avec le référentiel Git a été effectuée avec succès.

Configuration du pipeline de déploiement dans Fabric

Prérequis :

– Avoir un abonnement Microsoft Fabric

– Être administrateur d’un espace de travail Fabric

– Avoir trois espaces de travail « Dev – Test – Prod »

Création et configuration du Pipeline :

– Accédez à « Deployment pipelines » dans Fabric

– Ajoutez un Pipeline « + New pipeline »

– Nommez votre pipeline et cliquez sur « Next »

Interface de création d’un nouveau pipeline de déploiement dans Microsoft Fabric, avec les champs pour nommer le pipeline.

Définissez les étapes à inclure dans votre Pipeline et nommez-les :

Interface de configuration d’un pipeline Fabric montrant les étapes personnalisables du flux de déploiement.

Attribuez les espaces « Dev – Test – Prod » créés auparavant aux étapes correspondantes du pipeline.

Écran de configuration du pipeline Fabric montrant l’attribution des espaces de travail Dev, Test et Prod aux différentes étapes du pipeline.

Déploiement :

A présent on va reprendre le cycle de vie de développement d’un rapport classique :

– Commencez par publier le rapport Power BI dans l’espace de développement.

– Allez dans votre pipeline de déploiement et vérifiez la présence des éléments publiés dans l’espace de développement « un rapport + un modèle sémantique ».

Vous êtes prévenus aussi du changement qui a lieu depuis le dernier déploiement.

Interface du pipeline de déploiement Fabric affichant un rapport Power BI et un modèle sémantique récemment publiés dans l’espace de développement.

Cliquez sur « Deploy » pour déployer depuis l’espace « Développement » vers l’espace « Test »

Vous pouvez aussi déployer entre les deux espace « Test » vers « Prod ».

Bouton « Deploy » dans le pipeline Fabric permettant le déploiement du rapport et du modèle depuis l’espace Développement vers Test.

Règles du déploiement :

Lorsque vous déployez entre les phases du pipeline, certaines règles peuvent être appliquées. Les phases du pipeline peuvent avoir des configurations différentes comme la gestion des sources de données (base de données de Test, Prod).

Afin de garantir la qualité, la sécurité et la fiabilité des rapports Power BI, voici quelques bonnes pratiquesà appliquer au processus de déploiement :

Gestion des accès aux sources de données (chaque espace de travail doit pointer vers la bonne source de données)
Gestion des accès aux différents espaces de travail (développeur, testeur, utilisateur final)
Vérification de la sécurité au niveau des lignes (RLS)
Test des performances (temps de chargement des visuels, rafraichissement des modèles)
Vérification des calculs.

Conclusion

L’intégration de CI/CD dans Power BI et Fabric en s’appuyant sur Azure DevOps et TMDL offre de nombreux avantages :

Faciliter la collaboration et le travail en équipe.

Permettre le contrôle de version et le suivi des modifications avec Git.

Minimiser les erreurs et améliorer la qualité des solutions décisionnelles.

Déploiement plus rapide et plus fiable.


Le TMDL (Tabular Model Definition Language) permet de gérer les modèles sémantiques en code facilitant ainsi l’intégration de Power BI dans un Processus CI/CD.