项目在本地运行, 与发布到云端相比, 肯定存在一些区别. 那应该防止出现一些不必要的问题呢?
1. 费用
http://www.windowsazure.cn/zh-cn/offers/ms-mc-azr-44p/
http://www.windowsazure.cn/pricing/overview/
在使用****Windows Azure 服务期间,您预留的联系人邮箱将每周收到剩余金额及有效期的提醒邮件。您也可以随时登陆计费网站查看剩余金额及有效期,建议您根据实际使用量进行评估,预留充足的余额。
2. 虚拟机中的数据存储
Azure 上的虚拟机上有两种磁盘,一种是存储在 Blob 存储,是永久性稳定的存储空间,一种是存储在虚拟机所在物理机磁盘上,是临时存储空间。前一种由于使用了 Blob 存储,其数据会按照 Blob 的存储策略在本地存 3 份,并在异地保持一份镜像,其数据的可用性和可靠性都很高,虚拟机通过网络访问这些 Blob 存储,不依赖于特定一台物理机。后一种依赖于物理机,如果物理机故障或进行维护,这个存储可能会被清空。那么,如果使用虚拟机的时候不分清楚磁盘类型,就会导致数据丢失。**于此,强烈建议不要将任何重要数据存在D盘。因为D盘是临时存储,虚拟机重启时D盘数据将被清除且不可恢复。** 如果需要将数据存储到虚拟机上,建议附加一个数据盘,将数据存在数据盘上。
详情请参考:
http://msdn.microsoft.com/zh-cn/library/azure/dn790303.aspx
http://blog.csdn.net/azurechina/article/details/38664673
Azure 不同类型的虚拟机的磁盘类型如下:
Windows 虚拟机:C 盘(系统盘)是 Blob 盘,D 盘是临时盘
Linux 磁盘:sda1(根目录)是 Blob 盘,sdb1(/mnt/resource)是临时盘
3. Load balance 环境
Azure 网站、云服务和虚拟机都具有负载均衡功能。对负载均衡,需要注意的方面之一是它对 Session 的处理。传统的负载均衡器有具有 Session sticky 的机制,会根据用户的 session 信息将用户请求转发到固定的一台机器上,当应用程序在服务器端存储 session 信息,客户端与服务器交互就会顺畅,如果没有这个机制,就会发生用户 session 丢失和应用逻辑异常。然而在 Azure 中,云服务和虚拟机的负载均衡器是纯网络层面,其负载均衡机制是通过类似轮询将请求发送给后端的服务器,这就要求后台服务器是无状态的,也就是说, 期望的结果是无论将客户请求发给任何一台服务器,都可以得到正确的处理。如果现有的应用是有状态的,有两种解决方案:
- 将 session 信息在所有服务器间共享。具体实现方式包括:分布式缓存,session 持久化(.NET 和 Java 都支持用数据库存储 session 信息,而 Azure 还支持用 Cache 和 Azure 存储持久化.NET session 信息 ( http://blogs.msdn.com/b/cie/archive/2013/05/17/session-state-management-in-windows-azure-web-roles.aspx )。
- 在虚拟机上自行配置负载均衡集群。微软的 MSOpenTech 团队提供了一个自动配置 IIS ARR 的方法,可参考该文档 ( Https://github.com/MSOpenTech/WindowsAzureToolkitForEclipseWithJava/tree/master/Utils/ARRConfigurationAgent )。
网站服务的负载均衡稍有不同,它的负载均衡是由 IIS ARR 实现,因此它原生支持 session 粘滞。其实现原理是,在每个响应里面添加 ARRAffinity 这个 cookie,下次同一个用户的请求就会被识别,然后发送到上次的服务器上。可以理解为无论应用是否主动写入 cookie 或是存取 session,IIS 都会为每个用户保持服务器的绑定关系。可以查阅以下文章获得详细内容
http://azure.microsoft.com/zh-cn/documentation/articles/web-sites-dotnet-session-state-caching/
4. 请问 SSD 存储有什么突出优势?
微软发布了一个新的虚拟机系列,称为 D- 系列。它提供了更好的内存、CPU 及更快的 I/O。在云上运行像 OLTP 和 NoSQL 数据库这种 I/O 密集型工作负载时,客户经常会发现性能限制。与基于磁性介质的传统存储相比,SSD 存储提供了更高的 IOPS。新的 D- 系列虚拟机比 A- 系列虚拟机快60% 。这个系列的虚拟机提供了高性能和高可扩展性。
5. 公共 IP 和实例级别 IP 的区别?
- 公共 IP(VIP) 这种 IP 是针对 VM 所在的云服务的公共 IP。在 Azure 中,每个 VM 包含在云服务(Cloud Service)中,而 Cloud Service 存在 load balance (负载均衡)。对于一个云服务中的虚拟机来说,当使用 VIP 去访问云服务时,负载均衡器会根据端口将我们导向不同的虚拟机 (如果想访问其中的虚拟机, 使用 vip+port 即可)。
可以通过 MSDN 文档了解更多详情( http://msdn.microsoft.com/zh-cn/library/azure/dn690120.aspx )。
2. 实例级 IP 这种 IP( http://msdn.microsoft.com/zh-cn/library/azure/dn690118.aspx )是直接指派给虚拟机,可以直接通过这种 IP 连接至 VM,同时可以开启多个端口和使用动态端口。
6. 针对保留 IP 地址的计费时钟何时开始和停止?
针对保留 IP 地址的计费时钟将从获取保留 IP 地址后的第 2 个小时开始,以便留出时间来相应分配 IP 地址。在删除保留 IP 地址后计费时钟将停止。
7. 如何保证 SLA?
当在不同的故障域和升级域中部署两个或更多角色实例时,面向 Internet 的角色将至少在 99.95% 的时间内能够建立外部连接。详情参考 SLA 详情( http://www.windowsazure.cn/zh-cn/support/legal/sla/ )和 Azure 的更新域和故障域的详细信息( http://msdn.microsoft.com/zh-cn/magazine/hh781019.aspx )。
8. 关于 Azure Storage
在构建应用程序的过程中,常常也要考虑存储成本,以下是大家会感兴趣的关于存储服务的带宽、事务和容量这三种存储成本以及收费方式 ( http://blog.csdn.net/azurechina/article/details/40377091 )。
9. 有效的诊断信息
当发布在云端的应用程序出现问题时, 项目的诊断信息和托管服务器上的诊断信息将有助于了解问题出现的原因, 详情可以参考:
http://msdn.microsoft.com/zh-cn/magazine/ff714589.aspx
10. 各种服务的最佳实践
云服务 Cloud service 的最佳实践案例:
http://technet.microsoft.com/zh-cn/magazine/jj717232.aspx
http://msdn.microsoft.com/library/azure/jj717232.aspx/
Azure website 的最佳实践案例:
http://channel9.msdn.com/Shows/Azure-Friday/Azure-WebSites-Best-Practices
http://azure.microsoft.com/blog/2014/02/10/best-practices-windows-azure-websites-waws/
VM 的最佳实践案例:
Azure storage 的最佳实践案例:
http://channel9.msdn.com/Events/Build/2014/3-628
SQL Azure 的最佳实践案例:
http://blogs.msdn.com/b/sqlcat/archive/2010/05/28/sql-azure-customer-best-practices.aspx
如果有任何疑问, 可以访问 MSDN 社区,由专家来解答 Windows Azure 相关的各种技术问题,或者拨打世纪互联客户服务热线 400-089-0365/010-84563652 咨询各类服务信息。
评论