我正在为一个新的软件开发小组设置服务器环境,其中将包括 4 个测试环境。
这些是 Web 应用程序,因此每个环境都会有一个应用程序服务器和一个数据库服务器。
我计划购买两台物理服务器(例如,每台 6 核 CPU,12GB 左右的 RAM),我认为虚拟化在这里是合适的。考虑到这一点,我想到了几种可以组织虚拟化策略的方法:
-按服务器角色分隔:服务器 1 拥有所有应用服务器,每个服务器都有自己的客户虚拟机。服务器 2 拥有所有数据库。或者
-因环境不同而有所区别:服务器 1 拥有一个用于两个环境的 VM,VM 包含应用服务器和数据库服务器。服务器 2 还将包含两个测试环境,风格相同(应用服务器和数据库位于同一个 VM 中)。
我认为将所有应用服务器放在一台服务器上,将所有数据库放在另一台服务器上的优点是,使用数据库服务器(一个实例运行多个数据库)可能更有效率。但另一种选择似乎更容易管理(存档/恢复将包含在单个虚拟机中)。
有什么建议吗?TIA。
答案1
我倾向于你的第二个想法。这不仅具有更易于管理的优点,还可以相对均匀地分配 I/O。如果让利用率不足的 VM 主机运行前端应用程序,然后猛烈攻击后端数据库 VM 和主机,那将是一种极大的资源浪费。这将使测试变得更容易一些,而不必担心解决由于 VM 主机工作过度而导致的性能不佳问题。
答案2
将它们全部作为虚拟机运行。它们在测试环境中更易于管理,因为您可以使用快照和/或备份将整个环境恢复到某个时间点。
至于如何组织虚拟机,生产是什么样子的?尽可能让它像那样。
就我个人而言,我更愿意做类似 #2 的事情,但我总共有 8 台虚拟机:4 台运行数据库,4 台作为 Web 服务器。然后,您可以在每台主机上运行两个环境,或者在一台主机上运行所有 Web,在另一台主机上运行所有数据库。两种方式都可以。