2009-11-10 215 views
1

我有一个跨两个Web服务器负载均衡的应用程序(很快就是三个),部署是一个真正的痛苦。首先,我必须执行数据库端,但是会破坏正在运行的生产代码 - 如果我先执行代码,那么数据库端还没有准备好,等等。负载均衡部署

我很好奇的是这里的每个人都是如何部署到负载平衡的X服务器集群的。由于从测试代码发布到每个服务器(多个服务和多个站点)大约需要10分钟,我希望有人对最佳实践有所了解。

如果这是错误的网站要求(meta绝对不适用 - 不知道如果serverfault做了,因为我是一个开发部署)我愿意重新询问其他地方。

+0

你的问题不是负载平衡 - 它与数据库版本控制。 – Jimmy 2009-11-10 00:20:14

+0

数据库版本控制是什么意思? – RubyHaus 2009-11-10 19:54:41

回答

2

我使用nant脚本和psexec来执行它们。

基本上在服务器场中有一个主服务器,它在本地复制应用程序和数据库脚本,然后在服务器场中的每台服务器上执行部署脚本,在本地复制代码,如果需要则修改它,使应用程序脱机部署代码并采取应用在线

通常情况下,应用程序是为约20秒(5个节点)

而且,我还没有尝试过,但我听到了很多关于MSDeploy。

希望这有助于

+0

有趣的,我会检查这两个。谢谢! – RubyHaus 2009-11-10 01:38:40

1

呀,如果你想与没有停机时间,你应该看看HA(高可用性)的技术来做到这一点。看看Paul Bertucci的一本书 - 我认为它叫做SQL Server High Availability或者其他的。否则,请打开“维护”页面,关闭所有应用程序服务器,首先执行数据库和一台应用程序服务器,然后进入实时并离线执行另外两台应用程序服务器。

+0

我不知道这是否会起作用 - 数据库服务器是Oracle,而且我没有SQL的dbo访问权限。我之前完成了维护工作,但这对后端处理没有帮助。 – RubyHaus 2009-11-10 01:38:06

+0

噢,我认为我在脑海中添加了“如何在没有停机的情况下执行此操作” - 对不起! 我不认为有什么“最佳做法”来做你现在正在做的事情。如果一家公司无法承担在数据库层次上对医管局的投资,他们通常会提前发送电子邮件,并提出“即将推出”页面。然后,他们不会回来,直到他们不仅部署,而且做了足够的测试才能得到满足。根据我的经验,通常是深夜。 如果你想弄清楚如何更快地获得从a点到b点的代码,也许你可以给我们更多的细节? – 2009-11-10 01:54:15

+0

我认为后面的快页面和自动脚本的组合是我未来的明证。速度部分不是太糟糕,我只需要想出一个更好的机制,而不是手动完成所有这些东西。 – RubyHaus 2009-11-10 20:01:42