Organisation des dépôts de code¶
Afin de permettre une gestion fine des versions de chaque microservice, les sources sont répartis en plusieurs dépôts Git :
zephir/
├── application
├── api-bridge
├── config-manager
├── datasource
├── documentation
├── identity-manager
├── messages-api
├── messages-web
├── python-zephir
├── saltmaster-manager
├── server-manager
├── servermodel-manager
├── web
└── zone-manager
Un dépôt pour l’application Zéphir¶
L’application Zéphir, dans son ensemble, est composée d’un certain nombre de conteneurs qui interragissent.
Pour gérer les microservices de façon cohérente, nous devons utiliser
un mécanisme d’orchestration. Cette orchestration des conteneurs est
définie dans un dépôt Git indépendant nommé application
.
C’est ce dépôt qui détermine l’« état technique » de l’application Zéphir :
- La branche
develop
référence les conteneurs de chaque microservice générés depuis leur branchedevelop
- La branche
master
référence les conteneurs de chaque microservice générés depuis leur branchemaster
Chaque microservice est un dépôt Git indépendant¶
- Les sources du microservice ;
- Les outils de compilation et installation (
Makefile
,setup.py
, …) ; - Le
Dockerfile
permet de générer le conteneur de production ; - Le
Dockerfile.Test
permet de génerer le conteneur utilisé pour les tests (installation d’outils dédiés aux tests) ; - Le
Dockerfile.Dev
permet de génerer le conteneur utilisé pour lors du développement.
Chaque bibliothèque est un dépôt Git indépendant¶
Les bibliothèques utilisées par différents microservices sont aussi dans des dépôts Git séparés afin de ne pas forcer la mise à niveau de tous les microservices lors d’un changement d’API de la bibliothèque :
python-zephir
: la bibliothèque de contrôlleur générique en pythonmessages-api
: définission des messages de l’API