我正在为一个新的软件开发小组设置服务器环境,其中将包括4个testing环境。
这些是Web应用程序,所以每个环境都有一个应用程序服务器和一个数据库服务器。
我打算购买两台物理服务器(例如每台12GB左右的6核CPU),我认为虚拟化在这里是合适的。 考虑到这一点,我想到了一些可以组织虚拟化战略的方法:
– 按服务器angular色分隔 :服务器1拥有所有的应用程序服务器,每个应用程序服务器都在它们自己的客户VM中 服务器2拥有所有的数据库。 要么
– 与环境隔离 :服务器1具有适用于两种环境的VM,VM包含应用程序服务器和数据库服务器。 服务器2还将包含两个testing环境,具有相同的样式(应用程序服务器和数据库在同一个VM中)。
我在一台服务器上的所有应用程序服务器以及另一台服务器上的所有数据库中看到的优点是,对于数据库服务器(运行多个数据库的一个实例),我可能会更有效率。 但另一个选项似乎更容易pipe理(归档/恢复将包含在单个虚拟机中)。
任何build议? TIA。
我会倾向于你的第二个想法。 这不仅具有易于pipe理的优点,还可以相对均匀地分割您的I / O。 如果一个使用不足的虚拟机主机运行前端应用程序,然后猛然离开后端数据库虚拟机和主机,将是一个巨大的浪费资源。 这将使您的testing更容易一些,而无需担心由于虚拟主机过度工作而导致性能下降的问题。
将它们全部作为虚拟机运行。 它们在testing环境中更容易pipe理,因为您可以使用快照和/或备份将整个环境恢复到某个时间点。
至于你如何组织虚拟机,生产是什么样子? 尽可能多地做到这一点。
就个人而言,我更喜欢做更像#2的东西,但总共有8个虚拟机:4个运行数据库,4个作为Web服务器。 然后你可以在每个主机上运行两个环境,或者在一个和所有dbs上运行所有的web。 要么会没事的。