Question

Je peux comprendre les Benfits derrière la dockerisation des services apatrides, tels que des serveurs Web, des applspervers, des équilibreurs de chargement, etc. Si vous exécutez ces services sur un groupe de machines, il est très facile de déplacer ces conteneurs à basaérien.Ce que je ne comprends pas, c'est le but de la conteneurisation de bases de données?Les bases de données sont connectées à un volume de données persistant sur un disque dur spécifique.En raison de l'état, il n'est pas facile et non efficace de déplacer réellement le conteneur de base de données.Alors, quelqu'un peut-il voir pourquoi la dockerisation d'une base de données peut être utile du tout?

Était-ce utile?

La solution

"Alors que quelqu'un peut voir pourquoi la dockerisation d'une base de données peut être utile du tout?"

Bonne question Keeto. L'une des principales raisons de la conteneurisation de vos bases de données est de pouvoir avoir le même environnement cohérent pour toute votre application, pas seulement les parties apatrides, à travers le développement et la production. Un environnement cohérent est l'une des promesses de Docker, mais lorsque votre base de données vit en dehors de ce modèle, il existe une grande différence qui ne peut être prise en compte dans vos tests. En outre, en contaignant votre base de données ainsi que le reste de votre application, vous êtes plus susceptible de pouvoir déplacer votre application entière entre les fournisseurs d'hébergement (dire de AWS à Google Compute). Si vous utilisez Amazon RDS, par exemple, même si vous pouvez déplacer vos nœuds Web vers Google, vous ne pourrez pas déplacer votre base de données, ce qui signifie que vous dépendez fortement de votre fournisseur de cloud.

Une autre raison de conteneuriser les services de données est la performance. Ceci est particulièrement vrai pour les fournisseurs de services (toute la base de données comme offre de services - par exemple Bases de données de cloud de RackSpace - Exécutez dans des conteneurs), car les conteneurs vous permettent de fournir des garanties de service qui ne sont pas possibles à l'aide de la virtualisation et d'exécuter une base de données par machine physique n'est pas financièrement viable. Les chances que vous n'exécutez pas d'entretien des bases de données d'hébergement, mais cette analogie présente du même sens si vous courez sur un métal nu et que vous souhaitez utiliser des conteneurs pour l'isolement des processus, au lieu de VMS. Vous obtiendrez de meilleures performances pour vos bases de données en raison des E / S bien connus que vous avez suivis lors de l'exécution d'une DB dans une machine virtuelle.

Je ne dis pas que vous devriez contenir votre base de données, mais ce sont certaines des raisons pour lesquelles cela aurait un sens.

Divulgation complète, je travaille pour ClusterHQ, ce nouveau projet qui marque O'Connor mentionné dans sa réponse. Nous avons un projet OpenSource appelé Flocker qui permet de migrer beaucoup plus facilement de migrer des bases de données et de leurs volumes entre des hôtes afin que les avantages que j'ai mentionnés ci-dessus ne soient pas complètement compensés par les négatifs que vous avez soulevés dans votre question.

Autres conseils

Je ne sais pas que je suis d'accord avec votre commentaire sur l'efficacité ... Il est beaucoup plus facile de télécharger et d'exécuter un conteneur de base de données, comparé à l'installation de manière natale. La documentation Docker explique comment implémenter une séparation logique propre entre un conteneur d'état et ses données:

Mais ... vous êtes correct qu'un conteneur d'état étalé serait lié à son serveur hôte, sauf s'il y a un mécanisme de port aussi.

Une solution évidente consiste à monter un volume de stockage partagé sur tous les hôtes pouvant exécuter votre base de données.

L'article suivant décrit une solution très innovante dans laquelle un client d'un client BitTorrent est utilisé pour reproduire un conteneur de données entre les hôtes.

Enfin, un nouveau projet appelé Flocker tente de résoudre ce problème en gérant à la fois les conteneurs d'état et leurs volumes ZFS associés:

Ceci est un bon fil et les progrès récents dans le clonage SQL Server ajouteraient des capacités supplémentaires à l'utilisation de conteneurs avec des clones.Cela aborde certains des problèmes de fonctionnement des ensembles de données volumineux.Divulgation complète, je travaille pour Winks, où nous avons publié 2,0 avec des conteneurs SQL Server avec clonage de base de données intégré.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top