利用率优化设计

已完成
最大程度地提高资源利用率和操作效率。 将它们应用于解决方案的商定功能性要求和非功能性要求。

服务和套餐提供了各种功能和定价层。 购买一组功能后,应避免使用不足的情况。 想办法最大限度地利用你在该层的投资。 同样,请根据当前的生产工作负载,不断评估计费模型,以找到更符合你的使用情况的计费模型。

示例方案

Contoso University 目前托管着一个商用的现成 (COTS) 解决方案,该解决方案允许大学教师创建和更新学年的课程,是修习这些课程的学生使用的主要注册门户。 该解决方案具有与软件即服务 (SaaS) 教育管理系统的自定义集成,他们希望在几年内最终将所有功能迁移到该系统中。 同时,他们希望优化自定义集成组件的成本。

COTS 产品/服务的技术解决方案通常被视为黑匣子,但其数据库除外,其数据库为 Azure Database for MySQL。 自定义集成是一个 Azure 持久函数,在 Azure 应用服务的标准服务计划中以扇出方式运行。 此应用服务以前托管着一个大学网站,但现在已不再托管。 此持久函数是由专用 Azure 存储帐户提供支持的 Python 应用程序,执行从 MySQL 数据库到 SaaS API 的夜间同步。

在可行的情况下使用基于消耗的定价

可能有一些服务提供基于消耗的定价,这意味着只会根据服务的使用情况向你收取费用,并且你可以在不需要该服务时将其关闭以停止产生成本。 如果你的工作负载组件只是偶尔使用,与为全天候运行的组件付费相比,这有助于最大限度地降低成本浪费。

使用基于消耗的定价,你只需按用量付费。 当你的工作负载计算预计不会全时使用时,此选项是一个不错的选择。

Contoso 的挑战

  • 同步作业通常每晚在特定时间运行约一个小时。 它的性能历来令人满意。 在当前配置中,很少出故障,暂时性故障也处理得很好。
  • 由于同步作业所需的计算每天只使用大约一个小时,而且无论使用情况如何,他们都要支付 24 小时的费用,因此工作负载团队有兴趣替代当前的设计。
  • 该团队曾考虑编写一个脚本在每晚运行同步后关闭该服务,并在第二天重新部署该服务,但此解决方案的风险和复杂性都很高。

应用方法和结果

  • 该团队分析了作业历史记录,发现该功能运行时间最长不到两个小时。 他们将专用计划的成本与最坏情况下 Azure Functions 消耗计划的成本进行了比较,发现消耗计划的成本更低。
  • 该团队运行性能测试以确保性能足够,他们注意到运行时间略有增加,但仍在可接受的范围内。
  • 使用消耗计划可以降低工作负载的总体成本,因为它们只在执行作业时产生成本。

优化高可用性设计

如果你已经支付了资源费用,作为恢复计划的一部分,请优先考虑主动-主动或仅主动模式的部署,而不是主动-被动模式。

如果你的设计默认使用主动-被动模型,那么你可能有闲置的资源可以使用。 转换为主动-主动可能使你能够在不超支的情况下满足负载均衡和规模爆发的要求。 如果你可以使用仅主动模型来满足恢复目标,则可以完全消除这些资源的成本。

Contoso 的挑战

  • COTS 应用程序使用为实现相同区域高可用性而配置的 Azure Database for MySQL 灵活服务器,该高可用性模式将在与主服务器相同的可用性区域中提供备用服务器。 它们还启用了自动备份。
  • 工作负载的 RPO 相对较长,为 12 小时,而 RTO 在上课日为 3 小时。
  • 根据以前的恢复测试,团队知道他们可以通过切换到备用服务器的自动故障转移来实现 RPO 和 RTO 目标。 他们还测试了从备份中恢复数据库,可以实现此场景中的目标。

应用方法和结果

  • 工作负载团队对比服务成本(成本是单个实例的两倍)重新评估了该高可用性设计的益处。
  • 该团队测试了构建一个新实例和从备份中恢复数据库的过程,他们确信自己仍将符合恢复目标,因此决定消除备用实例。
  • 该团队更新 DR 计划,以反映新的恢复策略,并通过新配置实现成本节省。

确保云环境中没有未使用的资源和数据

定期严格审查部署中是否存在未使用的资源和数据,并将其停用。 随着时间的推移,过去出于某种目的而需要但现在不再使用的资源和数据可能会滞留在你的云环境中,并增加不必要的成本。 请注意保持环境清洁,以帮助优化成本效益。

关闭未使用的资源,并在不再需要时删除数据,这样可以减少浪费,释放资金,以便将其投资到其他地方。

Contoso 的挑战

  • 该大学历来对停用解决方案采取保守的做法,担心它们可能需要恢复到以前的配置。 这种谨慎导致已被废弃的服务在一个或多个环境中运行了数月,在某些情况下被遗忘。
  • 何时会发现被废弃的服务通常是偶然的,因为没有正式的流程来审查环境中的此类服务。

应用方法和结果

  • 在将持久函数从应用服务迁移到消耗托管的过程中,该团队将应用服务的停用添加到积压工作中。 在下一次冲刺中,他们将在所有环境中关闭应用服务部署。
  • 为了帮助主动检测被废弃的资源,该团队在 Azure 顾问中设置警报来获取有关未使用的资源的通知。
  • 该团队实施了一项新政策,要求该团队每月对预生产环境进行全面审查并每季度对生产环境进行全面审查,以查明被废弃的资源。 找到的任何已废弃资源都将被添加到积压工作中以便停用。

知识检查

1.

以下哪一项可用于某些 Azure 计算服务,让你通过只为你使用的计算付费来节省成本?

2.

如果你已经支付了资源费用,为了提高成本效益,你应该避免以下哪种 HA 设计?

3.

工作负载团队可以通过以下哪种方法来确保捕获已废弃的资源(例如不再使用的 MySQL 服务器)?