Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Azure Data Factory
  3. Intégration continue
Extrait - Azure Data Factory Intégrez vos données avec le service serverless d'Azure
Extraits du livre
Azure Data Factory Intégrez vos données avec le service serverless d'Azure Revenir à la page d'achat du livre

Intégration continue

Présentation CI/CD et Azure DevOps

L’intégration continue (CI) et le déploiement continu (CD) sont deux concepts de développement logiciel qui se réfèrent à la capacité à compiler, tester et déployer de façon automatisée. L’écosystème Microsoft propose ces fonctionnalités au travers d’Azure DevOps, un service SaaS permettant de versionner le code sur un dépôt GIT puis de gérer un flux de compilation (Build), test et déploiement (Release).

Azure Data Factory est intimement lié à Azure DevOps (ou GitHub), celui-ci étant complètement intégré à l’interface de développement adf.azure.com il n’existe aucune raison de s’en passer au vu des nombreux avantages que représente l’intégration du contrôle de source sur l’expérience de développement.

En effet, lorsqu’un pipeline est développé sans avoir configuré de dépôt GIT, celui-ci est directement enregistré sur le service et doit donc être compilable et exécutable avant de pouvoir enregistrer le travail effectué. Cela signifie qu’il n’est pas possible de démarrer un pipeline et de stopper son travail sans que cela compile.

Configuration d’un dépôt de code

La liaison d’un dépôt de code avec Azure Data Factory peut être initiée depuis la page d’accueil du portail adf.azure.com Set up Code Repository :

images/8-2-EP-1.PNG

Ou via le menu de l’interface d’édition de pipeline :

images/8-2-EP-2.PNG

La configuration de la liaison avec Azure DevOps nécessite les informations suivantes :

  • Repository Type : permet de choisir entre Azure DevOps et GitHub.

  • Azure DevOps Account : organisation au sein d’Azure DevOps.

  • Project Name : nom du projet Azure DevOps.

  • Git repository name : nom du dépôt qui contiendra le code source de l’ADF.

  • Collaboration branch : la branche sur laquelle sera consolidée la version de chaque développeur, communément la branche develop.

  • Root folder : le dossier qui contiendra le code source.

L’authentification auprès d’Azure DevOps est réalisée via un Active Directory, il est donc nécessaire que le compte sur lequel on est connecté accède à un Azure AD attaché au DevOps cible.

images/8-2-EP-3.PNG

Après avoir effectué la configuration, le menu supérieur de l’écran d’édition de pipeline permet de gérer le contrôleur de source :

images/8-2-EP-4.PNG

La première liste déroulante permet de décider si les modifications sont faites directement sur le service d’Azure...

Développement dans un contexte GIT

Seule la branche de collaboration (develop dans l’exemple précédent) permet d’utiliser le bouton Publish nécessaire afin de déployer le code vers le service ADF.

Lorsque le développement est terminé, il est possible de faire une requête de tirage (Pull Request) afin de demander la consolidation des développements sur la branche de collaboration (develop).

Cette approche incite les développeurs à effectuer une revue de code. Le code étant exposé sous forme de JSON, cela est lisible et facilite la résolution des conflits.

images/8-2-EP-5.PNG

La revue de code peut ensuite être faite simplement, le code étant exposé intelligiblement. L’interface permet d’ajouter des commentaires afin d’éventuellement demander des modifications de la part du développeur avant de valider la prise en compte des changements sur la branche de collaboration.

images/8-2-EP-6.PNG

La requête de tirage validée et complétée, le code est fusionné dans la branche de collaboration qui peut maintenant être publiée sur le service.

Malheureusement, cette opération de publication ne peut pour l’heure pas être automatisée et cela est un point bloquant, la compilation du code nécessitant obligatoirement le clic sur le bouton Publish de l’interface graphique.

Attention, seule l’Azure...

Déploiement continu

La cinématique de déploiement continu est la suivante :

images/p391.PNG

(1) Le développeur, après avoir tiré une branche de fonctionnalité, effectue les développements nécessaires. Lorsque ceux-ci sont terminés, il effectue une requête de tirage (Pull Request) afin d’intégrer les développements au sein de la branche de collaboration. Après une revue attentive, un collègue de son équipe l’approuve, ce qui permet au développeur de compléter la requête de tirage et ainsi fusionner le code de sa branche avec la branche de collaboration (develop).

(2) Depuis l’interface du portail adf.azure.com, en sélectionnant la branche de collaboration (develop), il est maintenant possible de publier le code sur l’Azure Data Factory de développement en cliquant sur le bouton Publish. Cela déclenche deux actions, la première déploie le code sur l’Azure Data Factory, la seconde génère une branche système appelée ADF_Publish qui contient le modèle ARM à utiliser afin de déployer sur les différents environnements.

images/8-2-EP-8.PNG

Cette étape correspond à la compilation du code généré depuis l’interface graphique du portail d’édition d’Azure Data Factory.

(3) La dernière étape est le déploiement...