【问题标题】:DOCKER environment in production生产环境中的 DOCKER 环境
【发布时间】:2019-10-14 09:53:37
【问题描述】:

我是 docker 新手,刚开始玩它。截至目前,我在生产中的应用程序设置如下:

服务器机器 1:运行 spring-boot 微服务

服务器机器2:运行redis

服务器机器 3:运行 postgres

如果我在服务器机器 1 中使用 docker 并将所有微服务作为容器运行,并在服务器机器 1 中将 redis 和 postgres 作为容器运行,这是正确的做法吗?或者我必须在所有服务器机器上运行 docker 并单独运行容器。

最佳做法是什么?

【问题讨论】:

  • 如果您将 Docker Container 视为另一个操作系统,您可以清楚地看到,您可以做到——将所有内容保存在一个服务器中,或者将它们分成单独的服务器。我个人将它们全部保存在一个服务器中,然后仅在需要扩展服务时才生成另一台服务器。这也省钱。
  • 在哪种情况下我可以添加新服务器?以及我将如何在两台服务器中连接 docker?
  • 为此,大多数人使用 Kubernetes 或 Docker swarm。这些程序将您的 docker 容器部署在多台机器上,而您无需过多地连接它们。

标签: postgresql spring-boot docker redis microservices


【解决方案1】:

刚开始时,我建议在一台机器上完成所有操作。您的数据库容器可以使用卷将数据保存到机器本身。所以当你需要切换到另一台机器时,因为1台机器速度太慢,你可以轻松地转移你的数据库数据。当开始使用超过 1 台机器来运行 Docker 时,您可能希望使用 Kubernetes 或 Docker swarm 之类的部署选项。这将简化在不同机器上设置环境的过程,因为它将由 Kubernetes 完成。

此外,当您的应用程序获得大量流量时,您可能希望切换到由 GCP、AWS、Digitalocean 等服务提供的托管数据库。托管数据库将自动扩展、频繁获取更新和备份自动地。这会给你的肩膀带来很大的负担。我个人自己使用托管数据库。

我现在的建议:使用 1 台机器,当您的应用程序获得更多流量时学习 Kubernetes。查看托管数据库(可用于 Redis 和 Postgres)。

【讨论】:

    猜你喜欢
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多