GitLab
Personnel • Rouen
2017-2024 (7 ans)
Mon utilisation de GitLab
Historique
J’ai débuté ce projet en 2017 dans le but de standardiser mes déploiements Docker sur mon serveur hébergé chez Scaleway. Je l’ai utilisé pendant 7 ans, effectuant les montées de versions majeures jusqu’à son arrêt en 2024, faute de temps pour pouvoir entretenir mon infrastructure correctement.
Utilisations
- Fork de projet public, pour archivage ou pour modification
- Déploiement de services, pour mon usage personnel ou pour ceux d’usagers tiers.
Organisation
J’y exploitais les fonctionnalités d’intégration continue (CI/CD) de Gitlab et la création de template Docker pour créer des déploiements reproductibles et réutilisables à souhait. Une application web gérée par la plateforme pouvait donc être déployée autant de fois souhaité, où chaque client disposait de ses environnements propres.
Gestion des Docker Stack
Un projet pour la gestion des Docker Stack :
- Chaque service pris en charge est un sous-projet
- Toujours construit de la même manière :
- Un sous-dossier docker-stack, contenant deux fichiers :
- dev.docker-stack.yaml : permet de définir des surcharges lors des déploiements
- prod.docker-stack.yaml : idem, spécifique à la production
- L’ensemble des fichiers nécessaires au fonctionnement et à la conduite du projet
- Un sous-dossier docker-stack, contenant deux fichiers :
Gestion des clients / usagers
Un projet par usager :
- Chaque service déployé est un sous-projet
- Ces sous-projet intègrent les Stack en tant que submodule git dans un dossier “docker-stack”
- Ils contiennent deux fichiers :
- dev.docker-stack.yaml : permet de définir des surcharges demandées par le client
- prod.docker-stack.yaml : idem, spécifique à la production
- Les variables d’environnements sont définies à ce niveau :
- URL du service, feature flag à activer, etc.
- les configurations spécifiques via Docker Config
- et les Docker Secret
- Chaque branche déclenche un pipeline de déploiement, permettant de tester rapidement et facilement
- Les pipelines de déploiement exécutent les 2 fichiers :
- dev.docker-stack.yaml
- docker-stack/dev.docker-stack.yaml
- Le pipeline de production exécute les 2 fichiers :
- prod.docker-stack.yaml
- docker-stack/prod.docker-stack.yaml
- Les branches sont construites en suivant GitLab Flow, permettant la gestion des environnements et leurs historiques
- L’utilisation de git submodule permet de déployer les nouvelles versions des Stack au moment opportun et s’intègre dans GitLab Flow Cette organisation permet l’industrialisation des Stack tout en offrant une grande flexibilité et la possibilité de personnaliser le service déployé pour chaque client.