我可以了解Dockerizing无状态服务后面的本金,如Web服务器,AppServers,Load Balancer等...如果您在一组机器上运行这些服务,则非常容易将这些容器移动到低电平高架。我不明白的是包含集装箱数据库的目的?数据库连接到在特定硬盘中持久的数据卷。由于状态,实际移动数据库容器并不容易,而且不高效。所以任何人都可以看到为什么换下数据库可以有用?

有帮助吗?

解决方案

“所以任何人都可以看到为什么换下数据库都可以有用?”

keeto好问题。集装箱数据库的主要原因之一是,您可以为整个应用程序提供相同的一致性环境,而不仅仅是无状态部分,横跨开发,暂存和生产。一致的环境是Docker的承诺之一,但是当您的数据库生活在此模型之外时,在您的测试中会有很大的差异。此外,通过对您的数据库以及其余的应用程序进行集装箱,您更有可能能够在托管提供商之间移动整个应用程序(从AWS到Google Compute)。例如,如果您使用Amazon RDS,即使您可以将网络节点移动到Google,您将无法移动数据库,这意味着您依赖于云提供商。

集装箱数据服务的另一个原因是性能。这对于服务提供商(所有数据库为服务提供者来说尤其如此,例如 Rackspace云数据库 - 在容器中运行),因为容器允许您提供使用虚拟化无法提供的服务保证,并且每物理机器运行一个数据库不是在经济上可行的。您没有运行数据库托管服务的机会,但如果您在裸机上运行并希望使用用于处理隔离的容器,而不是VM,则此类比具有类似的意义。由于在VM中运行DB时,您将为数据库提供更好的数据库表现更好的性能。

我并不是说你应该容纳你的数据库,但这些是它会有意义的原因。

完整披露,我为ClusterHQ工作,那个标记O'Connor的新项目在他的答案中提到。我们有一个名为flocker的OpenSource项目,使迁移数据库更容易迁移数据库及其在主机之间的卷,以便您在问题中提出的否定的否定的益处不完全超过。

其他提示

这是一个很好的线程,并且最近的SQL Server克隆的进度将增加使用克隆的容器的额外功能。这解决了大数据集的一些问题问题。完整披露,我为Windocks工作,我们已经释放了2.0,使用具有集成数据库克隆的SQL Server容器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top