Docker Compose pour la production

Martin PAUCOT
Publié le 2/13/2023
Retour

Docker Compose permet de configurer très facilement un environnement composé de plusieurs containers à travers un simple fichier de configuration.

Il pourrait être tentant de déployer ce fichier sur votre serveur de production pour mettre à disposition vos services. Mais est-ce réellement une bonne idée ?

Dans cet article je vais vous partager tous les éléments pour que vous puissiez répondre à cette question.

Mais dans un premier temps il faut définir ce qu'est pour vous une production.

Qu'est-ce qu'une production ?

En réalité la définition de production est très large : c'est l'environnement utilisé pour mettre à disposition ses services à ses utilisateurs finaux.

Mais en fonction de votre besoin, votre environnement peut-être simplement composé d'un serveur qui assure l'hébergement de vos services.

Ou d'un Cluster de plusieurs serveurs qui s'adapte automatiquement au trafic, tout en assurant une haute disponibilité avec des instances dans plusieurs zones.

L'avantage de Docker Compose en production

C'est simple. D'autant plus si vous avez un environnement local de prêt : il vous suffit de mettre à jour vos images pour la production et créer un deuxième fichier de configuration pour override les paramètres du premier et le tour est joué.

Les inconvénients de Docker Compose en production

Pas de haute-disponibilité

La haute disponibilité consiste à démarrer plusieurs instances d'un même services sur différents serveurs et d'équilibrer la charge entre elles. Si un serveur ne répond plus, le trafique est envoyé sur le serveur disponible pour assurer une disponibilité constante.

Docker Compose ne permet pas d'orchestrer des containers à travers plusieurs serveurs, les services de votre environnement ne peuvent tourner sur un seul serveur.

Pas d'auto-scaling vertical

Comme Docker Compose ne peut orchestrer des containers à travers plusieurs serveurs, vous ne pouvez pas adapter automatiquement la taille de votre infrastructure en fonction de votre trafique.

Pas de déploiement sans interruption

Il existe plusieurs méthode pour déployer une nouvelle version sans interrompre vos services. Par exemple le "rolling update" démarre une instance avec la nouvelle version de votre application, redirige le trafique sur cette dernière puis coupe l'ancienne version.

Docker Compose ne permet pas de déployer de nouvelles versions sans interrompre vos services.

Pas de Healthcheck

Lorsque vous avez plusieurs instances d'un même service avec de l'équilibrage de charge il se peut qu'une instance ne réponde plus. Grâce aux Healthchecks, l'équilibreur interrompt l'envoi du trafique sur l'instance défectueuse.

Conclusion

Si vous souhaitez simplement mettre à disposition vos services à vos utilisateurs, Docker Compose peut-être la solution adéquate. Mais si vous voulez offrir la meilleure expérience possible a n'importe quelle moment de la journée et de la semaine il faudra opter pour un orchestrateur de containers comme Kubernetes ou Swarm.

Partagez cet article :

Un projet DevOps ?

Contactez-nous !
© 2023 Syneki. Tous droits réservés.
Mentions Legales