Fermer

mai 25, 2020

Intégration d'Informatica Intelligent Cloud Service dans votre pipeline de gestion des versions


Informatica Intelligent Cloud Services (IICS) propose désormais un utilitaire de ligne de commande gratuit qui peut être utilisé pour intégrer vos travaux ETL dans la plupart des pipelines de gestion des versions d'entreprise. Il s’agit de l’interface de ligne de commande Asset Management (CLI). La version deux vous permet désormais d'extraire un travail IICS dans un seul fichier compressé. Le déplacement d'un seul artefact autonome du développement au contrôle qualité et à la production à l'aide d'un script facilite l'intégration de votre pipeline ETL dans les outils de gestion des versions courants. Cela peut avoir de profondes implications pour la phase de déploiement d'un cycle de publication d'entreprise complexe. Considérez un scénario de salle de guerre typique dans une version majeure et comment nous pouvons utiliser les nouveaux outils Informatica pour améliorer la procédure de déploiement.

La salle de guerre

Dans une salle de guerre (alias salle de situation ou centre de commandement), les principales parties prenantes se réunissent ensemble pour se concentrer sur la résolution d'un problème spécifique et critique. Une salle de guerre pour une version d'entreprise majeure se concentre généralement sur le déploiement coordonné d'artefacts tels que le code d'application, les ressources de stockage et de calcul et les modifications de base de données. Les changements de base de données se réfèrent à la fois aux changements de structure (ex: définitions de table) et à la migration des données, c'est là que les outils d'extraction de transformation et de chargement (ETL) comme Informatica entrent en jeu. Le fossé entre les équipes qui ont une pratique CI / CD comme les équipes de développement d'applications et d'infrastructure et les équipes qui s'appuient sur des déploiements manuels comme les administrateurs de base de données (DBA) et les équipes ETL devient douloureusement clair. Utilisant un référentiel commun avant le déploiement de Production est la principale source de déconnexion. Il est logique d'avoir un système de gestion des versions intégré avant le déploiement.

Il existe trois concepts qui constituent un bon système de gestion des versions; contrôle du code source, un pipeline pour coordonner le déploiement des artefacts et un référentiel pour stocker les instances versionnées de ces artefacts. Git est le système de contrôle de version de facto pour suivre les modifications du code source pendant le développement du logiciel. Git peut également être utilisé pour suivre les modifications dans n'importe quel ensemble de fichiers. Jenkins est un serveur d'automatisation qui exécute des pipelines liés à la construction, au test et au déploiement de code, généralement du code stocké dans un référentiel Git. Comme Git, Jenkins peut également être utilisé pour déployer tout type de fichier, même les fichiers qui ne font pas l'objet de construction et de test. Enfin, un outil comme Artifactory peut être utilisé pour stocker les fichiers binaires qui sont la cible du déploiement. Ceci est facultatif car vous pouvez configurer votre outil de code source pour stocker les versions. Nous ne le ferons pas ici, mais c'est un bel outil. Il existe plusieurs approches qui tentent d'insérer Informatica au début du processus CI / CD et d'émuler le même pipeline qu'un projet de développement logiciel. Mais Informatica n'est pas une application Java personnalisée et n'a pas besoin de l'être. Inversez le processus et démarrez à partir de la gestion des versions.

Création d'un pipeline de versions Informatica

Pour créer un pipeline de versions Informatica, nous allons commencer par exporter un projet Informatica en tant que fichier unique. Il s'agit du principal facteur de différenciation entre l'utilisation d'Informatica en tant qu'application autonome et l'intégration d'Informatica dans le pipeline de versions de votre entreprise. Pour les besoins de ce blog, nous allons supposer que votre organisation utilise GitHub pour le contrôle des sources et Jenkins pour l'orchestration. Les outils open source sont suffisamment populaires pour que vous puissiez facilement trouver les instructions équivalentes pour une autre application. J'ai déployé cet exemple à l'aide d'Amazon Web Services, mais cela fonctionnera sur n'importe quel cloud public ou privé.

Configuration de GitHub

Créez un nouveau référentiel dans GitHub pour stocker l'exemple de projet Informatica et déployer sur Jenkins.

  1. Accédez à GitHub et connectez-vous.
  2. Dans Vos référentiels, choisissez Nouveau référentiel.
  3. Dans la barre de navigation, choisissez Créer un nouveau (+), puis choisissez Nouveau référentiel.
  4. Dans Créer un nouveau page du référentiel, procédez comme suit:
  5. Dans la zone Nom du référentiel, entrez IICSDemo.
  6. Sélectionnez Public.
  7. Décochez la case Initialiser ce référentiel avec un fichier README.
  8. Choisissez Créer un référentiel.

Aller vers AWS (ou un autre fournisseur de cloud) et créez une instance d'ordinateur gratuite basée sur Linux. Connectez-vous à la nouvelle instance avec un terminal et exécutez ce qui suit:

 mkdir ~ / workspace / default && cd "$ _"
touchez README.md
git init
git add README.md
git commit -m "Init IICS demo"
git remote add origin https://github.com/[19459017{user-name[19459018[/IICSDemogitgitpush-uoriginmaster

Vous avez maintenant un référentiel github fonctionnel. Dans l'étape suivante, nous allons configurer Jenkins.

Configuration de Jenkins

Clonez l'instance ec2 que vous avez créée pour l'IICS CLI et connectez-vous à la nouvelle instance dans une autre fenêtre de terminal et exécutez ce qui suit:

 sudo yum install docker
sudo usermod -a -G docker ec2-user
docker newgrp
sudo systemctl enable docker
sudo systemctl start docker
docker d'état sudo systemctl

docker run 
-u racine 
--rm 
-ré 
-p 8080: 8080 
-p 50000: 50000 
--name jenkins_iics 
-v jenkins-data: / var / jenkins_home 
-v /var/run/docker.sock:/var/run/docker.sock 
jenkinsci / blueocean

# obtenir le mot de passe administrateur
docker exec -it jenkins_iics bash
cat / var / jenkins_home / secrets / initialAdminPassword
exit 

 Covid 19

Vous utilisez le mot de passe administrateur pour vous connecter à Jenkins, qui s'exécutera sur l'url publique de votre instance EC2 sur le port 8080. Créez un nouvel utilisateur afin de ne pas vous connecter avec Admin.

De Jenkins

  1. Cliquez sur Nouvel élément
  2. Entrez «IICS Default» comme nom d'élément
  3. Sélectionnez Freestyle Project
  4. Cliquez sur OK
  5. Faites défiler la page jusqu'à la section Build
    1. Sélectionnez ‘Execute script’ dans la liste déroulante ‘Add Build Step’.
    2. Dans la zone de commande, saisissez echo “Hello, World”
  6. Vous pouvez maintenant tester le pipeline en cliquant sur Build Now.
    1. Une fois la construction terminée, cliquez sur la sortie de la console pour vérifier que le message Hello World a été imprimé

La ​​possibilité d'exécuter un script à partir de Jenkins démontre que vous pouvez vous intégrer à presque n'importe quel pipeline de build. Vous pouvez créer des scripts pour exécuter des processus, déplacer des fichiers, etc. Ensuite, nous allons intégrer Jenkins dans GitHub.

Intégrer GitHub et Jenkins

Vous allez copier et coller des informations de Jenkins vers GitHub et vice versa, donc les deux onglets s'ouvrent.

  1. Dans Jenkins,
    1. faites défiler la page jusqu'à la section Gestion du code source
    2. Sélectionnez Git
  2. Du repo Github,
    1. Cliquez sur le bouton Cloner avec HTTPS et collez l'URL dans la zone de texte URL du référentiel dans Jenkins
    2. Ensuite, connectez Jenkins aux événements de consignation de Github
      1. Naviguez vers Configuration et cliquez sur WebHooks
      2. Ajoutez l'URL Jenkins et ajoutez / jenkins / github-webhook (ex http://11.111.111.111/jenkins/github-webhook/)[19659010→Selectapplication/jsonasthetypedecontenu
      3. Nous voulons simplement l'événement push.
      4. Cliquez sur Ajouter un webhook

À ce stade, nous avons un fichier README archivé dans GitHub et Jenkins exécutant un simple script Hello World. Dans l'étape suivante, nous allons extraire le projet par défaut d'IICS dans le référentiel git, ce qui déclenchera une génération Jenkins.

Configuration d'IICS cli

Inscrivez-vous à Formation Informatica Intelligent Cloud Service et obtenez accès à une instance gratuite pendant trente jours. Cette première partie de l'URL est le nom de votre pod (ex: na1.dm-us.informaticacloud.com). Notez votre région et assurez-vous d'enregistrer votre nom d'utilisateur et votre mot de passe. Exécutez les commandes suivantes à partir de la même instance de terminal sur laquelle vous avez configuré git.

 mkdir ~ / tools && cd "$ _"
obtenez https://github.com/InformaticaCloudApplicationIntegration/Tools/raw/master/IICS%20Asset%20Management%20CLI/v2/linux-x86_64/iics
chmod 775 iics
./iics version 

Vous avez maintenant une instance exécutable de l'interface de ligne de commande IICS Asset Management et il doit s'agir de la version deux. Voyons si vous pouvez vous connecter à votre instance IICS.

 ./ iics list -region us --podHostName na1.dm-us.informaticacloud.com --username xxxxx.xxxxx@xxxxx.xxx --password xxxxxxx 

Vous devriez voir quelque chose comme

 Explore / Default.Project
Explore / Default / Mapping1.DTEMPLATE 

Maintenant, exportez un projet dans un répertoire de travail.

 cd ~ / tools
./iics export -region us --podHostName na1.dm-us.informaticacloud.com --username xxxxx.xxxxx@xxxxx.xxx --password xxxxxxx --zipFilePath ~ / workspace / default / default.zip --logLevel info - / workspace / default / default.zip --logLevel info - -artifacts Explore / Default.Project 

Vous devriez maintenant avoir un fichier zip appelé default.zip dans le répertoire par défaut de votre espace de travail. Enregistrez-le.

 cd ~ / workspace / default
git add default.zip
git commit -m "Pousser la première exportation d'IICS vers GitHub"
git push -u origin master 

Accédez à GitHub et confirmez que vous avez un nouveau fichier dans votre référentiel. Accédez à Jenkins et confirmez qu'une nouvelle version a été déclenchée lors de la validation. Vous venez d'extraire un travail Informatica en tant qu'artefact unique, de l'intégrer dans GitHub et d'exécuter une génération Jenkins. Si vous intégrez ce processus à votre routine normale, il vous sera plus facile à l'avenir d'intégrer dans des projets d'entreprise plus importants. Dans la prochaine salle de guerre, vous parlerez tous la même langue.

Résumé

Ce n'est pas le modèle à échec généralement activé par les cycles d'intégration continue / de libération continue. Les projets ETL n'entrent généralement pas dans cette catégorie. IICS déplace généralement les informations commerciales clés d'un système source sur site vers une solution d'entreposage de données basée sur le cloud. Ces projets ETL permettent des projets à échec rapide, mais eux-mêmes font généralement l'objet de contrôles approfondis. Cependant, vous pouvez intégrer vos travaux Informatica Intelligent Cloud Services dans un pipeline de déploiement standard en utilisant la nouvelle interface de ligne de commande (CLI) Asset Management.

À propos de l'auteur <! -: dcallaghan, Architecte de solutions ->

En tant qu'architecte de solutions chez Perficient, j'apporte vingt ans d'expérience en développement et je suis actuellement en contact direct avec Hadoop / Spark, blockchain et cloud, codage en Java, Scala et Go. Je suis certifié et travaille beaucoup avec Hadoop, Cassandra, Spark, AWS, MongoDB et Pentaho. Plus récemment, j'ai apporté des solutions de blockchain intégrées (en particulier Hyperledger et Ethereum) et de Big Data au cloud en mettant l'accent sur l'intégration de produits Modern Data tels que HBase, Cassandra et Neo4J en tant que référentiel hors blockchain.

cet auteur






Source link