web-dev-qa-db-fra.com

Est-il recommandé d'utiliser Database comme conteneur dans l'environnement de production?

En supposant que nous utilisons une architecture de micro-services pour un produit et que nous décidons d'utiliser le modèle "Base de données par service" et de le déployer dans des serveurs de cloud, par fournisseur comme AWS. Il est pratique d’exécuter des bases de données en tant que conteneur pour les environnements de développement et de test. 

Mais peut même être mis en œuvre pour l'environnement de production! Si tel est le cas, dans quelle mesure serait-il sûr? Ou convient-il plutôt d'utiliser une solution cloud comme AWS RDS-DB !!

7
Shruthi Bhaskar

Nous conteneurisons notre base de données en production (application d'entreprise sur site). Beaucoup le font. C'est parfaitement stable et le déploiement est beaucoup simplifié. Bien sûr, notre base de données n'est pas stressée. nous avons affaire à des centaines d'utilisateurs simultanés, pas des dizaines de milliers. Nous nous assurons simplement que le conteneur en a assez RAM et est bien surveillé.

Si nous devions consacrer un entier VM à la base de données seule, alors oui, je passerais au menu fixe.

3
Alkaline

Comme vous utilisez un modèle de base de données par service pour Microservice, la solution idéale en production peut être une instance AWS RDS pour une base de données. Vous avez maintenant deux approches:

  • Vous pouvez créer une seule instance RDS et avoir différentes bases de données pour différents services sur le même système RDS, cela vous fera économiser beaucoup, mais vous devez vous occuper des connexions à la base de données et charger la base de données sur laquelle vous devez choisir RDS. type d'instance comme 4xlarge, etc., il est préférable que le type d'instance fournisse davantage de connexions et de charge de base de données qu'il puisse gérer efficacement.

  • La deuxième solution peut être la création de plusieurs instances RDS et le nombre d’instances RDS sera équivalent à votre nombre de microservices, car chaque service utilisera une instance RDS de manière indépendante pour sa base de données. Cette solution n’est pas efficace, elle entraînera des coûts élevés et cette solution sous utilisera des instances AWS RDS.

1
ABHAY JOHRI

Selon le lien ci-dessous, l'utilisation d'un conteneur de base de données dans Production n'est pas une bonne idée. Mais comme j'ai expérimenté; si vous isolez votre conteneur de votre application, mettez régulièrement à jour votre conteneur et gérez également des éléments de réseau, il ne semble pas y avoir de problème.

Lien: https://www.quora.com/Is-it-not-advisable-to-use-database-in-Docker-container

1
anilsansak

Cet article de blog } _ énumère certaines des raisons pour lesquelles vous ne devez pas exécuter de bases de données de production dans des conteneurs. Il fait également référence à un autre article de blog _ décrivant des problèmes liés à la mise à jour de pilotes de stockage fixes et instables.

Les points principaux ici pour moi se résument à ceci:

  • Pilotes de stockage Dodgy. Cela peut poser moins de problèmes lorsque vous écrivez votre état de base de données sur le système hôte, mais Docker, par exemple, encourage explicitement les utilisateurs à utiliser des volumes exactement comme cela (voir la docs : données persistantes dans Docker "). Cela peut fonctionner correctement dans des circonstances normales, mais qu'en est-il des cas Edge tels que les pannes de courant ou les erreurs de lecture, par exemple?

  • La gestion des bases de données en production est difficile. De nombreuses entreprises ont recours à des administrateurs de base de données à plein temps pour garantir le bon fonctionnement des bases de données de production. Le paradigme de devops (chaque développeur crée une pléthore de serveurs de base de données dans des conteneurs), il est presque impossible pour un administrateur de base de données de faire son travail. C’est le cas si le DBA a même accès à ces bases de données.

En conclusion: les conteneurs conviennent à certaines tâches et sont une mauvaise idée pour d'autres. L'exploitation de bases de données de production dans des conteneurs est l'une de ces mauvaises idées.

1
Richard