微软发布了在 Microsoft Azure 场景下实现高可用(HA)的检查列表,在这个更新版本的列表中包含了一个指南,可以指导如何设计和管理使用 VM、Web 站点以及存储的解决方案,以应对间歇性或持续性的高负荷。
通过这些指导规则,架构师和开发人员可以基于他们想要使用的资源编写检查列表。
概览:构建更加具有可扩展性应用的建议
微软在 Azure 中提供了很多的资源,这些资源可以组合为解决方案,但是这个 HA 检查列表主要针对的是虚拟机、Web 站点和数据库。
针对虚拟机,他们的建议如下:
- 使用 Traffic Manager 来处理跨多个 Azure region 的流量均衡。Azure 在全球有 26 个 region,在不久的将来还会增加 8 个。
- 每个角色使用多个 VM。
- 使用负载均衡器。Azure 的负载均衡器能够实现跨数据中心路由。因此,在给定的 region 中,它能够高效选择实际所使用的 VM。关于这些资产的差异,可以参考微软项目经理 Jonathan Tuliani 所撰写的文章。
- 部署用于扩展的虚拟机集合,实现 VM 数量的自动增加或收缩,这会基于一些内部指标(如 VM 的处理器活动)或外部因素(如 Azure 存储队列的长度)来进行。
检查列表能够按照每个组成部分帮助我们理解在 Azure 中,具备 HA 配置的 VM 应该是什么样子的。
对于通过 Azure 交付的 Web 站点,推荐开发人员使用 Azure CDN 并搭建缓存 provider,如 Redis 缓存,至于运行在 Azure 生产环境中的数据库,则应该使用 active geo-replication 功能。
在这项公告中,Azure 弹性的高级项目经理 Adam Glick这样说道,即便 Azure 已经提供了构建 HA 的方案,但依然有很多客户端并没有采用这些解决方案。微软指出,他们所提供的方案在使用时不会对应用程序的设计带来很大的变更。
这个检查列表不仅能够提供建议,按照给定的实践还可以减少一些风险。按照 IDC 的数据,因为停机每年所造成的损失是 12.5 到 25 亿美元,这里的风险是非常现实的。它们包括:
- 因为阻塞所造成的延迟增加
- 跨应用分层的单点故障
- 可扩展性的降低
- 每项资源的使用所增加的成本
HA 检查列表是 Azure 针对这一领域所提供的众多资源之一。SQL Server 在高可用性 / 灾难恢复方面有其自己的考量因素,参见解决方案文档。对于Azure Web 应用,微软提供了参考架构。同时,为了实现IoT 的HA,他们提供了弹性功能的技术指导以及部署模型。Glick 在这份检查清单的公告中说道,尽管这些步骤在实现的时候,不应该让应用出现较大范围的重写,但是团队分享的模式以及实践团队提供的见解应该在开发之前就遵守。
高可用性是一个严肃的问题,违反服务等级协议可能会导致很严重的法律后果。Sears 在2015 年经历了两次系统不可用,这导致了2 百万美元的利润损失并且陷入和与相关公司的诉讼之中。 Machine Zone 是很流行的“Game of War”游戏的制造商,在经历了2015 年十月的两小时宕机之后,它放弃了Peak Hosting 这家供应商,这导致了该供应商申请破产。
除了检查列表以外,Azure 和其他的云供应商还提供了部署云资源的模板,这些资源包含了预先构建好的HA 配置。Azure 提供了Azure 资源管理器(Resource Manager)模板,该模板体现了负载和集群策略。Amazon 也提供了这个方面的列表。关于HA 解决方案的更多内容,可以参考IBM 自己的部署模板。
查看英文原文: Microsoft Updates High Availability Guidance for Cloud Apps
评论