Accueil Blog Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et la livraison continues

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

La mise en œuvre d'un processus d'intégration et de livraison continues (CI/CD) peut considérablement améliorer la vitesse et la fiabilité de la personnalisation d'Acumatica, un système de planification des ressources d'entreprise (ERP) basé sur le cloud.
Gabriel Michaud | 29 décembre 2022

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Introduction

Dans le développement traditionnel de logiciels, le processus d'intégration a généralement lieu à la fin d'un projet, une fois que chaque personne a terminé son travail. L'intégration prend généralement des jours ou des semaines et peut être pénible. Les conflits surviennent parce que deux développeurs ont modifié le même morceau de code. Le code ne se compile plus. Des choses qui fonctionnaient auparavant et qui ne fonctionnent plus. Le code ne fonctionne pas dans l'environnement de production.

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Il n'est pas nécessaire qu'il en soit ainsi ! Dans cet article de blog, j'aimerais vous présenter l'intégration continue et la livraison continue (CI/CD).

Ce billet est basé sur une présentation que j'ai faite à Acumatica Summit 2022. L'enregistrement complet de la présentation est disponible ici : https://www.youtube.com/watch?v=o_Ma4_C2b2w

Qu'est-ce que la CI/CD ?

La CI/CD est une pratique de développement logiciel qui vise à automatiser et à rationaliser le processus de construction, de test et de déploiement des applications logicielles. Il s'agit de mettre en place un pipeline qui construit, teste et déploie automatiquement les modifications du code au fur et à mesure qu'elles sont apportées, ce qui permet une itération et un déploiement rapides des nouvelles caractéristiques et fonctionnalités.

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Source : Le guide des chefs de produit sur la livraison continue et le DevOps.

https://www.mindtheproduct.com/

Pourquoi utiliser CI/CD ?

Il y a plusieurs avantages à utiliser CI/CD pour les développeurs qui construisent des solutions Acumatica :

  • Amélioration de l'efficacité et de la productivité : CI/CD peut aider à réduire le temps et les efforts nécessaires pour créer, tester et déployer des personnalisations en automatisant de nombreuses étapes manuelles du processus. Cela signifie que votre équipe peut se concentrer sur des tâches plus importantes, plutôt que de passer du temps sur des processus manuels fastidieux.
  • Amélioration de la qualité et de la fiabilité : En automatisant les tests et le déploiement, CI/CD permet d'identifier et de résoudre les problèmes plus tôt dans le processus de développement, réduisant ainsi le risque d'introduction de problèmes dans les environnements de production. Cela permet de s'assurer que vos personnalisations et modifications de votre instance Acumatica sont de la plus haute qualité et fiabilité.
  • Accroissement de la rapidité et de la souplesse : CI/CD permet aux développeurs d'itérer rapidement sur leur code et de le mettre en production plus vite, ce qui leur permet de répondre plus rapidement aux besoins de l'entreprise et aux évolutions du marché. Cela peut aider votre petite entreprise à rester compétitive sur un marché en constante évolution.

Comment mettre en place un pipeline CI/CD pour les projets de développement Acumatica ?

La mise en place d'un pipeline CI/CD pour vos projets de développement Acumatica peut sembler intimidante au début, mais c'est un processus assez simple. Voici les étapes à suivre :

  1. Choisissez un système de contrôle des sources : Vous devrez utiliser un système de contrôle des sources pour gérer et suivre les modifications apportées à votre base de code. Plusieurs options sont disponibles, telles que Git, Mercurial et Subversion. Choisissez celui qui répond le mieux à vos besoins et qui est le plus familier à votre équipe.
  2. Mettre en place un serveur de compilation : Vous aurez besoin d'un serveur de construction pour automatiser le processus de construction, de test et de déploiement de votre code. Il peut s'agir d'une machine physique ou d'une machine virtuelle hébergée dans le nuage.
  1. Configurez votre serveur de compilation : Une fois que vous avez mis en place un serveur de construction, vous devez le configurer pour qu'il exécute les outils et processus nécessaires à la construction, au test et au déploiement de votre code. Cela implique généralement l'installation et la configuration d'un outil d'automatisation de la construction tel qu'Azure DevOps.
  1. Mettre en place un environnement de test : Vous aurez besoin d'un environnement distinct pour exécuter des tests automatisés sur votre code. Il peut s'agir d'une machine physique ou virtuelle, hébergée sur site ou dans le nuage.
  1. Configurez votre environnement de test : Vous devrez installer et configurer les outils et dépendances nécessaires à votre environnement de test pour exécuter des tests automatisés. Cela implique généralement l'installation du cadre de test Acumatica et de tout autre outil requis pour vos besoins de test spécifiques.
  1. Mettre en place un environnement de déploiement : Vous aurez besoin d'un environnement distinct pour déployer votre code en production. Il peut s'agir d'une machine physique ou virtuelle.

Pour mettre en œuvre CI/CD pour les projets de développement Acumatica, il est important d'évaluer l'état actuel des pratiques et des outils de développement. Il s'agit notamment de comprendre l'utilisation du contrôle des sources pour les projets de personnalisation, l'utilisation de l'Acumatica Test SDK pour les tests automatisés et l'utilisation d'outils CI/CD pour le déploiement. Le SDK Acumatica Test est un ensemble d'outils fournis par Acumatica pour créer des tests automatisés pour l'interface utilisateur des applications Acumatica. Ces tests permettent de simuler les interactions des utilisateurs avec l'interface utilisateur et de valider le comportement et les fonctionnalités de l'application.

Structure du dépôt GitHub

GitHub est un système de contrôle de version qui permet aux développeurs de suivre les modifications apportées à leur code au fil du temps et de collaborer avec d'autres développeurs sur des projets. Dans le contexte d'un projet de développement Acumatica, un dépôt GitHub peut inclure une bibliothèque d'extension Acumatica, des artefacts de projet de personnalisation, des projets de tests unitaires, un fichier YAML Azure Pipelines, un fichier de configuration NuGet, ainsi que des scripts supplémentaires et des outils de ligne de commande pour publier le package de personnalisation :

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Ce dépôt d'échantillons se trouve à l'adresse suivante https://github.com/VelixoSolutions/AcumaticaCIDemo

Intégration d'Acumatica Source Control

L'intégration du contrôle de source d'Acumatica permet d'intégrer une gamme d'outils de contrôle de source. Elle fonctionne différemment de Visual Studio et n'est pas un lien direct avec un outil de contrôle de source spécifique. Au lieu de cela, il facilite la lecture et l'écriture dans un dossier local, qui est lié/souscrit à un système de contrôle de source tel que Git.

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

 

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Pour plus d'informations, voir "Source Code and Automation for Acumatica Developers" de la conférence virtuelle des développeurs Acumatica 2019.

Lien : /media/2019/07/2019-Acumatica-DevCon-Source-Control-Automation.pdf

Construire le paquet de personnalisation

La création d'un package de personnalisation est le processus de création d'un package de code et de ressources qui peut être déployé sur une instance Acumatica pour ajouter des personnalisations ou des extensions à l'application.

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Qu'est-ce qu'un forfait de personnalisation ?

Comme notre objectif est d'automatiser ce processus, nous devons nous appuyer sur un outil de ligne de commande pour le construire pour nous. PX.CommandLine.exe est un outil livré avec Acumatica et qui est couramment utilisé pour construire des paquets de personnalisation pour Acumatica, mais il a des limitations qui rendent son utilisation difficile dans le contexte d'un pipeline CI/CD :

  • Il nécessite l'installation d'une instance complète d'Acumatica.
  • Il est lent - l'instance Acumatica doit démarrer avant que le paquet puisse être construit.
  • Il ne fonctionne pas lorsqu'il est exécuté dans le contexte d'un agent de construction.

Comme alternative, j'ai construit une simple application en ligne de commande qui fait cela pour vous, sans aucun bagage supplémentaire. Elle fournit des options pour spécifier le chemin de personnalisation, le nom de fichier du paquet et une description du projet de personnalisation. Pour créer un paquet de personnalisation à l'aide de CustomizationPackageTools.exe, les développeurs peuvent utiliser une commande comme celle-ci :

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Vous pouvez trouver le code source de cet outil ici : https://github.com/VelixoSolutions/AcumaticaCIDemo/tree/main/CustomizationPackageTools

Le code est sous licence MIT - merci de le forker et de l'améliorer !

Publication du paquet de personnalisation

 La publication du package de personnalisation est le processus de déploiement du package sur une instance Acumatica et la mise à disposition des personnalisations ou des extensions contenues dans le package aux utilisateurs. L'API Acumatica Service Gate est une API de service web située à /api/ServiceGate.asmx et basée sur SOAP qui peut être utilisée pour publier des packages de personnalisation sur une instance Acumatica, mais elle peut être difficile à utiliser avec une plateforme CI/CD comme Azure Pipelines. Azure Pipelines ne peut pas appeler une API de service web, mais il peut exécuter n'importe quelle application en ligne de commande ou script PowerShell. J'ai étendu la même application de ligne de commande que j'ai présentée précédemment, pour lui permettre de publier des projets également.

Pour publier un paquet de personnalisation à l'aide de CustomizationPackageTools.exe, les développeurs peuvent utiliser une commande comme celle-ci :

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Tests : Tirer parti des outils et cadres de test Acumatica

Acumatica fournit un ensemble d'outils et de cadres de test pour vérifier la fonctionnalité et la performance des personnalisations et des extensions de l'application Acumatica. L'Acumatica Test SDK est un ensemble de bibliothèques construites sur le framework Selenium WebDriver qui permet aux développeurs d'écrire des tests automatisés pour l'interface utilisateur de l'application. Le cadre de test unitaire Acumatica est un ensemble de bibliothèques et d'outils conçus spécifiquement pour tester la logique métier et d'autres composants de l'application. En utilisant ces outils et cadres de test, les développeurs peuvent créer des tests automatisés qui contribuent à garantir la qualité et la fiabilité de leur code.

L'Acumatica Test SDK est un ensemble d'outils et de bibliothèques qui permettent aux développeurs de créer des tests automatisés pour l'interface utilisateur (UI) du logiciel Acumatica. Ces tests vérifient la fonctionnalité des éléments personnalisés de l'interface utilisateur et peuvent être exécutés sur différentes versions du logiciel Acumatica afin d'en assurer la compatibilité. Le SDK de test est construit sur le framework Selenium WebDriver et fournit des outils pour interagir avec l'interface utilisateur d'Acumatica, définir et grouper des cas de test, et mettre en place et supprimer des données de test. Pour créer un test d'interface utilisateur, les développeurs installent généralement les bibliothèques du SDK de test, créent un nouveau projet de test à l'aide d'un modèle fourni, écrivent le code de test à l'aide des outils fournis et exécutent les tests pour vérifier la fonctionnalité des éléments personnalisés de l'interface utilisateur. L'utilisation du SDK de test permet de garantir la qualité et la fiabilité du code personnalisé.

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Un exemple de test d'interface utilisateur

Le cadre de test unitaire Acumatica est un ensemble d'outils et de bibliothèques qui permettent aux développeurs de créer des tests unitaires automatisés pour le logiciel Acumatica. Ces tests vérifient la fonctionnalité de petites unités de code isolées, telles que la logique commerciale personnalisée et d'autres composants de l'application. Le cadre de test unitaire est basé sur le cadre .NET et comprend une bibliothèque appelée PX.Tests.Unit.dll, ainsi que des outils permettant de créer et d'exécuter des tests unitaires. Pour créer un test unitaire, les développeurs installent généralement les bibliothèques du cadre, créent un nouveau projet de test à l'aide d'un modèle fourni, écrivent le code de test à l'aide des outils fournis et exécutent les tests pour vérifier la fonctionnalité du code personnalisé. Vous pouvez en apprendre plus sur le framework de test unitaire Acumatica en consultant le cours T280 - Testing Business Logic with the Acumatica Unit Test Framework sur l'Acumatica Open University.

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Un exemple de test unitaire

L'assemblage - le fichier YAML d'Azure Pipeline

 Dans Azure DevOps, le pipeline CI/CD est défini à l'aide d'un fichier de configuration YAML, qui spécifie les étapes du processus, telles que la construction du code, l'exécution des tests et le déploiement dans différents environnements. Les artefacts de construction sont les résultats du processus de construction, qui sont stockés dans un emplacement central et peuvent être utilisés dans les étapes ultérieures du pipeline. Le déploiement continu est une variante de la livraison continue qui déploie automatiquement chaque changement de code en production, éliminant ainsi le besoin d'une intervention manuelle.

Vous pouvez voir un exemple de fichier YAML pour un exemple de projet CI/CD Acumatica ici :

https://github.com/VelixoSolutions/AcumaticaCIDemo/blob/main/azure-pipelines.yml

Pipelines de mise en production Azure

 Azure Release Pipelines est un outil d'Azure DevOps qui vous permet d'automatiser le processus de déploiement de vos applications.

Un pipeline de mise en production définit les étapes de la mise en production d'une application, y compris le déploiement du code dans différents environnements. Les pipelines de publication peuvent comporter plusieurs étapes et portes, ce qui vous permet de créer un processus de déploiement multi-environnements et de contrôler le flux de modifications du code en fonction de conditions telles que le temps ou l'approbation manuelle.

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

 

Déployer les personnalisations Acumatica en toute confiance grâce à l'intégration et à la livraison continues

Par exemple, vous pouvez attendre trois jours après le déploiement dans votre environnement de préparation et, si aucun nouveau document de travail n'a été créé, procéder automatiquement au déploiement dans l'environnement de production.

Conclusion

En conclusion, la mise en œuvre d'un processus d'intégration et de livraison continues (CI/CD) peut considérablement améliorer la vitesse et la fiabilité de la personnalisation d'Acumatica, un système de planification des ressources d'entreprise (ERP) basé sur le cloud. Un élément clé de ce processus est l'utilisation d'un système de contrôle de source pour gérer votre base de code, ainsi que le cadre de test Acumatica et les tests unitaires pour automatiser les tests de vos personnalisations. En utilisant un outil CI/CD, vous pouvez automatiser le processus de construction, de test et de déploiement, ce qui vous permet de fournir des mises à jour cohérentes et rapides à votre instance Acumatica. Gardez à l'esprit que les étapes et les outils spécifiques que vous utilisez pour votre processus CI/CD dépendent de vos besoins spécifiques et peuvent nécessiter quelques essais pour trouver la meilleure solution pour votre équipe. Dans l'ensemble, la mise en œuvre de CI/CD pour la personnalisation d'Acumatica peut apporter de nombreux avantages et mérite d'être prise en compte par toute équipe de développement.

Bon apprentissage !

Références et liens supplémentaires

Articles connexes

Auteur du blog

Ancien directeur général, Acumatica Labs Montréal. J'adore voyager et parler de l'informatique en nuage, des progiciels de gestion intégrés, du SaaS et du développement de logiciels, et je suis passionné par ce que je fais.

Recevez les mises à jour du blog dans votre boîte de réception.