DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Integration Zone»Déployer les applications IBM App Connect Enterprise à partir de CI/CD
    Integration Zone

    Déployer les applications IBM App Connect Enterprise à partir de CI/CD

    novembre 17, 2022
    Déployer les applications IBM App Connect Enterprise à partir de CI/CD
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Ce message concerne un référentiel que j’ai partagé sur GitHub à l’adresse dalane/app-connect-tekton-pipeline. Il contient un exemple d’utilisation de Tekton pour créer un pipeline CI/CD qui crée et déploie une application App Connect Enterprise sur Red Hat OpenShift.

    Le pipeline utilise IBM App Connect Operator pour créer, déployer et gérer facilement vos applications dans des conteneurs. Le pipeline s’exécute sur OpenShift pour lui permettre d’être facilement intégré dans un workflow de livraison continue automatisé sans avoir besoin de créer quoi que ce soit localement à partir du poste de travail d’un développeur.

    Pour obtenir des informations générales sur l’opérateur et les différents types de ressources Kubernetes que ce pipeline créera (par exemple, IntegrationServer et Configuration), consultez ces articles de blog :

    Pipeline

    Le pipeline crée et déploie votre application App Connect Enterprise. Vous devez l’exécuter chaque fois que votre application a changé et que vous souhaitez déployer la nouvelle version sur OpenShift.

    Lors de l’exécution d’App Connect Enterprise dans des conteneurs, vous bénéficiez d’une grande flexibilité quant à la quantité de votre application intégrée à votre image de conteneur et à la quantité fournie au démarrage du conteneur.

    Pour une lecture de base sur certaines des options et certaines des considérations les concernant, voir le billet de blog : Comparing styles of container-based Deployment for IBM App Connect Enterprise.

    Ce pipeline fournit presque toutes les parties de votre application au moment de l’exécution lorsque le conteneur démarre. Le seul composant intégré à l’image est le fichier BAR de l’application.

    La cuisson des fichiers BAR dans des images App Connect personnalisées évite d’avoir à exécuter un serveur de contenu dédié pour héberger les fichiers BAR, cependant, si vous préférez le faire, consultez la documentation sur les mécanismes de fourniture de fichiers BAR à un serveur d’intégration pour plus de détails sur la façon dont pour faire ça. (Les pipelines du référentiel utilisent l’approche décrite comme « Image personnalisée » dans cette documentation.)

    Exécution du pipeline

    • spécification de pipeline :
    • exemple d’exécution de pipeline :
    • scripts d’assistance :

    Ce que fait le pipeline

    Génère votre application IBM App Connect Enterprise et la déploie sur le cluster OpenShift.

    Résultat de l’exécution du pipeline

    Une nouvelle version de votre application est déployée sans aucun temps d’arrêt – remplaçant toute version existante de l’application une fois qu’elle est prête.

    Arrière plan

    Comme indiqué ci-dessus, la majeure partie de la configuration de votre application sera fournie à votre conteneur d’application au moment de l’exécution par l’opérateur à l’aide de Configuration Ressources.

    Comme indiqué dans la capture d’écran ci-dessus, cet exemple de pipeline prend actuellement en charge de nombreux types de ressources de configuration, mais pas tous :

    Pour plus d’informations sur les autres types de configuration, consultez la documentation sur les types de configuration pour les serveurs d’intégration. L’ajout de la prise en charge de l’un de ces types supplémentaires impliquerait l’ajout de tâches supplémentaires aux tâches fournies dans le référentiel – les tâches existantes sont commentées pour aider à cela.

    Chacune de ces ressources de configuration est facultative. Deux exemples d’applications App Connect sont fournis pour montrer comment le pipeline prend en charge différents types d’applications.

    Applications autonomes simples

    Le pipeline peut être utilisé pour déployer une application autonome sans dépendances de configuration.

    • exemple de demande
    • configuration de l’exécution du pipeline
    • script de démonstration :

    Il s’agit d’une simple application App Connect sans configuration externe.

    Lors du déploiement, le pipeline ignore toutes les tâches de configuration :

    Regarder l’exécution du pipeline ressemble à ceci (sauf que cela prend plus de temps).

    GIF animé

    Demandes complexes

    Le pipeline peut être utilisé pour déployer des applications complexes avec plusieurs dépendances de configuration et prendre en charge des projets Java.

    • exemple de demande
    • configuration de l’exécution du pipeline
    • script de démonstration :

    Voici un exemple d’application App Connect nécessitant une configuration pour se connecter à :

    • une base de données PostgreSQL
    • une API HTTP externe
    • un cluster Apache Kafka

    Lors du déploiement, le pipeline exécute toutes les tâches de configuration requises pour cette application :

    En regardant le pipeline s’exécuter (également accéléré !), cela ressemble à ceci.

    GIF animé

    Pour éviter d’avoir à stocker les informations d’identification dans Git avec votre code d’application, le pipeline récupère les informations d’identification à partir des secrets Kubernetes. Lors de la configuration du pipeline pour votre application (voir la section ci-dessous), vous devez spécifier les secrets qu’il doit utiliser pour ce faire.

    Exemples d’applications

    J’ai mis des notes sur la façon dont j’ai configuré les exemples d’applications pour démontrer le pipeline dans demo-pre-reqs/README.md cependant, aucun des exemples d’applications n’est particulièrement utile et n’a été utilisé que pour tester et démontrer le pipeline.

    Vous pouvez les importer dans App Connect Toolkit pour les modifier si vous le souhaitez :

    1. Dossier -> Importer… -> Projets à partir d’un dossier ou d’une archive
    2. Mettez l’emplacement du dossier ace-projects comme Source d’importation.
    3. Cochez tous les projets

    Cela vous permettra d’ouvrir les projets et de travailler dessus localement. Si vous êtes curieux de savoir ce qu’ils font, j’inclurai quelques brèves notes ci-dessous :

    Application simple

    Il fournit un point de terminaison HTTP qui renvoie un message Hello World.

    En cours d’exécution :

    curl http://$(oc get route -nace-demo hello-world-http -o jsonpath="{.spec.host}")/hello"

    renvoie ceci :

    Application complexe

    Il fournit un flux piloté par des événements intentionnellement conçu qui :

    • « Kafka consomme toutes les mises à jour »
      • reçoit un message JSON d’un sujet Kafka
    • « obtenir l’identifiant du message de mise à jour »
      • analyse le message JSON et en extrait un numéro d’identification
      • utilise le numéro d’identification pour créer une URL HTTP pour une API externe
    • « récupérer les détails de la tâche actuelle »
      • effectue un appel HTTP GET à l’API externe
    • « base64 encode la description »
      • transforme la réponse de l’API externe à l’aide d’une classe Java personnalisée
    • « insérer dans la base de données »
      • insère la charge utile de réponse transformée dans une base de données PostgreSQL

    Le but de cette application était de démontrer une application ACE qui nécessitait une variété de ressources de configuration.

    Mais cela signifie que l’exécution de ceci:

    echo '{"id": 1, "message": "quick test"}' | kafka-console-producer.sh \
        --bootstrap-server $BOOTSTRAP \
        --topic TODO.UPDATES \
        --producer-property "security.protocol=SASL_SSL" \
        --producer-property "sasl.mechanism=SCRAM-SHA-512" \
        --producer-property "sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="appconnect-kafka-user" password="$PASSWORD";" \
        --producer-property "ssl.truststore.location=ca.p12" \
        --producer-property "ssl.truststore.type=PKCS12" \
        --producer-property "ssl.truststore.password=$CA_PASSWORD"

    t’obtiens ceci :

    store=# select * from todos;
     id | user_id |       title        |            encoded_title             | is_completed
    ----+---------+--------------------+--------------------------------------+--------------
      1 |       1 | delectus aut autem | RU5DT0RFRDogZGVsZWN0dXMgYXV0IGF1dGVt | f
    (1 row)

    Configuration du pipeline pour votre application App Connect Enterprise

    Pour exécuter le pipeline pour votre propre application, vous devez d’abord créer un PipelineRun.

    Les exemples d’exécutions de pipeline décrits ci-dessus fournissent un bon point de départ pour cela, que vous pouvez modifier selon vos propres besoins. Vous devez spécifier l’emplacement du code de votre application App Connect Enterprise et des ressources de configuration. Tous les paramètres disponibles sont documentés dans la spécification du pipeline si des conseils supplémentaires sont nécessaires.

    Approches alternatives

    L’exécution d’App Connect Enterprise dans des conteneurs est parfaitement adaptée à une variété d’approches CI/CD. Le pipeline décrit dans cet article a été utile pour un projet sur lequel j’ai récemment travaillé, mais vous pouvez trouver une variété d’autres approches de pipeline pour gérer votre application ACE. Pour une autre excellente option, voir github.com/ot4i/ace-demo-pipeline.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.