web-dev-qa-db-fra.com

Plusieurs conteneurs Docker pour mysql ou une instance avec plusieurs bases de données

J'ai une question concernant les meilleures pratiques d'utilisation des conteneurs Docker.

J'ai besoin d'une base de données pour chaque application que je développe. Maintenant, ma question est de savoir si je dois utiliser une instance de docker mysql avec plusieurs bases de données à l'intérieur ou dois-je créer une instance pour chaque base de données. L'inconvénient que je vois avec la création d'une instance par base de données est que je ne peux pas avoir un utilisateur qui a accès à toutes les bases de données. Je sais que c'est un pro pour des raisons de sécurité, mais lorsque j'essaie de sauvegarder à partir d'un client, je dois aller dans chaque cas pour la sauvegarde. Et plusieurs instances n'utilisent pas trop de ressources (bien que mysql utilise peut-être moins de ressources, mais l'utilisation d'instance e.x. mssql qui est plus grande peut entraîner des problèmes de ressources plus tard)

Ma question est quelle est la façon la plus courante de le faire avec docker et quels sont les avantages et les inconvénients?

26
hesyar

Docker est particulièrement adapté au déploiement de microservices. Les liens suivants présentent deux stratégies concernant l'utilisation des bases de données:

  1. Base de données par service
  2. Base de données partagée

Personnellement, je suis favorable à l'utilisation d'une seule base de données par service et je l'étends au déploiement d'instances distinctes d'un serveur de base de données. Cela garantit que les services sont faiblement couplés, si un service subit une panne de base de données, cela n'aura pas d'impact sur un autre.

25
Mark O'Connor