编者按:对您的业务场景来说,云服务采用无服务器托管服务是否更便宜?本文向您推荐一套成本计算方法。虽然本文以 AWS Lambda 无服务器为用例,但国内主流无服务器服务例如「知晓云」的计费规则大同小异,具备同等参考价值。
我们在讨论无服务器后台服务采购时,成本节约和可自动扩展是我们首先想到的无服务器服务的好处。您的企业希望减少运营时间和降低成本,从而为对其数字化业务至关重要的功能提供更多价值。
一个梦想(至少对投资者而言)。
我想你已经好几次读过这个理论了。而且,您如何确定无服务器适合您?您的具体业务如果使用无服务器是否确实更便宜?
本文中,我将阐明 AWS 无服务器架构可能会花费您多少成本。为了解决这个问题,我们(Theodo 公司)创建了一个易于使用但完整的 AWS 无服务器成本计算器!希望它能给您带来一点动力,让您在技术上进行更多投资。
⚠️ 如果你已经了解 TCO、FinOps 和 Serverless 架构,你应该直接跳到本文计算器部分(链接在手机上不起作用,手机浏览者请直接滑到本文页面后半部分)。
谈论无服务器成本时经常提到的一个核心概念是总拥有成本 (TCO):
在月底,当您收到无服务器账单时,您主要会看到一个数字。如果您想将此数字与非无服务器应用程序成本进行比较,则不应简单地将其与基础设施成本进行比较,您应该扩大比较范围并包括:
一大笔运维人员的工资支出
云服务监控工具等 SaaS 服务账单
通用功能(如身份验证)的开发工作,或与技术成熟度和技能积累相关的工作
在评估无服务器的经济价值时,这种高层级观点是关键,因为无服务器在一份账单中包含了 TCO 的 3 个变量。
我举两个具体例子来说明:
像 AWS Lambda 这样的服务的管理、监控和自动扩展是刻意设计来实现的,这意味着减少处理经典性能问题和系统维护的操作负担——目的是帮助数字业务开发者(客户)实现技术后台的「零运维」。
像 Cognito 这样的另一项服务,是预打包一种始终保持最新的行业标准软件包来帮助您的数字业务处理身份验证、用户和授权,并无缝自动连接到其它 AWS 服务,这意味着您不必花费软件开发时间在你的业务架构中重复建设用户身份认证和鉴权的这套标准化组件。
Yan Cui 写了一个很好的案例,从 TCO 的角度解释了 Serverless 如何确实降低了成本。德勤发布了一份关于该主题的白皮书,他们在其中使用真实案例比较了每个 TCO 组件上的无服务器与更传统的方法。
有很多例子展示了云成本是如何失控的(比如这个新的例子)。使用 AWS,您无法定义成本上限。您只能创建成本警报。这并不像应该的那样令人放心,例如「钱包拒绝服务」网络攻击导致的损失。
您遭受云服务费用超支网络攻击的可能性是真实存在的。就像经典架构中,由于计划外流量而导致系统缓慢或更糟糕的崩溃的可能性是一样的。这是无服务器范式发生重大转变的直接后果。这也是一个了不起的机会:云提供商让我们能够立即扩展,从而减少雇佣和管理专门运维团队的成本。
为了应对这种过度支出的恐惧,一些 Ops 和 Architect 的任务正在转向 FinOps。作为 FinOps,出于性能和维护原因,您对系统的优化「略微」较少,而出于财务原因则更多。一个很好的例子是 Alex Casalboni 通过定义正确的资源分配来优化 Lambda 执行时间和成本的分析。
无服务器为您提供了对每个后台计算功能和架构的每个部分进行完整且精细的成本控制的工具。你可以看到哪些开支项超出你的预期。您可以评估一项无服务器后台功能的投资回报率,以更好地了解其对业务的影响。这是一家公司最终会关注的问题。云服务商「只是」将一般复杂性抽象出来,并为了能提供更多的财务控制创造一条捷径。
为了帮助人们估算无服务器项目的成本并分享最佳 FinOps(财务运营)实践,我们决定构建一个 AWS 无服务器成本计算器。该计算器旨在易于使用,同时包含完整架构的每个组件。
为什么它与您已经在网上找到的不同?因为它依赖于对无服务器架构应该是什么样子的看法。这就是我们使用 FinOps 技能的地方——评估不同服务分类以及如何使用它们来简化估算 AWS 无服务器应用托管成本的过程。
我同意:所有架构都是不同的,并且由于某些差异,成本可能会发生许多倍的变化。但与此同时,大多数 Web 应用共享许多共同元素:身份验证、带有一些业务模型的数据库、获取和更新这些业务模型的一些 API 代码、一些系统文件、一些异步任务和一些高级工作流(例如:购物车结账业务流或多因子身份验证)。
在对典型的无服务器架构进行标准化时,可以更轻松地估算典型用例的成本。它还为社区内的深度讨论、吸引评论和各方的挑战创造了一个氛围,旨在围绕持续优化系统达成更多共识。
这些带着我自己偏见的原则我已写到之前的文章中:AWS 典型的 100% 无服务器架构是什么样的!也请您回头读一下它以便完全理解这套计算器的设计。
⚠️ 这项计划是一项持续进行的工作,它基于我们在 Theodo 的经验。因此,某些场景或假设可能无法很好地反映您自己的用例。简化和概括计算复杂系统成本的方法很困难,并且需要从经验中学习更多。