Dans cet article, nous allons vous montrer une technologie pour l’une des exigences les plus courantes que nous avons trouvées, qui consiste à déplacer des fichiers d’une ou plusieurs sources vers une ou plusieurs cibles.
Dans ce scénario d’intégration, nous devons élaborer une solution qui implémente la logique nécessaire pour traiter automatiquement les fichiers. C’est ici que la technologie GoAnywhere MFT prend place.
Les solutions de transfert de fichiers géré (MFT) sont des logiciels qui utilisent des protocoles réseau standard et des méthodes de cryptage pour rationaliser la gestion des fichiers. Il est géré en fonction de la manière dont la solution peut automatiser et transférer vos données dans votre organisation, votre réseau, vos systèmes, vos applications, vos partenaires commerciaux et vos environnements cloud à partir d’une interface centrale unique.
1. Qu’est-ce que GoAnywhere MFT?
GoAnywhere MFT s’agit d’une solution de transfert de fichiers gérée qui fournit un contrôle et un audit centralisés des transferts de fichiers et des flux de travail pour l’entreprise. Avec ses fonctionnalités et son interface, GoAnywhere MFT réduira les coûts opérationnels, améliorera la qualité des transmissions de données et répondra aux exigences de conformité.
1.1 Fonctionnalités GoAnywhere MFT
Certaines des caractéristiques générales les plus importantes de cette plateforme sont:
Figure 1. GoAnywhere MFT.
- Fonctionne sur la plupart des systèmes d’exploitation, y compris Windows, Linux, VMware, UNIX, IBM i, Solaris et Mac OS.
- Inclut une interface administrateur basée sur un navigateur (composants graphiques et prise en charge du glisser-déposer).
- Prend en charge les protocoles de transfert de fichiers populaires, notamment SFTP, SCP, FTP/s, HTTP/s, AS2, Web Services, SMTP, POP3 et IMAP.
- Fournit des composants client pour la connexion à des systèmes internes et externes pour l’envoi et la récupération de fichiers.
- Fournit des composants de serveur pour permettre aux systèmes et aux utilisateurs de se connecter à GoAnywhere pour charger et télécharger des fichiers.
- Protège les fichiers « au repos » (“at rest”) et « en mouvement » (“in-motion”) avec le cryptage AES256 validé FIPS 140-2.
- Enregistre toutes les activités de transfert de fichiers dans une base de données centrale et des rapports analytiques.
- Permet le clustering pour une haute disponibilité (actif-actif) et l’équilibrage de charge.
- Contrôle l’accès des utilisateurs avec des autorisations basées sur les rôles et des contrôles de sécurité étendus.
- Inclut des outils de gestion de clés pour les clés OpenPGP, les clés SSH et les certificats SSL.
- Fonctionne avec la passerelle GoAnywhere en option pour garder les fichiers hors de la DMZ et fermer les ports entrants dans le réseau interne (privé).
En ce qui concerne les politiques de tarification, GoAnywhere MFT est concédé sous licence par module ou composant serveur par instance. En outre, il propose différents plans tarifaires, chacun avec différentes fonctionnalités disponibles, afin que vous puissiez choisir celui qui convient le mieux aux besoins de votre entreprise. Quoi qu’il en soit, GoAnywhere MFT vous encourage à demander un devis et, par la suite, à conclure ensemble un accord sur le prix.
Figure 2. Étapes de tarification.
2. Installation
GoAnywhere MFT fonctionne sur la plupart des systèmes d’exploitation, y compris Windows, Linux, UNIX, IBM i, Solaris et Mac OS. In addition, GoAnywhere MFT peut être installé dans la plupart des environnements virtuels, notamment VMware, Microsoft Azure, Amazon EC2, etc.
Notez que vous pouvez configurer une implémentation en cluster de GoAnywhere. Cela permet à deux ou plusieurs installations GoAnywhere (systèmes) de fonctionner ensemble pour fournir des services de transfert de fichiers à l’entreprise. Cela offre une plus grande évolutivité en permettant aux charges de travail d’être réparties horizontalement sur plusieurs systèmes GoAnywhere.
La liste ci-dessous répertorie les numéros de port par défaut utilisés par GoAnywhere pour ses différents modules/services (ces numéros de port peuvent être modifiés pendant l’installation ou après):
Figure 3. Numéros de port.
Seuls les utilisateurs autorisés peuvent utiliser la console d’administration basée sur navigateur de GoAnywhere pour effectuer la configuration et la surveillance au sein du produit. Notez que les interfaces GoAnywhere Administrator et Web Client nécessitent des navigateurs Internet modernes prenant en charge HTML 5:
Illustration 4. Console d’administration.
Nous avons exposé quelques concepts liés à l’installation de GoAnywhere MFT. Veuillez consulter les exigences d’installation pour plus d’informations.
- Comment fonctionne GoAnywhere MFT?
La plateforme GoAnywhere MFT est composée de plusieurs composants, qui sont organisés par des menus déroulants et des liens dans le tableau de bord GoAnywhere:
Figure 5. Tableau de bord GoAnywhere.
Cet en-tête de page affiche le nom de l’environnement GoAnywhere, le nom système du serveur local et le domaine actuel.
Sur chaque menu déroulant, vous trouverez les composants suivants :
- Ressources: Les ressources sont les noms et les propriétés de connexion des serveurs.
- Flux de travail: Déclencheurs et projets qui automatisent tous les transferts de fichiers et processus d’affaires ou métier.
- Services: Les services GoAnywhere sont utilisés pour les connexions entrantes de vos partenaires commerciaux, clients, employés et sites distants.
- Utilisateurs: Rôles, méthodes de connexion, utilisateurs administrateurs et groupes d’administrateurs pour contrôler l’accès.
- Journaux et rapports: Erreurs et événements de surveillance tels que les transferts de fichiers et l’activité du serveur.
- Chiffrement: GoAnywhere implémente plusieurs technologies de cryptage populaires pour sécuriser les données.
- Système: Fournit un accès pour modifier de nombreux paramètres de fonctionnement de GoAnywhere.
Nous allons vous expliquer un peu plus les principaux composants de GoAnywhere MFT qui vous aideront à comprendre le fonctionnement de cette technologie.
3.1. Ressources
Ressources sont les noms et les propriétés de connexion des serveurs et autres sources de données avec lesquelles GoAnywhere peut interagir. Vous avez ici une image de la console Web principale des ressources GoAnywhere:
Figure 6. Console Web des ressources.
Vous pouvez y créer vos propres ressources, tester les connexions, importer/exporter des ressources à l’aide de modèles XML et gérer les autorisations des ressources.
Nous allons lister les ressources les plus importantes de notre point de vue:
- Amazon S3 Buckets:Noms et propriétés de connexion des emplacements de compartiment Amazon S3 auxquels GoAnywhere peut se connecter pour accéder aux fichiers.
- Network Shares: Noms et propriétés de connexion des emplacements de fichiers partagés sur un réseau auquel GoAnywhere peut se connecter pour accéder aux fichiers. Nous l’utilisons assez souvent pour nous connecter aux serveurs Samba.
- PGP Key Rings: Noms des trousseaux de clés PGP pouvant être utilisés dans GoAnywhere pour chiffrer et déchiffrer des fichiers à l’aide de la norme OpenPGP.
- SSH Servers (SFTP/SCP/SSH): Les noms et les propriétés de connexion des serveurs SSH auxquels GoAnywhere peut se connecter. Ces ressources peuvent être utilisées pour les transferts SFTP (SSH File Transfer Protocol), les transferts de fichiers SCP (Secure Copy) et l’exécution de commandes SSH à distance.
Enfin, le but du développement de ces ressources est de les utiliser plus tard dans les logiques et les déclencheurs GoAnywhere MFT, alors n’oubliez pas de les configurer correctement et de les tester!
3.2. Flux de travail
Vous pouvez facilement développer la logique souhaitée dans les projets GoAnywhere MFT pour décrire le travail à effectuer. Ces projets peuvent être exécutés immédiatement ou planifiés pour s’exécuter à des dates et heures futures, même lorsqu’un certain événement se produit.
Tous ces éléments liés à la logique GoAnywhere MFT sont stockés dans les flux de travail ou workflows. Nous allons expliquer un peu plus les principaux éléments que nous utilisons habituellement dans nos intégrations.
3.2.1. Projets
Les projets peuvent être créés dans GoAnywhere pour automatiser les transferts de fichiers et les processus métier (workflows) pour votre organisation.
Plusieurs méthodes sont disponibles pour exécuter des projets dans GoAnywhere. Vous pouvez exécuter des projets à la demande à partir de l’administrateur basé sur navigateur de GoAnywhere, également exécutés par les processus intégrés Scheduler et File Monitor. Les applications externes peuvent également lancer des projets à partir d’autres systèmes (par exemple: IBM i, Windows, Unix, Linux, Solaris, etc.) en utilisant les commandes et les APIs de GoAnywhere.
Les principales actions que vous pouvez effectuer sur un projet MFT sont : créer un nouveau projet, rechercher des projets, importer un projet développé à l’aide d’un modèle xml, exporter un projet existant et modifier un projet existant.
Les projets peuvent être stockés dans des dossiers définis par l’utilisateur dans GoAnywhere. Les dossiers sont très utiles pour organiser des projets, ce qui deviendra important au fur et à mesure que vous créerez de plus en plus de projets. En effet, si GoAnywhere est configuré pour utiliser plusieurs domaines, chaque nom de domaine apparaîtra au niveau racine de l’explorateur de projet sous la forme d’un dossier.
Continuons à parler de la conception du projet sur GoAnywhere MFT. Les projets sont constitués de modules, de tâches et d’éléments:
- Un module est un regroupement logique d’une ou plusieurs tâches. Par exemple, un module peut être défini avec trois tâches à exécuter dans un ordre séquentiel. La première tâche du module peut lire (analyser) les données d’un document XML.La deuxième tâche peut insérer ces données dans un fichier de base de données. La troisième tâche pourrait ensuite appeler un programme pour traiter ces données. Plusieurs modules peuvent être définis dans un projet. La tâche du module d’appel peut exécuter un autre module dans un projet pour effectuer une sous-routine de tâches en fonction de critères spécifiques.
- GoAnywhere MFT inclut également des tâches de structures de contrôle dans ses projets, telles que If Condition, Else et Loops.
- D’autres tâches assez importantes sur un fichier sont Copier, Déplacer, Supprimer, Créer une liste de fichiers. Notez que les tâches Copier et Déplacer nous permettent de renommer facilement le fichier d’entrée traité dans la destination, ce qui est très utile pour certains scénarios.
- Une tâche est composée d’un ou plusieurs éléments, qui décrivent les types de travail à effectuer dans la tâche. Par exemple, la tâche FTP a un élément pour mettre un fichier sur un serveur FTP, un élément pour obtenir un fichier d’un serveur FTP, un élément pour renommer un fichier sur un serveur FTP, etc.
Enfin, voici un exemple de modules, tâches et éléments:
Figure 7. Modules, tâches et éléments.
3.2.2. Planificateurs
GoAnywhere vous permet de programmer l’exécution du projet (Jobs) à des dates et heures futures. Une tâche planifiée peut être créée ou modifiée à l’aide de la page Tâche planifiée. Vous pouvez ajouter un nouveau programme et modifier un programme existant.
Dans un calendrier, vous pouvez configurer la fréquence, le projet cible, la priorité d’exécution ou même utiliser un calendrier de vacances enregistré pour déterminer ce qui doit arriver au travail lorsque l’exécution tombe un jour férié.
3.2.3. Moniteurs
La fonction File Monitors de GoAnywhere offre la possibilité de rechercher à plusieurs reprises des fichiers nouveaux, modifiés ou supprimés dans un dossier. Lorsque la condition d’analyse est remplie, le moniteur peut appeler un projet prédéfini pour traiter le(s) fichier(s). Par conséquent, ce composant vous aidera à développer des intégrations en suivant l’approche événementielle.
Figure 8. Fonction File Monitor dans GoAnywhere.
Vous pouvez créer, afficher, modifier, supprimer et désactiver/activer des moniteurs.
Pour créer ou modifier un moniteur, vous pouvez modifier des champs tels que la ressource source et le dossier à extraire périodiquement, le projet MFT cible à déclencher et ses paramètres d’entrée, le type d’événement de fichier (fichier créé ou modifié, fichier créé, fichier Modifié, Fichier supprimé et Fichier existant) et le nom de fichier Type de modèle (Caractère générique ou Expression régulière). Bien sûr, vous pouvez configurer le programme Monitor en modifiant son heure de début, son heure de fin et sa fréquence.
4. Exemple de scénario d’entreprise
Vous avez déjà vu beaucoup d’informations sur les fonctionnalités de fonctionnement de la plateforme GoAnywhere MFT. Voyons un exemple qui vous aidera à mieux comprendre la valeur réelle de cette technologie. L’exemple de scénario est le suivant:
J'ai besoin de déplacer des fichiers d'un serveur SFTP source vers un serveur SFTP cible. Le répertoire source sera interrogé toutes les 1 minute pour vérifier les fichiers avec une extension GO. S'il est trouvé, le fichier associé (sans extension GO) et le fichier GO seront déplacés vers un répertoire de serveur cible. Tous les fichiers déplacés doivent également être déplacés vers un sous-dossier "traité" pour permettre la relecture.
Le schéma ci-dessous montre la conception globale de la solution:
Figure 9. Conception de la solution.
Vous pouvez voir sur le diagramme les prochains composants GoAnywhere MFT:
- Une ressource SFTP MFT connectée au serveur SFTP source où les fichiers seront extraits.
- Une ressource SFTP MFT connectée au serveur SFTP cible où les fichiers csv d’entrée doivent être déplacés.
- Un MFT Moniteur XXX qui utilise la ressource SFTP source pour extraire les fichiers d’entrée avec le préfixe .GO.
- Un premier Projet MFT est déclenché par le moniteur lorsque le modèle de fichier est rencontré.
- Un deuxième Projet MFT (entouré du carré rouge) qui est déclenché par chaque fichier détecté et déplacera le csv associé vers la ressource SFTP cible.
En mettant en œuvre cette solution, vous aurez un travail automatisé qui répondra aux besoins de l’entreprise avec les meilleures performances, surtout si nous traitons des fichiers volumineux.
5. Comment puis-je développer des solutions GoAnywhere MFT?
Le moyen le plus simple de développer des solutions MFT consiste à utiliser la console GoAnywhere MFT. Cependant, si vous êtes déjà familiarisé avec cette technologie, nous vous suggérons d’importer vos modèles xml MFT via les services Web de commande GoAnywhere.
5.1. Utilisation de la console GoAnywhere MFT
C’est la meilleure option si vous commencez à travailler avec GoAnywhere MFT. Comme indiqué précédemment, vous pouvez créer tous les éléments MFT souhaités pour votre intégration qui répondent aux exigences de l’entreprise.
N’oubliez pas qu’un projet peut être créé à partir de zéro en choisissant les tâches spécifiques nécessaires, ou vous pouvez créer des projets en utilisant l’un des modèles GoAnywhere inclus. L’utilisation d’un modèle est généralement l’approche la plus rapide pour créer un projet, car chaque modèle contient un groupe prédéfini de tâches pour exécuter les processus métier couramment utilisés.
Figure 10. Base de données vers Excel vers FTP.
5.2. Services Web de commande GoAnywhere
Si vous avez l’habitude de travailler avec MFT et que vous souhaitez accélérer votre développement et votre déploiement, vous pouvez importer vos modèles d’éléments MFT via les services Web de commande GoAnywhere. Cela permet aux utilisateurs d’effectuer des requêtes SOAP et REST vers un système GoAnywhere local ou distant. Avec GoAnywhere Command Web Services, il est possible d’exécuter des fonctions GoAnywhere à partir de programmes personnalisés et d’importer vos composants MFT personnalisés. L’exemple suivant qui montre comment importer un projet à partir d’un fichier XML:
Figure 11. Importer un projet à partir d’un fichier XML.
En effet, nous avons automatisé les tests et les déploiements de nos éléments GoAnywhere MFT en utilisant des méthodologies continues (telles que gitlab-ci et Jenkins) et des gradle tasks qui appellent les services Web de commande GoAnywhere.
N’oubliez pas non plus que presque tous les composants de GoAnywhere sont définis par des fichiers de modèle xml. Nous utilisons généralement l’IDE Visual Studio Code pour travailler avec nos intégrations MFT car il fournit de nombreux plugins pour les fichiers de modèles xml, mais d’autres IDE sont tout aussi valables. Vous trouverez ici quelques exemples de modèles dans lesquels vous pouvez voir toutes les propriétés principales de chaque élément GoAnywhere MFT:
- Voici un fichier XML qui définit un projet MFT:
<project name="Example Using Variables" mainModule="Main" version="2.0" logLevel="verbose"> <variable name="MyFile" value="" /> <module name="Main"> <sftp label="Connect to Server" resourceId="Test SFTP" version="1.0"> <put label="Put file on Target Server" sourceFile="${MyFile}" destinationDir="/Demos/inbound" /> </sftp> </module> <description>Basic Project with Parameter</description> </project>
- Celui-ci s’agit d’un fichier XML qui définit une ressource MFT SFTP:
<?xml version="1.0" encoding="UTF-8" ?> <resource class="com.linoma.ga.projects.resources.SSHResource"> <primaryContactName /> <primaryContactPhone /> <primaryContactEmail /> <secondaryContactName /> <secondaryContactPhone /> <secondaryContactEmail /> <resourceName>{{ resourceName }}</resourceName> <domainName>{{ domainName }}</domainName> <resourceDescription>{{ resourceDescription }}</resourceDescription> <host>{{ host }}</host> <port>{{ port }}</port> <user>{{ userName }}</user> <password>{{ password }}</password> <passwordIsEncrypted /> <passwordIsRecoverable /> <keyLocation>KeyVault</keyLocation> <keyVault>{{ domainName }}</keyVault> <privateKeyAlias>{{ privateKeyAlias }}</privateKeyAlias> <keyPassword /> <keyPasswordIsEncrypted /> <keyPasswordIsRecoverable /> <privateKeyFile/> <privateKeyPassword/> <privateKeyPasswordIsEncrypted /> <privateKeyPasswordIsRecoverable /> <rsaSignatureAlgorithm>ssh-rsa</rsaSignatureAlgorithm> <hostKey /> <timeout>{{ timeout }}</timeout> <connectionRetryAttempts>{{ connectionRetryAttempts }}</connectionRetryAttempts> <connectionRetryInterval>{{ connectionRetryInterval }}</connectionRetryInterval> <initialRemoteDirectory>{{ initialRemoteDirectory }}</initialRemoteDirectory> <throttleBandwidth /> <proxyType /> <proxyHost /> <alternateProxyHost /> <proxyPort /> <proxyUser /> <proxyPassword /> <proxyPasswordIsEncrypted /> <proxyPasswordIsRecoverable /> <resolveAtProxy /> <authenticationAlgorithms /> <cipherAlgorithms /> <macAlgorithms /> <keyExchangeAlgorithms /> <compressionAlgorithms /> </resource>
- Ça c’est un fichier XML qui définit un moniteur MFT pour un serveur SFTP:
<?xml version="1.0" encoding="UTF-8" ?> <monitor class="com.linoma.dpa.commandcenter.codec.MonitorVOCodec"> <status>{{ status }}</status> <actionType>0</actionType> <triggerDefinition>{{ triggerDefinition }}</triggerDefinition> <description>{{ description }}</description> <domain>{{ domainName }}</domain> <name>{{ monitorName }}-{{ domainName }}</name> <monitorType>3</monitorType> <callProject jobName="{{ jobName }}" onFailureAttachJobLog="true" onSuccessAttachJobLog="false" password="{{ password }}" passwordIsEncrypted="false" runPriority="5" user="{{ runner }}" project="{{ projectLocation }}"> <variable originalValue="" value="${monitor.fileList}" name="monitorFileList" description="files set by monitor" /> </callProject> <ftpMonitorDefinition> <resourceName>{{ sftpOriginResourceName }}</resourceName> <resourceType>ssh</resourceType> <folder>{{ sftpOriginFolderName }}</folder> <recursive>false</recursive> <stopChecking>{{ stopChecking }}</stopChecking> <dualListDelay>10</dualListDelay> <events> <event type="{{ eventType }}" /> </events> <filters> <regexFilter> <include pattern="{{ filePattern }}" caseSensitive="false" /> </regexFilter> </filters> </ftpMonitorDefinition> </monitor>
6. Conclusion
Dans cet article, nous vous avons présenté un aperçu de la plateforme GoAnywhere MFT. Vous connaissez maintenant les principales fonctionnalités de cette technologie, son architecture/structure, comment l’installer sur votre environnement et comment commencer à travailler avec.
De plus, vous avez vu ici un exemple de scénario et quelques suggestions sur la façon de développer vos intégrations GoAnywhere MFT.
D’après notre expérience, GoAnywhere est une bonne solution pour automatiser la procédure de déplacement de fichiers d’une source vers une cible. En effet, nous avons détecté dans notre travail quotidien que GoAnywhere MFT résout cette exigence avec de meilleures performances que d’autres technologies (applications Java personnalisées par exemple) surtout si nous parlons de travailler avec des fichiers volumineux. Cependant, nous utilisons généralement d’autres outils lorsque l’exigence est de transformer ou de lire des données à partir de fichiers.
Par conséquent, nous vous encourageons à commencer à utiliser GoAnywhere MFT si vous devez implémenter une solution de transfert de fichiers.
Si vous voulez en savoir plus, n’hésitez pas à nous contacter pour plus d’informations.