成本优化支柱包括系统在其整个生命周期内的不断完善和改进过程。从最初的概念验证设计到生产工作负载的持续运行,采用本文中的实践将使您能够构建和运行具有成本意识的系统,从而实现业务成果并最大限度地降低成本,从而使您的企业实现投资回报最大化。
释义
云计算中的成本优化有四个最佳实践领域:
- 具有成本效益的资源
- 供需匹配
- 支出意识
- 随时间优化
与其他支柱一样,需要考虑权衡。例如,您希望优化上市速度还是成本?在某些情况下,最好优化快速上市、发布新功能,或者只是满足最后期限,而不是投资于前期成本优化。
与经验数据相比,设计决策有时受到匆忙的指导,因为总是存在着过度补偿“以防万一”的诱惑,而不是花时间进行基准测试以获得最具成本效益的部署。
这通常会导致资源调配过度和部署不足。以下各节为部署的初始和持续成本优化提供了技术和战略指导
最佳实践
话题
具有成本效益的资源
- SaaS应用程序没有独特的成本做法。
供需匹配
- SaaS应用程序没有独特的成本做法。
支出意识
SaaS成本1:如何衡量单个租户的资源消耗?
衡量和归因于多租户环境中的成本首先要有一个将消费归因于租户的可靠策略。这将需要团队设计和开发一个消费映射模型,该模型清晰地显示租户如何使用系统资源。最终目标是获得一系列见解,使您能够为系统的每个租户分配一定比例的消费。
在租户可能共享部分或全部系统资源的多租户环境中,组装这种消费视图可能特别具有挑战性。这种更细粒度的消费模型删除了许多选项和工具策略,这些选项和策略通常用于在AWS环境中定义消费(例如标记)。
虽然没有单一的模型来定义如何在SaaS架构中捕获租户消费,但在为应用程序选择策略时,应该考虑一些常见的策略。首先,您需要查看SaaS环境的总体成本概况,并确定应用程序如何影响AWS账单中的成本。对于某些环境,您的成本可能主要集中在应用程序的几个方面。在这些场景中,您可能会在收集对账单贡献最大的领域的消费数据方面获得更好的ROI。例如,如果Amazon S3占您账单的1%,那么计算租户的Amazon S3消费可能没有什么价值。
这里您要考虑的另一个因素是粒度。有一些侵入性较小的方法可以近似租户的消费量,这可能适合您的环境。这实际上可以归结为在您所追求的消费细节水平与检测和捕获数据的复杂性之间取得平衡,而这些数据需要对消费进行属性化。
让我们从最简单的租户消费近似模型开始。图25中的图表提供了一个概念视图,展示了在微创模型中捕获租户活动的一种方法。这里的基本方法是使用AWS Lambda授权器检查对API的每个调用。授权者将从传入的JWT中提取租户上下文,并发布一个事件,为租户记录此活动。另一种方法是使用AWS X射线来捕获这些数据(而不是亚马逊API网关)。
图25:租户消费的微创捕获
图上还有一个占位符,用于聚合和计算租户消费。您选择的填补这一空白的战略和工具将取决于数据的性质、其生命周期,以及它如何适合您更广泛的SaaS度量和分析故事。您可以选择将此数据作为SaaS环境的一般度量足迹的一部分,从而得出对租户分配消费至关重要的见解。
这种特定的方法依赖于跟踪每个租户的呼叫频率,以此推断每个租户的消费水平。虽然对服务的调用次数可能与消耗量不完全相关,但对于某些环境来说,这可能是一种合理的折衷。
通过在应用程序的细节中引入更专门的工具,可以创建更精细的消费视图。图26中的图表展示了如何将度量工具引入SaaS应用程序的微服务。
图26:用租户消费事件检测微服务
在本例中,我们将度量工具引入到应用程序的每个微服务中。这些微服务将捕获租户如何使用该服务及其相关资源的更详细数据。此详细数据将作为事件发布并聚合。在这里,我们展示了用于发布和接收数据的Amazon CloudWatch、AWS Lambda、Amazon Kinesis Data Firehose和Amazon S3。然后将分析这些数据,并根据您自己的建模得出租户之间的消费分布。
当您超越应用程序的微服务时,归因于租户消费变得更具挑战性。您可能需要在逐个服务的基础上制定特定的、有针对性的策略。例如,存储服务可能需要一个单独的服务来分析存储消耗。这可能需要查看IOPS、数据占用和其他因素,以分析租户的消费。
SaaS成本2:您如何将租户消费与基础设施成本联系起来?
SaaS环境的动态特性可能会使理解系统基础架构的成本状况可能会如何变化变得很困难。系统中租户的需求和组合的变化可能会导致SaaS环境运营成本的大幅波动。同时,SaaS业务需要清楚地了解租户如何影响成本,以做出关于如何构建、销售和运营其SaaS应用程序的战略决策。
为了了解更好地了解租户如何影响业务成本的商业价值,让我们看一个如何在SaaS环境中应用成本数据的示例。图27中的图表提供了一个场景的示例,其中SaaS环境的成本与这些租户的收入以及这些租户管理的电子商务目录的大小相关。
图27:每层租户的成本
该图说明了SaaS产品各层的成本分布。在这里,您将看到基本层和高级层租户的基础设施成本之间的巨大差异。关键的观察是,产生最小收入的基本层承担了系统基础设施成本的最大部分。同时,产生最多收入的高级层的成本足迹要小得多。这种不平衡可能意味着我们的模型有问题。
这只是一个示例,说明如何获取按租户和层划分的成本对SaaS提供商至关重要。通过访问此租户成本数据,SaaS组织可以评估可能影响环境成本状况的各种架构考虑因素。它还可以帮助指导定价和分层策略。
与汇编每个租户的成本数据相关的两个基本方面。首先,您需要一些方法来确定和计算租户消费,以得出每个租户的消费百分比(有关如何收集该消费数据的详细信息,请参见上文)。获得消费数据后,您需要将该数据与AWS账单中的成本信息相关联,以得出每个租户的成本计算结果。
有许多选项可用于访问收款账单数据。AWS提供了API,可用于获取和聚合这些计费数据,或者您可以探索一系列APN合作伙伴解决方案来获取这些数据并通过这些解决方案获取成本。这里最短的路径通常是与APN合作伙伴合作,处理吸收和汇总AWS成本的细微差别。
该体验的高级视图如图28所示。您将看到我们需要收集两组不同的数据。一个过程将汇总并摄取AWS账单中汇总成本的数据,其方式与与您的每租户成本模型相关的成本粒度一致。接下来,您将看到租户消费聚合,该聚合分析租户活动并为每个租户分配一个消费百分比。最后,将这些消耗百分比应用于基础设施成本,得出每个租户的成本。
图28:计算每个租户的成本
获得这些数据后,您可以选择如何最好地表示由此产生的成本。通常,在业务核心的一系列服务中,每个租户的成本似乎很有价值。但是,您可以使用权重并计算每个租户的总体成本,以便进行其他分析。
随时间优化
SaaS应用程序没有独特的成本做法。
资源
请参阅以下资源以了解有关AWS成本优化最佳实践的更多信息。
文档和博客
- 计算SaaS环境中的租户成本
- 计算每个租户的SaaS成本:AWS Kubernetes环境中的PoC实现
- SaaS指标深度挖掘:多租户分析
- SaaS分析和度量:捕获和处理对您成功至关重要的数据
- AWS中的监控工具
视频
- SaaS指标:租户消费的终极视角
最新内容
- 18 hours 51 minutes ago
- 21 hours ago
- 21 hours ago
- 3 days 12 hours ago
- 3 days 20 hours ago
- 3 days 20 hours ago
- 3 days 20 hours ago
- 3 days 21 hours ago
- 1 week 1 day ago
- 1 week 1 day ago