情况1:Django+PostgreSQL (container(
案例2:Django(container(<-connect->postgresql(container(
(这些案例在一台服务器上(
分离或性能的优点是什么?
使用第二种情况的优点如下:
- 将来可以使用负载均衡器,并部署多个连接到中央数据库的 django 应用程序。
- 你不需要担心任何开发人员是否做了任何docker文件事故,因为你的django应用程序只会受到阻碍,而不是数据库。
- 升级数据库服务器不会妨碍 django 服务器。
- 您将采用解耦的方法,而不是紧密耦合的方法。
什么时候你应该使用带有postgres和django的单个docker的第一种方法:
- 您正在构建爱好项目
- 你不想进入细节和复杂性来使用多个docker,而只专注于在django上编码。
注意:一个不是爱好项目的项目是 Omnibus GitLab
Omnibus 是一种打包运行 GitLab 所需的不同服务和工具的方法,因此大多数用户无需费力的配置即可安装它。
这是一个巨大的docker 镜像,带有一个 Dockerfile 包括:
- NGiNX
- 雷迪斯
- PostgreSQL
- 普罗 米修斯
- 领事
每当这些服务紧密耦合在一起时,保持整体模型是有意义的。
但即使在那里,您也可以选择连接到外部数据库(即。"非打包的PostgreSQL数据库",优点是与其关联的管理(备份/还原(可以委托给该外部服务。
如果您使用预打包的版本,则肯定拥有正确的版本,但您必须自己管理备份。