对于noob问题道歉,我以前从未处理过故障转移。
目前,我们有一台运行Windows Server,SQL Server,ASP.NET和单个(非常大)Web应用程序的硬件服务器。我们正在考虑将其迁移到Azure VM。
我在SLA中看到,如果我运行多个实例的Azure VM,Microsoft将仅保证99.95%的可用性,以允许失败并重新启动等。
这是否意味着我因此需要管理和维护两台服务器?例如,两个版本的SQL,每个版本都有一个数据库,还有两组ASP.NET应用程序文件?如果正确的话,这会使价格大幅上涨。
我认为没有办法将一台服务器“镜像”到另一台服务器以减少这种工作量?
此外,我们的硬件服务器上面有25,000个上传文件。我们是否需要将这些文件放在VHD上然后将它们“链接”到正在运行的任何活动服务器上,或者Azure是否自动执行此操作?或者是否必须将它们从实时服务器镜像到故障转移服务器?
任何指针都将不胜感激。我已经阅读了所有的Azure文档,但它并没有让事情变得更加清晰......
答案 0 :(得分:3)
好像你有多个主题需要照顾。
让我们从数据库开始。最简单的事情是,如果你可以将你的sql server迁移到sql azure中。比你不需要维护它并维护你应该使用的机器。 这将使您的优势在于,中央组件可以被1到多个应用程序使用。
第二个是你上传的文件。我假设您的应用程序允许上传文件以进行共享或其他内容。如果您可以将这些文件写入windows azure blobstorage,那最好的办法就是。通常这意味着您必须重写连接器,但这会集中另一个组件。 第一步,您可以使它们可用,客户可以通过链接下载它。如果没有,您可以从他们加载文件并将其交付给客户。
如果您不想重写组件,则必须使用VHD。一个VHD只能有一个租约。因此只能使用一个实例。我看到的一种常见方式是,如果应用程序启动,它会尝试“恢复”租约。 (像尝试和错误一样)
最后但并非最不重要的是您的ASP.NET应用程序。如果你有这样的应用程序,我会看看云实例。尽量不要考虑虚拟机,因为你必须要做所有的管理。虚拟机是IaaS。使用.NET应用程序应该可以轻松地转换它并部署实例。 比你没有考虑故障转移等等。只需部署2个实例,负载均衡器将完成剩下的工作。
如果您能够“外包”SQL服务器,则可以最小化ASP.net应用程序的计算机。尝试使用横向扩展而不是扩展。这意味着使用比一个大的节点更小的节点。 (如果可能的话)
如果你真的采用VM方式,你必须自己管理所有的东西,而不是你需要2个vms。您还需要3个vms,因为您没有自动负载均衡器,如果您只有2个机器,则可以将端口80导出。
HTH