我是docker的新手,并且刚刚开始使用它。到目前为止,我已经在生产环境中设置了以下应用程序设置:
服务器1:运行spring-boot微服务
服务器2:运行Redis
服务器3:运行postgres
如果我在服务器计算机1中使用docker并将所有微服务作为容器运行,在服务器计算机1中也将redis和postgres作为容器运行,这是正确的做法吗?或者,我必须在所有服务器计算机上运行docker并分别运行容器。
哪个是最佳做法?
答案 0 :(得分:3)
刚开始时,我建议在一台机器上全部完成。您的数据库容器可以使用卷将数据保存到计算机本身。因此,当您需要切换到另一台计算机时,因为一台计算机速度太慢,您可以轻松地传输数据库数据。当开始使用多于一台机器运行Docker时,您可能希望使用Kubernetes或Docker swarm之类的部署选项。这将简化在不同机器上设置环境的过程,因为这将由Kubernetes完成。
此外,当您的应用程序流量很大时,您可能希望切换到托管数据库,该数据库由GCP,AWS,Digitalocean等服务提供。托管数据库将自动扩展,频繁获取更新并进行备份自动。这将负担您很多的负担。我本人亲自使用托管数据库。
我目前的建议是:使用一台机器,在应用程序获得更多流量时学习Kubernetes。查看托管数据库(可用于Redis和Postgres)。