在单个服务器上运行多个应用程序的Docker是否是一个好的实践

72次阅读
没有评论

问题描述

有一个服务器,配置为32GB内存,i7处理器和2TB硬盘,上面运行着Docker引擎。他有大约100个开发应用程序需要迁移到这个Docker服务器上。用户想知道在单个服务器上运行所有应用程序是否是一个好的实践。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

在单个服务器上运行多个应用程序的Docker容器是可行的,只要服务器的资源足够(即内存、硬盘、CPU、网络没有问题),并且你可以接受单点故障的风险。
Docker的开销非常小,它只是在主机内核上进行命名空间隔离,并不像你在生成大量虚拟机一样。因此,在单个服务器上运行多个Docker容器是没有问题的。

方案2

尽管在单个服务器上运行多个应用程序的Docker容器是可行的,但并不一定是最佳实践。更好的做法是将应用程序分布在多个节点上,以提高可用性。
然而,如果你的预算有限,无法购买第二台服务器,那么在单个服务器上运行多个应用程序是可以接受的。但是,你可以利用开发环境中的多台机器来练习高可用性、灾难恢复以及跨多台机器运行系统的方法。
如果你打算在生产环境中运行多台服务器,并实现自动故障转移,那么在开发环境中也应该设置这样的环境。通过在开发环境中练习自动化设置和管理多台机器,你可以更好地了解自动化在生产环境中的工作原理。
在DevOps中,开发环境或测试环境不应该与生产环境有所不同,否则会导致问题。如果在开发环境中没有感受到痛苦,就无法保证自动化在生产环境中的可靠性。因此,有一个目标,通过将开发环境与生产环境相似,感受到痛苦,并在生产环境中进行相同操作,直到在开发环境中没有痛苦为止。当然,你不必在开发环境中复制整个生产环境的规模,但至少需要两台服务器,可以轻松地在它们之间转移服务,或者在它们之间运行一个高可用性的服务,这比只有一台服务器要好得多。

方案3

在单个服务器上运行多个应用程序的Docker容器并不是最佳实践,因为这样做会导致应用程序的可用性不如分布在多个节点上。但是,如果你目前的情况没有更好的选择,那么在单个服务器上运行多个应用程序也不会比你目前的情况更糟糕。

总结

在单个服务器上运行多个应用程序的Docker容器是可行的,但不一定是最佳实践。如果你的预算允许,最好将应用程序分布在多个节点上,以提高可用性。然而,如果你的预算有限,无法购买第二台服务器,那么在单个服务器上运行多个应用程序也是可以接受的。无论选择哪种方式,都需要确保服务器的资源足够,并且要注意单点故障的风险。

正文完