在过去的一年里,我发现几乎每个云提供商的某些数据中心都出现了严重的中断。例如。我在美国中南部地区有一些东西,刚刚经历了超过 3 天的存储服务中断。 (幸运的是,我在 Amazon S3 上满足了大部分存储需求)。
我想知道公司如何拥有多个数据中心,同时保持所有数据同步并实现自动故障转移。这是自定义编码还是有特定的工具/方法可以做到这一点?
为了详细说明,我使用
- Azure 存储 Blob(仅适用于临时文件)
- Amazon S3 用于主要数据存储
- SQL Azure
- 虚拟服务器(网络角色)
- AppFabric 缓存
我可以看到缓存和 Azure 存储实际上并不重要,因为它们只托管可以轻松重新生成的临时文件和数据。虚拟服务器仅运行一个 ASP.NET 网站,因此您可以随时随地启动其中之一。但是我需要将 SQL 数据库指向本地区域。
我遇到的主要问题是如何让 SQL 数据库在多个区域可用并同步?
第二个问题是如何在 Amazon S3 中提供冗余。我有一个带有 CloudFront 的 CDN,但这只是一个 CDN,并非完全冗余。或者说值得吗?
最佳答案
在 Windows Azure 上,一个技巧可能是使用流量管理器(通过旧的管理门户)和 SQL 数据库数据同步。
使用流量管理器,您基本上就拥有了一个故障转移 DNS。也许不需要同时运行两个位置,但在发生全面中断的情况下,流量管理器允许您在第二个位置启动服务,而无需进行复杂的 DNS 更新。
数据同步将同步两个或多个位置上的数据库。不是实时的,但如果您想要一个灾难恢复站点并且最终可以接受少量数据丢失,它可能会有所帮助。
检查http://www.slideshare.net/maartenba/architectural-patterns-for-the-cloud了解更广泛的故事。
附带说明:这始终是您必须弄清楚的事情。 Windows Azure 和 Amazon 提供了大量的构建 block ,但希望您根据需要和所使用的服务将它们组合起来。
关于asp.net - 在多个位置进行 Windows Azure 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14119544/