你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

优化流成本的建议

适用于此 Azure 精心构建的框架成本优化清单建议:

CO:09 优化流成本。 使每个流的成本与流优先级保持一致。 确定流优先级时,请考虑每个流的特征、功能和非功能要求。 优化流支出通常需要战略妥协。

本指南介绍优化工作负荷中每个流的成本的建议。 对工作负荷中的流进行成本优化涉及从战略上分配和管理资源,以最大程度地减少费用,同时保持性能。 这种优化至关重要,因为它可确保有效利用投入的资源,减少不必要的支出,并改善基础设施的整体投资回报。 如果不对工作负荷中的流进行成本优化,则可能会过度投入资源,这会导致运营成本膨胀并降低盈利能力。

定义

术语 定义
解 耦 从包含多个流的资源中删除流并将其放入单独的资源的策略。
流向 在工作负荷中,执行特定函数的操作序列。 流涉及数据移动和工作负荷组件之间的进程运行。
系统流 系统中的信息和进程的流。 系统会自动遵循此流来启用用户流或工作负荷功能。
用户流 用户在应用程序或系统中执行的操作的路径或序列。

关键设计策略

投资高优先级流比优先级较低的流多。 协调流优先级和支出可能涉及分离当前共享同一资源的流。 它还可能涉及合并具有类似要求的流,但在单独的资源上运行。 例如,假设你有一个包含多个流的 Web 应用程序,例如用户注册、登录和数据处理。 这些流在单个服务器上运行,即使它们具有不同的资源需求。 若要优化成本和性能,可以分离流或合并流:

  • 分隔流。 例如,可以将用户注册流与其他人分离,并将其移动到专用的低成本服务器。 此流很重要,但不是资源密集型的,因此对于成本较低的服务器来说,这是一个很好的候选项。

  • 合并流。 例如,可以将登录和数据处理流合并在一起,这些流具有更高的资源要求,并在高性能服务器上一起运行它们。 结合这些流,服务器可以有效地处理这两个流的资源密集型需求。 它优化性能和成本。

在工作负荷中,可以考虑不同类型的流或路径。 本指南重点介绍以类型:

  • 系统流。 优化系统流涉及简化系统组件之间的通信和交互,最大限度地减少瓶颈,并确保高效的资源利用率。

  • 用户流。 优化用户流涉及改进用户体验、减少摩擦点,并确保应用程序或系统中的流畅导航和交互。

创建流清单

流清单是工作负载内所有操作序列、数据转换和系统交互的综合列表和说明。 流清单是确保投资符合流优先级的第一步。 应该只有在完全了解流的目的和依赖项后才优化流。 下面是创建工作负荷流的清单的步骤:

  1. 文档流。 首先记录并列出工作负荷中的所有现有流,以便了解系统的综合状态。 包括每个操作序列、数据转换和系统交互。 熟悉每个组件,例如外部服务、数据库、中间件和第三方集成。 此外,跟踪或估计一段时间内的请求量。

  2. 可视化流。 若要获得更清晰的视角,请在流程图或图表中直观地表示你的发现。 可视化效果有助于查看组件之间的相互依赖关系。 请考虑使用 Visio 之类的工具来帮助实现可视化效果。

  3. 对流进行分类。 捆绑类似的流,考虑到其功能(例如身份验证、数据检索和事务处理)等属性、业务的关键性,或它们使用的资源(CPU、内存或带宽)。

确定流优先级

流优先顺序是基于流对业务结果的影响、对用户体验的影响以及他们消耗的资源对流进行分类的过程。 关键流通常需要更高的可用性级别、更快的恢复时间和更好的性能来满足工作负荷目标。 通过确定流优先级,可以更好地将支出与流优先级保持一致。 若要确定流的优先级,请考虑以下步骤:

  • 标识流值。 优化工作负荷流成本时,需要确定提供最大价值的流。 你不想花更多的流是值得的。 考虑将成本转移到更有价值的流优先顺序,而不是简单地削减成本。 例如,结帐流程对于业务至关重要,但购买历史记录并不重要。 应向结帐流分配更多资源和预算。

    低优先级流对可用性、恢复和性能的预期较低。 可以使用更便宜的配置来降低成本,以减少性能、可用性或业务连续性支出。

  • 考虑流指标。 如果正在努力确定流的优先级,请考虑分配给流的可用性和恢复目标。 关键流通常具有高可用性要求和服务级别协议(SLA)。 与较低 RPO 和 RTO 关联的流比 RPO 和 RTO 更高的流更重要。

优化独立流

有时,流已在不同的资源上运行。 在这些情况下,可以更轻松地评估和优化支出。 评估每个独立流中涉及的组件和流程,以确定是否有优化或简化它们的方法。 若要优化独立流,可以按照以下步骤操作:

  • 消除不必要的组件。 删除不影响流核心功能的任何无关元素,从而降低复杂性和成本。

  • 重新设计流。 考虑重新设计流的体系结构以提高其效率。 例如,可以更改操作顺序、减少延迟或提高数据传输速度。

  • 选择适当的性能层。 不同的流在处理速度、内存或其他资源指标方面可能有不同的需求。 请确保选择一个与每个流的特定要求相符的资源层。

  • 调整缩放设置。 如果流遇到可变需求,请考虑实现自动缩放以根据实时需求动态调整资源,从而优化成本。

  • 微调配置。 微调其他设置,例如网络或数据存储选项,以更好地符合流的性能和预算要求。

分隔不同的流

将不同的流分离到不同的资源是向专用资源分配具有不同计算需求的不同任务的过程。 不同的流是具有不同属性的流。 这些属性可以包括计算要求、数据依赖项、I/O 操作、延迟敏感度、安全需求和合规性要求。 在单独的资源上运行不同类型的流通常更具成本效益。 这样做可实现对每个流的精确资源分配,从而减少不必要的支出,并确保最大效率。

请考虑分离当前合并的不同流。 这种分离提高了可伸缩性、容错性和适应性,并简化了成本。 通过确保每个流独立运行,可以降低干扰风险,并根据每个流的优先级更有效地分配资源。 例如,假设将 CRM(用户流)与数据引擎(数据流)并置。 在办公时间内,用户发往 CRM 系统的流量可能会降低数据引擎的速度。 分离流时,数据引擎可以根据工作负荷需求独立缩放每个组件或服务。 这种分离优化了资源分配并降低成本。

合并类似的流

将类似的流合并到单个资源是将任务或进程与可比较属性合并并为其使用共享资源的过程。 此策略消除了冗余,并确保更高效地使用资源,从而节省大量成本。 类似类型的流共享类似的属性。 可以考虑在分离不同的流时查看的相同属性:计算要求、数据依赖项、I/O 操作、延迟敏感度、安全需求和符合性要求。 下面是一些示例,将类似的工作负荷流组合在一起以使用同一资源可能会导致大量节省:

  • Web 服务器。 请考虑合并它们,而不是为每个应用程序专用单独的 Web 服务器,尤其是在流量不一致高的情况下。 与反向代理配对的共享 Web 服务器可以有效地管理和将流量路由到多个应用程序。

  • API 网关。 可以使用集中式 API 网关来简化请求并将其定向到相关服务,而不是为单独的微服务或应用程序维护单独的 API 网关。 这样做可以简化管理,同时降低成本。

  • 日志处理。 请考虑将它们全部定向到共享日志处理工具,而不是让多个应用程序或服务运行自己的日志处理实例。 此方法可最大程度地减少活动实例的数量,这相当于直接节省成本。

  • 身份验证服务。 如果多个应用程序部署其自己的不同身份验证机制,则会引入冗余。 集成单一登录(SSO)解决方案或公共身份验证服务可减少此重复并优化资源使用情况,从而降低成本。

风险:不要错误地与设计巧合。 两个看起来相似的流不一定具有相同的目的。 在合并或更改每个流之前,需要了解每个流的函数和设计。 通过仅专注于其外观来误解流可能会导致意外后果,并中断它支持的服务或进程。 如果多个流提供相同的函数,并且其设计或意图没有明显差异,请考虑合并它们。

持续监视流

流和工作负荷的性质可能会随时间变化,因此需要查看流支出,以确保成本与优先级保持一致。 通过分析与每个流关联的计算、存储和网络使用情况,评估每个流的资源利用率。 确定资源未充分利用的任何低效或区域。 此分析可帮助你查明成本优化的机会。 以下是查看流利用率时要考虑的一些注意事项:

  • 分析使用模式。 分析流的使用模式。 某些流可能在一天或月份的某些时间更活跃,而另一些流可能具有一致的负载。 通过了解这些模式,可以预测资源需求并调整分配,以避免瓶颈和过度预配。

  • 监视相关的指标。 确定有助于评估每个流的效率和成本效益的指标。 考虑 CPU 利用率、数据传输成本、事务成本和存储占用情况。 使用监视工具收集有关资源使用情况和性能的详细指标。

  • 请考虑持续维护。 请考虑维护成本,尤其是在使用基础结构即服务解决方案(如虚拟机)时。 需要考虑修补、升级、备份、监视和安全性等活动。

在分析过程中,确定资源未有效利用的任何效率低下或区域。 考虑空闲计算实例、未使用的数据和低网络带宽。 这些效率低下可能表明成本优化的机会。

Azure 便利化

确定、优化和监视流的优先级、优化和监视流:Application Insights 中的用户流工具提供跨网站页面和功能的用户导航的可视表示形式。 此工具有助于识别用户经常离开、重复操作或遵循特定路径的区域。 通过将实际用户行为与预期的结果和目标进行比较,可以识别关键流。 它还允许你优化潜在问题,例如高流失率、重复操作或设计缺陷。 该工具还允许通过维度进行自定义属性筛选,从而提供更定制的分析。

Azure Monitor 可帮助你深入了解应用程序的性能和运行状况。 它提供监视和诊断功能。 这些功能使你能够识别性能瓶颈、优化资源利用率,以及检测和排查可能影响成本的问题。

Log Analytics 是一种工具,可用于从各种源收集、分析和可视化日志数据。 通过使用 Log Analytics,你可以深入了解应用程序和基础结构日志,识别趋势,并通过管理使用情况和数据保留来优化成本。 请考虑将日志并用于专用解决方案,而不是共享日志,以更好地管理成本。

成本优化清单

请参阅完整的建议集。