是否建议在生产环境中使用数据库作为容器?

     2023-03-08     7

关键词:

【中文标题】是否建议在生产环境中使用数据库作为容器?【英文标题】:Is it recommended to use Database as a container in Production environment? 【发布时间】:2018-07-08 23:40:54 【问题描述】:

假设我们正在为产品使用微服务架构,并且我们决定使用“每个服务的数据库”模型,并由 AWS 等提供商部署在云服务器中。 将数据库作为开发和测试环境的容器运行是很方便的。

但同样可以在生产环境中实现!如果是这样,它会有多安全? 还是使用 AWS RDS-DB 的云解决方案是否合适!!

【问题讨论】:

devops.stackexchange.com/a/3374/210 【参考方案1】:

根据下面的链接,在生产环境中使用数据库容器不是一个好主意。 但正如我所经历的那样;如果您将容器与应用程序隔离并定期更新容器并管理网络内容,那么似乎没有问题。

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

【讨论】:

【参考方案2】:

我们在生产环境(本地企业应用程序)中将我们的数据库容器化。许多人都这样做。它非常稳定,部署也大大简化。当然我们的数据库没有压力;我们正在处理数百个并发用户,而不是数万个。我们只是确保容器有足够的 RAM 并且受到良好的监控。

如果我们确实需要将整个 VM 单独用于 db,那么是的,我会跳过 docker。

【讨论】:

【参考方案3】:

当您为微服务使用 Database Per Service 模型时,在生产中完美的解决方案可以是数据库的 AWS RDS 实例,现在您有两种方法:

您可以创建单个 RDS 实例,并且可以在同一个 RDS 实例上为不同的服务使用不同的数据库,这将节省很多成本,但您需要注意数据库连接和基于数据库的负载您必须选择 RDS 实例类型,如 4xlarge 等,更好的实例类型将提供更多连接,并且可以有效处理更多数据库负载。

第二种解决方案可以创建多个 RDS 实例,RDS 实例的数量将等于您的微服务数量,因为每个服务将独立使用一个 RDS 实例作为其数据库,这不是有效的解决方案,它会导致成本很高,而且此解决方案将无法充分利用 AWS RDS 实例。

【讨论】:

【参考方案4】:

blog post 列出了一些不应在容器中运行生产数据库的原因。它还引用了 another blog post 描述更新 docker 和不稳定存储驱动程序的问题。

对我来说,这里的要点归结为:

不可靠的存储驱动程序。当您将数据库状态写入主机系统时,这可能不是问题,但 Docker 例如明确鼓励用户为此使用卷(请参阅docs:引用:“卷是在 Docker 中持久化数据的最佳方式”)。在正常情况下它可能工作得很好,但是像电源故障或读取错误这样的边缘情况呢?

在生产环境中管理数据库很困难。许多公司聘请全职 DBA 来确保生产数据库的顺利运行。 devops 范式(每个开发人员在容器中创建过多的 DB 服务器)使得 DBA 几乎不可能完成他的工作。也就是说,如果 DBA 甚至可以访问这些 DB。

总结:容器对于某些任务来说很好,但对于其他任务来说是个坏主意。在容器中运行生产数据库是这些坏主意之一。

【讨论】:

但是为什么 DBA 不能只访问容器内正在运行的 DB 并对其进行管理呢?

生产环境中使用dockerswarm的一些建议(代码片段)

...,至少值得我们多了解一下。本文将介绍一些非常实用的建议。原文:TipsforusingDockerSwarmmodeinprod 查看详情

生产环境中使用容器的10点注意事项(代码片段)

根据gravitational/workshop/k8sprod.md的描述,提炼出关于生产环境中使用容器时需要注意的10点注意事项,作为我们的参考,有些不一定能完全做到。Anti-Pattern:MixingbuildenvironmentandruntimeenvironmentWerRight!编译打包的dockerimage和app... 查看详情

生产环境中的 Elasticsearch 配置和最佳实践

...用,最佳实践配置我们的集群以在生产中顺利运行,以及是否有其他工具或技术与Ela 查看详情

理解docker:若干企业生产环境中的容器网络方案

...用cgroups限制容器使用的资源(5)Docker网络(6)若干企业生产环境中的容器网络方案  Docker在早期只有单机上的网络解决方案,在1.19版本引 查看详情

建设kubernetes生产环境的16条建议(代码片段)

Kubernetes是用于构建高度可扩展系统的强大工具。结果,许多公司已经开始或正在计划使用它来协调生产服务。不幸的是,像大多数强大的技术一样,Kubernetes也很复杂。我们整理了以下清单,以帮助你生产环境最佳实践Kubernetes(Ku... 查看详情

生产环境中的 DOCKER 环境

】生产环境中的DOCKER环境【英文标题】:DOCKERenvironmentinproduction【发布时间】:2019-10-1409:53:37【问题描述】:我是docker新手,刚开始玩它。截至目前,我在生产中的应用程序设置如下:服务器机器1:运行spring-boot微服务服务器机... 查看详情

mysql思考触发器是否应该在生产环境中使用?(代码片段)

[1]触发器简单介绍  MySQL触发器trigger是一种存储程序,它和一个指定的表相关联,当该表中的数据发生变化(增加、更新、删除)时自动执行。这些修改数据行的操作被称为触发器事件,例如insert或者loaddata... 查看详情

mysql思考触发器是否应该在生产环境中使用?(代码片段)

[1]触发器简单介绍  MySQL触发器trigger是一种存储程序,它和一个指定的表相关联,当该表中的数据发生变化(增加、更新、删除)时自动执行。这些修改数据行的操作被称为触发器事件,例如insert或者loaddata... 查看详情

SQL Server 2008 在生产环境中的表现?

...务器的完全访问权限。这个快速引擎的工作速度(性能)是否与真正的sqlserver2008 查看详情

如何从生产环境中更新 Redshift dev/qa 环境

...因此在QA和dev上执行测试和开发变得非常困难。我想知道是否有办法在Redshi 查看详情

docker概览(代码片段)

...速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。Docker平台Docker提供了在松散隔离的环境(称为容器)中打包和运行应用程序的功能。隔离和安全性使您可以在给定主机上同时运行多个容器... 查看详情

dockermesos在生产环境的实践

...载均衡、API网关、基于Dubbo的微服务模块、缓存、队列、数据库等,目前整个集群的资源利用率也没有一个合理的规划评估,虚拟机上部署多个应用服务隔离性也存在问题,考虑到越来越多门店以及第三方流量的接入,需要考虑... 查看详情

如何在docker窗口中部署php开发环境

...HP项目会需要以下工具:Web服务器:Nginx/TengineWeb程序:PHP-FPM数据库:MySQL/PostgreSQL缓存服务:Redis/Memcache这是最简单的架构方式,在Docker发展早期,Docker被大量的滥用,比如,一个镜像内启动多服务,日志收集依旧是按照Syslog或者别的... 查看详情

docker实战——在测试中使用docker

...是使用Docker的一个最简单的场景。这个环境可以完全重现生产环境,保证开发环境和部署环境一致。下面从将Nginx安装到容器来架构一个简单的网站开始。使用Docker测试静态网站# 查看详情

生产环境容器落地最佳实践-jfrog内部k8s落地旅程(代码片段)

...往K8s旅途中起步并继续前进。本期将介绍关于在Kubernetes生产环境的最佳实践,包括::为上K8s容器云准备好应用程序在Kubernetes中获得灵活性和通用性为所有应用程序使用单一、可信和可靠的源自动部署到Kubernetes在Kubernetes中构建... 查看详情

在生产系统中使用 Hibernate 和 flyway

...hibernate。它看起来像我们想要的那样为给定的一组类生成数据库。但是,强烈建议不要在生产环境中使用hbm2ddl.auto=update。环顾四周,我看不出人们为这种情况做了什么。一旦数据库被填 查看详情

在生产环境中使用嵌入式数据库?

】在生产环境中使用嵌入式数据库?【英文标题】:Usingembeddeddatabaseinproductionenvironment?【发布时间】:2013-12-0912:25:11【问题描述】:我正在使用SpringMVC3.2Embeddeddatabase(H2)支持存储任务的实时进度、排队通知和一些临时日志。这种... 查看详情

是否可以使用 EF 迁移更新生产数据库?

】是否可以使用EF迁移更新生产数据库?【英文标题】:IsitOKtoupdateaproductiondatabasewithEFmigrations?【发布时间】:2015-06-2702:56:27【问题描述】:据thisblogpost称,大多数使用EF迁移的公司应该不会使用EF迁移更新生产数据库的数据库架... 查看详情