Overview
Qu'est-ce qu'une application ?â
DĂ©finitionâ
Une Application est composée de:
- 1 Ă n composants (COTS, traitement, etc.);
- 0 Ă m espaces de stockage.
Une source de donnée externe est spécifiée avec l'espace de stockage source qui lui est associé et elle est à configurer sur le gestionnaire des sources avec son flux d'alimentation.
Applicationâ
L'application a pour objectif de maĂźtriser:
- L'appartenance des objets composants et schĂ©mas de stockage. Par exemple, un composant peut ĂȘtre instanciĂ© dans des applications diffĂ©rentes, mais un composant appartient (est fourni par) une seule application ;
- La cohérence des versions des composants et schémas de stockage pour le bon fonctionnement de l'ensemble ;
- Le support documentaire transverse cohérent pour un ensemble (installation / utilisation / administration des différents composants).
Une application est composée d'artefacts et utilise des schémas de stockage et services standards de la plateforme. Elle définit pour chaque artefact les versions attendues et paramÚtre finement le composant dans le contexte applicatif souhaité.
Chaque application est indépendante des autres.
Il n'y a aucun lien technique / dépendance technique entre 2 applications (hormis ceux que la personne en charge du déploiement souhaite paramétrer manuellement).
Par exemple, si pour rĂ©pondre Ă une application, 2 composants doivent partager le mĂȘme espace de stockage, c'est la personne en charge de dĂ©ployer qui fera les gestes de configuration nĂ©cessaires pour que les composants adressent la mĂȘme cible technique.
Espaces de stockageâ
Un espace de stockage est reprĂ©sentĂ© par un schĂ©ma de stockage qui dĂ©crit notamment sa structure. Ce schĂ©ma de stockage peut ĂȘtre dĂ©ployĂ© autant de fois que souhaitĂ© = en autant d'espaces de stockage.
Un schéma de stockage doit intégrer un schéma de données pour exister.
Par exemple:
- Il n'est pas nécessaire de créer un schéma de stockage pour un répertoire S3 qui n'aurait pas de données initiales à déposer manuellement et pas de sources externes à raccorder.
- Il est nĂ©cessaire de crĂ©er un schĂ©ma de stockage pour un rĂ©pertoire S3 qui doit ĂȘtre raccordĂ© Ă une source. Le schĂ©ma contiendra principalement la documentation permettant le raccordement.
- Il est nécessaire de créer un espace de stockage pour une base de données PostgreSQL qui doit initialiser un ensemble de tables, trigger ou vues car l'espace de stockage par défaut est une base de données vierge.
Composantâ
Un composant offre un service unitaire (Collecte / Transformation / Ecriture / API / IHM). Un composant inclut systématiquement au moins 1 artefact (jar ou image docker).
Versions et cycle de vieâ
Les montées de version sont dissociées pour chacun des objets. Ainsi chaque composant et schéma de stockage évolue au rythme qui lui correspond.
Toutefois :
- Un composant monte de version à chaque fois que l'un de ses artefacts évolue ;
- Une application monte de version à chaque fois qu'une de ses dépendances monte de version ou que sa documentation est ajustée.
Il n'est pas recommandĂ© de faire Ă©voluer un objet qui n'a subi aucune modification pour garder une cohĂ©rence dans les numĂ©ros de version des parents. Chaque objet d'une application peut ĂȘtre rĂ©utilisĂ© par une autre application : cela ne doit pas entrainer une duplication de l'objet.
Constitution d'une applicationâ
Ce paragraphe a pour objectif de présenter les bonnes pratiques de développement d'une application dans le contexte ARTEMIS.IA :
- identification des espaces de stockages utiles ;
- identification des ingestions de données de l'application ;
- identification des traitements du datapipeline ;
- identification des IHM exposées ;
- identification des composants (et repository git associés) ;
- bonnes pratiques recommandées pour le design des applications ;
- documentation et packaging Ă produire.
Documentationâ
Le Manuel prĂ©sente les rĂšgles d'Ă©criture de la Chart Helm d'une application et de ses extensions SAp pour que l'application puisse ĂȘtre activĂ©e
au sein de la plateforme.
La Chart Helm d'une application doit respecter quelques rÚgles de base décrites dans les différentes pages de la documentation.
Une application qui utilise les services d'une autre application ou d'un Espace De Stockage de la plateforme doit dĂ©clarer ses prĂ© requis par l'intermĂ©diaire d'un fichier kosmos.yaml se trouvant au mĂȘme niveau que sa Chart. Le dĂ©tail de l'organisation du dossier d'une chart est explicitĂ© dans un chapitre dĂ©diĂ©.
Les services offerts par une application ou par un Espace De Stockage sont quant à eux décrits dans une CR KosmosInterface.
Les Values de la Chart peuvent ĂȘtre modĂ©lisĂ©es pour ĂȘtre rĂ©cupĂ©rĂ©es au travers d'inventaires spĂ©cifiques Ă la plateforme ou de propriĂ©tĂ©s spĂ©cifiques
aux interfaces déjà activées.