Talend

Talend et Git – Utilisation et Fonctionnement (partie 1)

Introduction

Dans la version Enterprise de Talend (que ce soit l’ancienne version On Premise, ou la nouvelle version Talend Cloud Data Fabric), l’une des fonctionnalités qui la différencie des versions Open Source est la possibilité de faire du Travail Collaboratif. Ceci est possible grâce l’utilisation de GIT intégrée dans l’écosystème Talend, permettant d’agir sur les référentiels de logiciels de gestion des versions. La liste des outils de Gestion des versions supportés par Talend est disponible sur la Documentation Talend.

Attention : SVN n’est plus supportée avec Talend Cloud Data Fabric

L’utilisation d’un logiciel de gestion de version permet de stocker sur un espace centralisé le code source d’une application, tout en suivant et gérant les changements apportés. Ceci est parfaitement adapté au développement de jobs dans le Studio Talend.

En effet, travailler sur le studio Talend permet d’avoir une visualisation graphique des traitements et transformations effectués, mais derrière ces visualisations graphiques sont générés des fichiers pour gérer les différents éléments d’un projet talend (Jobs, Métadonnées, Routines Java, fichiers de configurations, etc etc), stockés dans votre workspace Talend.

Cette utilisation a plusieurs avantages pour une équipe de développement :

  1. Comme son nom l’indique, il a pour objectif de gérer les versions du code source. Cela permet de garder un historique des précédents états du code, afin de pouvoir revenir à état précédent en cas d’erreur commise, ou bien pour contrôler les changements grâce à une traçabilité efficace
  2. Le code source est stocké sur un espace centralisé, nommé référentiel (ou repository), et peut être partagé entre plusieurs collaborateurs. Inversement, plusieurs développeurs peuvent travailler sur un même projet et partager les modifications en limitant les conflits entre les différentes versions
  3. Le code étant stocké et historisé sur un espace partagé, cela en fait un bon outil de récupération et de restauration à un état précédent, que ce soit à cause d’une erreur de mise en production, par exemple, ou à une catastrophe technique/naturelle. Bien évidemment, si l’hébergeur des référentiels se retrouve lui-même touché par une catastrophe technique ou naturelle, et sans une stratégie de backup efficace, il pourrait être compliqué de retrouver son code… mais… peu de choses pourraient résister à une météorite géante.

Comment fonctionne Git avec Talend

L’utilisation dans le Studio :

Avant de pouvoir versionner son code à l’aide des commandes GIT, il faut au préalable créer un projet Talend dans la TMC. Ce projet Talend nécessite au moins 2 informations :

  1. Un nom de projet
  2. Une URL GIT. Cette dernière est l’URL du référentiel GIT créée pour ce projet talend, dans votre outil GIT (Github, GitLab, Azure Devops ou autre)
Création projet Talend GIT

Une fois le projet créé, il faut autoriser l’accès au projet pour les développeurs :

Autorisation accès projet Talend GIT

Lors du lancement du studio, et après avoir configurer la connexion à votre TMC, vous pouvez sélectionner le projet talend relié au repository git créé précédemment, ainsi que la branche distante souhaitée. Le studio vous demandera d’entrer vos informations de connexion Git : Login et Token.

Sélection projet Talend GIT

Astuce : Certains outils GIT ne créent pas de branche principale par défaut. Si c’est votre cas, créez en une directement dans GIT, sinon vous rencontreriez un message d’erreur du type :

Erreur push commits serveur GIT

Depuis le studio Talend, il est possible d’effectuer les actions suivantes :

Actions possibles Talend GIT

1) Push : Pousser les modifications réalisées en local, sur le projet géré par Git, vers le serveur Git. Il faut que ces modifications aient été validées (commit) sur votre dépôt local au préalable pour pouvoir les Push sur le serveur GIT

Astuce : Lors de la première ouverture du studio Talend, le mode de commit est Automatique. Lors de chaque enregistrement réalisé sur le Studio l’élément enregistré sera commité. Le message du commit n’est pas très parlant, et en cas de sauvegarde fréquente du travail, le nombre important de commit peut noyer l’information et rendre le suivi et l’historisation compliqué.

Je vous recommande donc de désactiver le mode Commit Automatique et de gérer les commit manuellement à travers la vue Talend Git Staging

Commit Manuel Talend GIT

2) Pull And Merge Branch : Permet de mettre à jour une branche locale sur votre studio avec les informations d’une autre branche distante.

3) New Branch : Cette fonctionnalité permet de créer une branche locale à partir d’une branche distante. Les modifications apportées à la branche locale seront conservées localement jusqu’à ce qu’elles soient pushées vers le server GIT (que ce soit sur cette même branche ou fusionnées à une autre branche).

Info : Lors de la sélection de la branche source, les branches précédées par origin/ sont les branches distantes :

Branches Distantes Origin

4) More > Add Tag : Un tag est une copie en lecture seule enregistrant l’état du projet au moment où le tag est créé.

5) Show History : Permet de voir l’historique des commits du projet, d’un job, d’un joblet ou d’un autre élément, spécifiquement à la branche courante.

Historique au niveau de la branche :

Historique GIT niveau branche

Historique d’un élément du référentiel :

Historique GIT niveau référentiel

6) Reset : Lorsque des modifications sur une branche locale sont commitées, la barre déroulante en haut de la partie du Référentiel affiche le nombre de commit qui n’ont pas encore été push.

Nombre commit non push GIT

Cliquer sur Reset annule ces commits et revient à l’état de la mise à jour précédente.

7) Local Branches : Ici sont affichés les branches locales à votre projet. Pour chaque branche, si ce n’est pas la branche en cours (Current branch) il est possible de la supprimer ou de passer à cette branche

Switch et suppression local branches

8) Remote Branches : Liste des branches distantes, disponibles sur le référentiel distant GIT. Pour chaque branche, il est possible de la rapatrier en local grâce à la commande Check out as local branch.

Les commandes GIT effectuées derrières les actions dans le Studio

Nous avons vu précédemment les actions réalisables depuis le Studio Talend. Pour chaque action, une ou plusieurs instructions GIT sont réalisées en arrière-plan. La liste des actions sont détaillées dans la documentation Talend.

Restons connectés !

Inscrivez-vous à la newsletter DeciVision !

Soyez notifiés de nos derniers articles de blog, de nos prochains webinars et nos actualités !

La résolution de conflit

La résolution de conflit est une étape cruciale dans l’utilisation de GIT entre plusieurs développeurs. Elle est redoutée par ces derniers, et donc à éviter.

Les conflits peuvent être rencontrés lorsque sont effectué un Push, un Update, ou un Merge sur des branches. Lorsque c’est le cas, ce message apparait. 

Conflit GIT Talend

La fenêtre Conflicts Navigator s’ouvre et affiche les éléments impactés par le conflit.

Conflicts Navigator GIT

Pour chaque élément, il est possible d’appliquer les actions suivantes :

  • Résoudre dans l’éditeur : Ouvre un éditeur de comparaison, qui affiche l’état de l’élément dans la branche locale et dans la branche distante. En fonction du type d’élément, il existe 3 d’éditeurs de comparaison :
    • Job Compare : Si l’élément en conflit est un job
Job Compare GIT Talend
    • EMF Compare : Si l’élément en conflit est un groupe de contextes, une connexion à une base de données, un élément dans les paramètres du projet
    • Text Compare : si l’élément en conflit est un fichier texte, une routine, un bean, un script de Job ou un script SQL
  • Accepter ma version : Accepte les changements de la branche locale, sans passer par l’éditeur de comparaison
  • Accepter leur version : Accepte les changements de la branche distance, sans passer par l’éditeur de comparaison
  • Marquer comme résolu : Marque les conflits comme résolus sans et conserve les divergences entre les branches.

Les coulisses de GIT, appliqué à Talend

Sur votre référentiel GIT

Si vous vous rendez, grâce au client de votre application git, sur le référentiel distant associé à votre projet talend, vous pourrez voir l’ensemble des éléments et des actions faites sur votre projet depuis le studio.

Par exemple, depuis Github qui nous a servi d’exemple, nous pouvons voir le nombre et la liste des branches présentes :

Référentiel branches présentes GIT Talend

Mais aussi les commit effectués sur chaque branche. Pour chaque commit, il est possible de récupérer l’état du référentiel au moment du commit, et donc de récupérer une ancienne version du code :

Commit effectués branche GIT Talend

Vous pouvez également naviguer dans les répertoires du repository. Par exemple, les jobs talend présent dans une branche se trouvent dans le répertoire process :

Navigation dans les répertoires process

Tandis que les routines Java system se trouvent dans le répertoire code/routines/sytem.

Info : Si vous analysez l’arborescence du référentiel git avec celui du référentiel du Studio, vous pouvez conster qu’il est quasiment identique

Equivalence arborescence referentiel GIT et Studio

Sur votre Studio, dans votre workspace

Côté Workspace, le stockage des objets du référentiel se fait dans le répertoire .repository du workspace, avec l’arborescence suivante :

Stockage objets référentiel workspace

Ce type de stockage est dit « personnalisé », où un checkout est effectué sur chaque branche d’un dépôt dans un dossier séparé au sein d’un dossier du dépôt <studio-workspace>\.repositories\<repo-hashcode>.

Attention : L’utilisation des commandes Git dans les outils Git pour gérer vos dépôts et projets n’est pas supportée. Comme seul un sous-ensemble partiel des fonctionnalités de Git est implémenté dans le Studio Talend, il est impossible d’effectuer certaines opérations Git, comme Git fetch, sur vos projets.

CONCLUSION DE L’EXPERT

L’utilisation de GIT associé au Studio Talend s’avère très puissant pour effectuer du travail collaboratif entre plusieurs développeurs, et garder un historique des changements et de versioning du code.

Cependant, le travail collaboratif demande une certaine rigueur pour éviter les conflits et des bonnes pratiques pour bien gérer les projets et évolutions de développements, qui vous seront présentées dans un prochain article.

Un projet ? Une question ?

Laissez-nous vos coordonnées et nous vous recontactons dans les plus brefs délais !

Articles récents
Évènements à venir
Newsletter DeciVision

Soyez notifiés de nos derniers articles de blog, de nos prochains webinars et nos actualités !