第 8 章 无服务器处理系统 无服务器处理系统
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
可扩展系统的使用模式千差万别。对于某些应用程序来说,营业时间的负载可能很高,而非营业时间的负载可能很低或根本不存在。其他应用程序,例如在线音乐会门票销售系统,可能在 99% 的时间内后台流量较低。但当一系列大型演出的门票发布时,需求量可能会在数小时内飙升至平均负载量的 10,000 倍,然后才会回落到正常水平。
第 5 章中介绍的弹性负载均衡是处理这些峰值的一种方法。另一种方法是无服务器计算,我将在本章对此进行探讨。
无服务器的魅力
主要组织 IT 系统从内部部署向公共云平台部署的过渡似乎不可阻挡。从初创企业、政府机构到跨国公司,,都将云视为数字化转型平台和提高业务连续性的基础技术。
云平台的两大魅力在于其按需付费的计费方式,以及能够快速增加(或减少)虚拟资源以满足不断变化的工作负载和数据量。当然,这种扩展能力不是免费的。您需要对应用程序进行架构,以利用云平台提供的可扩展服务。当然,正如我在第 1 章中所讨论的,成本和规模之间有着不可分割的联系。系统长期使用的资源越多,月底的云账单就会越大。
每月的 Cloud 账单可能高达。真的很大。更糟糕的是,还会出乎意料地大!在一项调查中,69% 的受访者的云预算经常超支25% 以上。在一个著名的案例中,一项 Azure 任务花费了 50 万美元才引起人们的注意。造成超支的原因有很多,包括缺乏自动扩展解决方案的部署、长期容量规划不足以及对云架构的利用不足导致系统占用空间过大。
在云平台上,架构师面临着无数的架构决策。这些决定既有广义的,如系统采用的整体架构模式或风格(如微服务、N 层、事件驱动),也有狭义的,如系统所基于的单个组件和云服务。
从这个意义上说,架构上的重大决策贯穿于云上系统设计和部署的方方面面。而当您收到每月的云支出账单时,这些决策的集体后果就会非常明显。
传统上,Cloud 应用 一直部署在利用虚拟机(VM)的基础设施即服务(IaaS)平台上。在这种情况下,无论资源的利用率有多高,您都要为部署的资源付费。如果负载增加,弹性应用程序可以启动新的虚拟机来增加容量,通常使用 Cloud 提供的负载平衡服务。您的成本基本上与您选择的虚拟机类型、部署时间以及应用程序存储和传输的数据量成正比。
除了显式调配虚拟处理资源,主要云提供商还提供了另一种。它们被称为无服务器平台,不需要静态配置任何计算资源。使用 AWS Lambda 或 Google App Engine (GAE) 等技术,应用程序代码加载到 ,并在请求到达时按需执行。如果没有活动请求,基本上就没有资源在使用,也就不需要支付费用。
无服务器平台还能为您管理自动扩展(向上和向下)。当请求同时到达时,会创建额外的处理能力来处理请求,并在理想情况下提供持续的低响应时间。当请求负载下降时,额外的处理能力就会退役,不会产生任何费用。
每个无服务器平台的实施细节都不尽相同。例如,通常只支持数量有限的主流编程语言和应用服务器框架。平台提供多种配置设置,可用于平衡性能、可扩展性和成本。一般来说,成本与以下因素成正比:
为执行请求而选择的处理实例类型
每个请求的请求数和处理时间
每个应用服务器实例在无服务器基础架构上的驻留时间
不过,不同供应商使用的确切参数差别很大。每个平台都是专有的,都有细微的差别。和往常一样,魔鬼潜伏在细节中。因此,让我们专门针对 GAE 和 AWS Lambda 平台来探讨一些 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access