Déploiement d’une infrastructure web résiliente avec Docker

Contexte

Dans le contexte actuel où le télé-travail et les outils informatiques ont besoins d’être de plus en plus rapide et accessible rapidement, nous avions besoin d’avoir une infrastructure organisée, rapide et autonome afin d’assurer une qualité de travail au maximum.

Nos serveurs, déployés chez un prestataire externe, peuvent redémarrer ou être coupés pendant quelques minutes afin d’effectuer diverses opérations de maintenance. Dans ce cas là, notre administrateur ne devrait pas avoir besoin d’interagir avec le serveur pour que les services redémarrent correctement.

Infrastructure nécessaire

Afin d’avoir un espace de travail à la fois agréable et complet, nous avons besoin de nombreuses applications Web allant du site web sur lequel nous nous trouvons jusqu’au exécuteurs de tâche automatisées (Runners) Gitlab.

Aujourd’hui, une vingtaine de conteneurs ayant chacun une tâche bien différente sont installés :

Réalisation

Afin de créer cette architecture, nous avons mis en place une infrastructure de documents (docker-compose) en fonction de chaque service afin de les séparer correctement en cas de mise à jour ou de problème de configuration. Un gros avantage d’un fichier par service est la possibilité de mettre à jour plus rapidement ou de de redéployer les services sur un autre serveur de la manière la plus simple et efficace possible.

Un exemple de fichier docker-compose utilisé serait celui de notre Gitlab :

Ce fichier totalement autonome permet d’être copié vers un autre serveur et d’être redéployé très rapidement. Il permet également grâce à l’outil Docker de redémarrer automatiquement en cas d’erreur ou de redémarrage de la machine. Pour en savoir plus, n’hésitez pas à aller lire nos articles sur le sujet.

Les différents volumes intégrés directement au serveur permettent d’avoir un accès rapide et durable aux données et aux fichiers de configuration de l’application. Cela va également permettre au système d’effectuer des sauvegardes sur ces fichiers obligatoires au démarrage de Gitlab.

Sauvergardes

Comme indiqué dans la partie précédente, un système de sauvegarde s’ajoute au système Docker.

Ses sauvegardes sont effectuées de manière autonomes quotidiennement, hebdomadairement et mensuellement. Les copies des fichiers de Docker ainsi que les configurations et les données des conteneurs sont stockés à deux endroits différents de manière à être accessible à tout moments :

Cette double sécurité permet d’avoir toujours un accès aux données sauvegardées afin de remettre le système en état le plus efficacement possible en cas de problème.

De plus, un système de notification nous permet de savoir exactement la date de démarrage et de fin des sauvegardes, ainsi que de savoir si la totalité des données ont été transférés.

Explorer d'autres projets

Brain_Board_TOP

Carte Brain Board

Brain Board – Compute module 3 avec STM32F4 COMPUTE MODULE 3 Intégration dans une carte industrielle d’un raspberry compute module 3. STM32F4 Processeur STM32F4 cortex M4 pour la gestion des

Lire la suite »