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