如何计划向 Azure 网站迁移

原文地址:https://azure.microsoft.com/blog/2014/08/27/how-to-plan-your-migration-to-azure-websites/

向云平台迁移可能是一项艰巨的任务。使用 Azure 网站作为托管解决方案时,需要考虑一些关键问题。这一部分将展现向 Azure 网站迁移时需要了解的平台知识。

1. 全球发布

Azure 网站可在全球多个数据中心使用。这样可以更轻松地使用网站,以便满足与您相关的区域市场的需求。要查看支持的区域列表,请单击此处

2. Azure 网站包含内置负载平衡器

根据基于 IaaS 的解决方案设置网站时,需要使用 Ngnix 或其他解决方案来设置负载平衡器。使用Azure网站时,无需担心在多个虚拟机中实现站点负载平衡的问题,您可以将它与 Azure 流量管理器 结合使用,从而实现各区域的负载平衡。请注意,如果使用Azure网站的自由层,那么将不支持负载平衡器。

因此,您无需为网站构建自定义负载平衡器。

3. Azure 网站使用 IIS Web服务器

Azure 网站在基于 Windows 的基础结构上运行,并使用IIS作为 Web 服务器。它支持以下框架: .NET PHP Node JS Python Java Azure 网站充分利用 IIS 的所有安全、诊断和性能功能。要了解有关 IIS 的更多信息,单击此处

4. 理解 Azure 网站 SLA

构建于 Azure 网站上的任何应用程序都无法假定托管服务100%可用。阅读并理解 Azure 网站 SLA,Azure 网站将为您的网站提供99.9%的月可用性。

如果使用与您的应用程序(如Database、Azure Storage、CDN服务、YouTube服务等)紧密耦合或松散耦合的其他Azure服务或非Azure服务,那么还需要理解服务SLA。

如果每月要实现超过99.9%的正常运行时间,您必须牢记哪些组件可能发生故障,明白您可以管理网站故障转移或故障恢复。

5. 每价格段特色

Azure 网站分四级提供:免费版、共享(预览)版、基本版和标准版。

  • 网站共享(预览)版:预览期间共享版的价格是0.013美元/小时/网站实例(约 10 美元/月)。该价格享受33%的预览折扣。
  • 网站基本版和标准版:基本版和标准版提供多种实例大小,并可扩展以满足不断变化的容量需求,基本版(单个小实例)56 美元起,标准版(单个小实例)75美元起。

有关每价格段特色的详细信息,请单击此处

6. 您无法访问托管网站的虚拟机

Azure 网站会为您提供托管应用程序的基础结构,但您无法真正连接到虚拟机并访问计算机。这意味着,您无法在这些计算机上安装任何软件。您的应用程序不在物理设备而在虚拟机上,且在虚拟机发生故障时能够向上、向下扩展或更换。

因此,您的应用程序必须保证无状态才能在此类环境中运行。

7. 自动伸缩

自动伸缩功能适用于标准网站模式。在无需任何手动干预的情况下伸缩网站是一种经济高效的方法。自动伸缩无需手动增加或减少网站的实例数,而是根据传入站点流量在指定范围内为您的网站选择适当的规模。要了解详细信息,请参阅如何配置自动伸缩

8. Azure 网站文件服务器由所有实例共享

文件服务器由配置网站使用的所有实例共享。使用多个实例时,如果要在某台计算机上缓存一些会话数据,并非所有实例都可以查看这些数据。

视应用程序要实现的目标而定,当需要保证运行网站的所有虚拟机实例数据保持一致时,为应用程序使用永久存储;如果不需要,可以将数据存储到虚拟机实例的%TEMP% 文件夹中。

9. 缓存

Azure 网站为PHP应用程序提供了 Wincache、IIS服务器级别缓存(输出缓存),可用于能在面向可使用的PHP 应用程序的 IIS 和 Wincache 上托管的任意应用程序。

大部分时候缓存是足够的,但如果需要执行更高级别的缓存,将需要使用:

10.阶段式部署和发布

Azure网站提出了阶段式部署和发布的概念,其中站点Slot可供Microsoft Azure网站上运行的标准模式站点使用。它支持您为每个默认生产站点(现已成为生产Slot)创建开发或临时站点Slot,而且切换Slot不会产生任何停机时间。要了解详细信息,请参阅如何配置和部署站点Slot

11. SSL

当有人使用HTTPS访问您的网站时,系统将通过安全套接字层(SSL)加密来保护网站与浏览器间的通信。这是保护通过 Internet发送的数据的最常用方法,这样可以使访客确信自身与您的站点间的来往事务安全可靠。本文对如何为Azure网站启用HTTPS进行了讨论。要了解详细信息,请参阅如何配置 SSL

12. 自定义域

创建网站时,Microsoft Azure 将在azurewebsites.net域中提供友好子域,这样您的用户即可使用URL(如https://<mysite>.azurewebsites.net)访问您的网站。另外,还可以关联自定义域名(如contoso.com)与您的网站,以便为用户提供更易识别的域名。要了解详细信息,请参阅如何向 Azure 网站添加自定义域

13. 带有WebJobs的后台进程(预览版)

Microsoft Azure网站支持您通过以下三种方式之一在网站中运行程序或脚本:按需、持续或按计划。除非您希望启用“始终在线”功能,否则无需付出任何额外成本即可使用Microsoft Azure Webjobs。要了解详细信息,请参阅如何为 Azure 网站创建Webjobs

14. 自动恢复

为网站启用此功能将有助于您的站点自动检测特定条件并进行恢复。作为“始终在线”功能的一部分,其中包含一些增强功能,您将可以通过它们自动循环利用托管 Web 应用程序的工作进程(您的虚拟机实例)。要了解详细信息,请参阅如何启用自动恢复

15. 备份与还原

Azure网站备份与还原功能可让您轻松地手动或自动创建网站备份。您可以将网站还原为上一个状态,也可以基于其中一个原始站点的备份创建新的网站。

有关使用备份还原Azure网站的信息,请参阅还原 Azure 网站。有关配置备份的详细信息,请参阅备份 Azure 网站

16. 使用SendGrid服务作为 SMTP

默认情况下,网站上不启用SMTP。如果您的 Web 应用程序需要电子邮件服务,可以购买SendGrid服务, 该服务从免费计划(每月允许发送2500封电子邮件)到更高级的计划应有尽有,如此处所示。要了解详细信息,请参阅如何配置 SendGrid

Azure 网站提供的清单

  • 选择要托管站点的数据中心
  • 了解Azure 网站托管计划以确定是所有网站均使用相同的托管计划,还是根据应用是生产站点或临时站点进行区分
  • 选择部署解决方案以满足您的需求:GITWeb 部署BitbucketDropBoxGithub或者使用GIT、Web 部署 API构建的自定义解决方案
  • 如果应用程序需要,则设置所有相关组件(如缓存、数据库等)
  • 为您的 Web 应用程序设置开发/测试网站
    • 使用站点Slot,或者
    • 根据您的需求为开发站点创建单独的网站,例如,如果您的开发应用程序使用不同的数据库、网站模式或托管计划等
  • 为您的 Web 应用程序设置临时网站
    • 使用站点Slot,或者
    • 根据您的需求为开发站点创建单独的网站,例如,如果您的开发应用程序使用不同的数据库、网站模式或托管计划等
  • 设置生产 Web 应用程序。我们建议在基本版或标准版中运行生产应用程序以实现收益最大化。为Azure存储帐户启用Web服务器记录可调试生产站点、临时站点和开发站点的应用程序问题
  • 在您的生产站点上设置自定义域
  • 如果您的应用程序需要大量媒体内容(如图像和视频),请使用其他服务(如Azure存储)来托管媒体内容和Azure媒体服务(.NET 应用)或者使用第三方服务(例如如使用Php/Python/Node JS/Java应用程序进行YouTube视频流传输)
  • 如果您的应用程序要求在所有站点(开发站点、临时站点和生产站点)上使用 SSL,请设置 SSL
  • 在所有网站上设置自动恢复
  • 使用备份功能设置自动备份,或者使用Web Jobs 或 Azure VM自行构建解决方案以托管备份 Web 服务进程
  • 在您的生产站点上设置自动伸缩。为保障开发站点和临时站点的经济高效性,无需在这些站点上启用自动伸缩,可在开发站点或临时站点扩展和性能测试期间启用该功能。

小结

为充分实现经济高效的可扩展容错解决方案(如Azure 网站)的优势,需要留意许多体系结构和设计注意事项。本文侧重介绍最佳实践并理解Azure网站提供的平台的各个主要方面,这将有助于提高部署和无障碍操作的成功率。