我问这个问题是为了找出你为系统扩展做准备的最佳实践是什么,我知道基本上你不必在真正需要之前进行过度优化,最好的事情是监控服务器/系统的几乎所有方面,看看你的瓶颈在哪里,然后采取行动,但仍然如此。
我不是专家,但常识让我虚拟化我的专用服务器并分离不同的服务(也是为了更高的安全性),以便以后将它们迁移到其他物理服务器,以防我需要快速增长并将停机时间降至最低。
我很有兴趣听听您的最佳技术是什么,您正在做什么来确保当您的产品/服务获得关注时,您有足够的时间做出反应和扩展。
谢谢
答案1
可扩展性包含多种可能性。首先,我假设您在一台服务器上运行“所有东西”,就像我现在所做的那样。
由于您有一个专用的服务器,这将会更容易一些:)
如果您希望能够在发展过程中最终移动某些服务,我会查看服务器现在执行的主要功能(例如:web,mail,db,ldap,svn),并将当前服务器的硬件复制到内部/实验室机器上。
复制服务器但使用 ESX 或 Xen 或类似设备,并为每个“功能”创建一个 VM - 使用我上面的例子,那将是主机上的 5 个 VM。
假设您现有的容量比您需要的多,那么每个虚拟机都可以在您的主服务器上运行,如果您发现一个或多个虚拟机的使用频率超过了现有硬件的承载能力,您最终可以通过 Vmotion 等自动化工具将它们迁移到其他物理硬件上,或者如果您发现一个或多个虚拟机的使用频率超过了现有硬件的承载能力,则可以进行手动迁移。
一旦设置完成,添加更多物理硬件和移动虚拟机就是一件[相对]简单的事情:)
答案2
扩展的一种方法是将现有虚拟机复制到另一台物理机上,然后在两者之间进行负载平衡。这可以通过虚拟化相当快地完成。