Etat du Zéphir¶
date: | 2018-10-11 |
---|
Sommaire
Gestion des groupes et des droits¶
- une base
user
sera nécessaire pour stocker des données métier - définir une stratégie de gestion des droits
- si un utilisateur est créé dans keycloack, le zephir devra le savoir
Analyse des messages¶
l’objectif est de prendre la mesure de ce qui a été fait
message privés / messages publics
- côté UI : que du RPC
- broadcast : événement
- possiblité de s’inscrire à une liste d’événements ?
Important
tous les messages vers l’extérieur sont de type RPC
(retour d’une demande de l’utilisateur, puis exécution, puis par exemple retour de l’id du job)
description des messages¶
messages spécifiques à un domaine
.
exemple :
config
execution
n’importe quel domaine peut s’inscrire auprès de n’importe quel micro service
un domaine <-> un service
limiter au niveau de crossbar l’ins
Les messages de configuration¶
config.session.server
messages de sessions
gen_config
- id de session (classé par id)
- une configuration d’un serveur
on ne peut travailler sur la configuration qu’à travers le
gen_config
les valeurs définies ne renvoient que les valeurs qui sont saisissables
sur la partie config, il va manquer un équivalent
CreoleGet
,CreoleSet
identify.settings.get
- données du cookies dans les messages : pour l’instant l’interface a besoin du nom de l’utilisateur connecté. Il faut aller le demander à keycloak. Pareil pour tous les settings.
Messages de type server
¶
server.describe
server.describe
Messages de type
execute
server.exec.deploy
: déploiement de la configurationserver. exec.peer-connection
: message d’appairage
Messages de type servermodel
¶
un servermodel est une variante
Important
aujourd’hui, on ne peut pas mettre à jour un ServerModel
subrelease: | c’est la version |
---|
Important
les zones ne sont pas implémentées. On ne sait pas comment on va faire.
Points restant à élucider¶
Mapping entre le domaine et le microservice
Dans les messages listés, le domaine correspond.
Pour
server.delete
par exemple, quel sont le (les) message(s), et quels sont les microservices concernés ?Les messages automatiques, exemple : pour un
server.delete
un message de retour est automatiquement renvoyé.(la notification automatique est faite à l’aide d’un décorateur)
Conception d’architecture :
Faut-il déporter dans un service externe la validation par contrat des messages, les ramener dans les contrôleurs, ou bien un microservice à part pour la validation des messages ? Il y a plusieurs façon de faire, si l’api-gateway ne tient pas la charge, alors on repense l’architecture. A noter que l’api-bridge est scalable.
On est dans le « backend du frontend », il faut que l’api-gateway réponde rapidement. idée : mettre l’authentification dans l’api-bridge.
Manques¶
La documentation développeur est à étoffer et à mettre en lien avec le code.
(exemple : explications sur le code des décorateurs permettant de valider l’API à partir des contrats yaml.
La fake UI en retard par rapport au backend.
- La question des tests fonctionnels automatisés se pose.
Questions¶
- Comment dialogue-t-on avec
salt
? - Comment inclure/lier l’EAD3 avec le zephir ?
- Quel niveau de communication doit-on avoir avec les deux applications ?
Avec un id de session, on pourrait accéder directement à l’EAD3. Pour les actions groupées, se baser massivement sur salt.
La question d’un master (« zéphir établissement ») au niveau des serveur établissement se posera seulement si il est impossible de faire des actions groupées.
- Est-ce que le nebula correspond aux besoins du développeur ???
- les ressources de qualif et de dev ne devraient pas être concurrentielles.
Roadmap¶
L’UI semble être en retard par rapport au commandes possibles et aux messages du backend.
On peut simplifier nos exigences sur l’UI de manière à se ramener aux cas d’usage d’un administrateur zephir. L’ui peut être reportée dans une version suivante.
Ce qu’il reste à faire
- beaucoup de polissage
- le pipeline d’intégration continue (sachant que le pipeline n’est pas obligatoire)
- l’automatisation peut-être faite après.
- les tests fonctionnels automatisés sont contenus dans la néthode
- le process peut être délivré en parallèle
- la question de la gestion du code source (pull request)
travail sur l’organisation : le scrum tel qu’on l’applique est handicapant. (scrumban (scrum-kanban)?)
Tâches¶
- ajouter une tâche d’évaluation tornadocherry-py (dans un scénario du sprint)
- avoir la maîtrise de tous nos conteneurs (notamment postgres), afin de maitriser la montée de version
Usage de SaltStack¶
utilisations ésotériques : on se plugge sur le bus d’événement de salt
on ne fait que des run
et écouter le bus d’évènements (websockets)
un microservice qui fait toute l’interface :
- Saltmaster-manager
- Salt-api
- Saltmaster
Usage de SaltStack¶
utilisations ésotériques : on se plugge sur le bus d’événement de salt
on ne fait que des run
et écouter le bus d’évènements (websockets)
un microservice qui fait toute l’interface :
- Saltmaster-manager
- Salt-api
- Saltmaster
Note
Faudra-t-il passer par crossbar ou bien directement un appel à salt ? Au niveau des droits, le message à passer à salt doit être « final » : « execute cette commande sur cette liste de serveurs » et pas « exécute cette commande sur la liste de serveurs de l’utilisateur toto »