我的一个主要应用程序托管在 Windows Azure 的网站平台上。考虑到周五的停机时间,我意识到我需要一些东西来让我的应用程序在 Azure 再次停机时保持在线。
我当前的设置是 1 个 WAWS 实例(自动缩放设置为 1..3 个实例@70% CPU)和 SQL Azure 作为后端。
我真的很喜欢 WAWS 的自动 git 部署功能,而且宁愿保留它(据我所知,Web Roles 无法轻松地自动部署),但我可以使用哪些其他解决方案来实现大多数客户端的 HA + 更低的延迟?
我考虑过以下场景:
- 保持原样
- 使用相同的自动部署脚本生成其他区域[但我必须以某种方式镜像我的 SQL Azure DB]
- 迁移到具有流量管理器的 Web 角色/虚拟机并自行托管我的数据库 [保留 SQL Server 或迁移到 MariaDB]
- 迁移到 Amazon、Rackspace 或任何允许我保持正常运行时间/性能的地方
你有什么建议?
答案1
首先:请记住全部云提供商有中断。Windows Azure 并没有像您所说的那样“陷入困境”。特定区域中的一组服务在得到缓解之前发生了中断。更换云提供商并不能保护您免受中断的影响。只需对其进行搜索,您就会发现多个云提供商的大量中断详细信息。
运行服务的高可用性总是有代价的,优先级将特定于应用程序。如果是 Web 层,那么您可能确实需要考虑在多个地理位置托管。如果是后端处理层,有时让服务离线是“可以的”,只要请求排队即可。如果是存储系统(防止消息排队),也许可以使用不同数据中心的备用队列来实现冗余目的。
不幸的是,没有一个单一的正确答案,因为它是特定于应用程序的。