Architecture
👷‍♀️ Intégrateur
Présentation​
La plateforme Juno est composée d'une architecture centralisée, avec un serveur d'application Tomcat et une base de données MariaDB. L'application est développée en Java, avec des composants front-end en Angular.
L'application s'interface avec plusieurs services externes, tels que :
- Gitlab pour l'exécution des tâches
- Nexus pour la gestion des artefacts
- Jira pour la génération de notes de publication
- Slack pour l'envoi de notifications
- SMTP pour l'envoi de mails
- LDAP ou Gitlab pour l'authentification
L'application supporte également un mode de connexion à une base de données H2 pour le mode de démonstration visible sur juno.delivery.
Modules​
L'application est divisée en plusieurs modules, chacun ayant une responsabilité spécifique. Les modules peuvent être dédiés à une fonctionnalité, à un service externe ou à une couche technique.
Atexo​
Réalise les échanges avec Nexus, via une recherche d'artefacts dans un dépôt Maven. Ce module pourra à termes être
renommé en Nexus
, la partie spécifique à Atexo étant supprimée. Lire aussi Nexus.
Gitlab​
Permet de déclencher des pipelines Gitlab, de valider l'authentification via l'access token et de récupérer les statuts des pipelines déclenchés ainsi que les données de qualité associées. Lire aussi Gitlab.
Jira​
Récupère des listes de tickets Jira, basés sur des filtres JQL, pour générer des notes de publication. Lire aussi Jira.
Slack​
Permet d'envoyer des messages sur un canal Slack. Lire aussi Slack.
Mailer​
Permet d'envoyer des mails.
Filesystem​
Réalise l'enregistrement de fichiers sur le système de fichiers local.
Document​
Rassemble l'ensemble des fonctionnalités de génération de documents.
Web-services​
Expose les services REST de l'application.
Core​
Contient les classes métiers de l'application.
Dao​
Contient les classes d'accès aux données (MariaDB ou H2).