五分钟了解无服务器架构
本课程将向你介绍无服务器架构及其优势。现在,让我们开始吧!
本章将解释无服务器部署在财务和技术方面的限制。你将学习在何时以及为何使用 AWS Lambda 托管软件是一个合适的选择,以及在什么情况下选择其他服务可能更为理想。
无服务器架构简介
从最基本的技术层面来看,无服务器应用是指运行在由托管服务商完全负责基础设施和运维任务的环境中。这些任务包括接收网络请求、按需扩展计算资源、监控系统状态以及故障恢复等。
与传统容器将应用业务逻辑与操作系统、网络服务器(如 Web 服务器或消息代理)捆绑在一起不同,无服务器应用只需提供事件发生时需要执行的代码,并在执行环境中配置触发器来调用该代码。
在亚马逊云科技(AWS)中,无服务器代码的执行环境被称为 AWS Lambda。它支持多种事件触发源,包括:HTTP 请求、队列中的消息、客户邮件、数据库记录变更、用户身份验证、WebSocket 消息、客户端设备同步等。
由于应用开发者无需打包或分发服务器端代码来控制网络套接字,因此他们的应用是“无服务器”的。虽然“无服务器”这个术语常被当作营销噱头,互联网上也充斥着关于“无服务器环境下依然有服务器”的调侃笑话,但这里的“无服务器”到底意味着什么?
一个类比
更恰当的理解方式是类比 Wi-Fi。当你在咖啡馆通过“无线”连接浏览互联网时,你的设备会与几英尺外的路由器通信,而该路由器通过一根网线连接到互联网。但你并不需要关心这根网线,也不必主动管理它。AWS Lambda 的“无服务器”特性正是如此——尽管背后有虚拟或物理的网络服务器在运行,但你不再需要关注它们。
无服务器架构的优势
相比在容器集群中运行应用或直接管理虚拟机,无服务器部署具有两大显著优势:
- 缩短产品上市时间,从而加快创新速度,更快地为客户交付价值
- 降低运营成本,得益于更高的资源利用率
- 一项由研究公司 IDC 于 2018 年发布的研究报告指出,采用无服务器应用的企业平均“五年运营成本降低了 60%,计算资源部署速度提升了 89%”。这一数据与我的实际经验基本一致。在 MindMup 从原先按预留容量付费的主机迁移到 AWS Lambda 后,我们的运营成本减少了近三分之二。另一个广为人知的案例是 Yubl,由 Yan Cui 在近年来多次技术大会上分享。Yubl 通过迁移到 Lambda,将运营成本降低了 95%。MindMup 和 Yubl 的详细案例分析可在我们共同撰写的论文《无服务器计算:经济与架构影响》中找到,该论文发表于 https://www.doc.ic.ac.uk/~rbc/papers/fse-serverless-17.pdf。
AWS Lambda 的采用情况
2018 年 3 月,Cloudability 发布了其针对 AWS 客户的《云现状报告》研究结果,显示 Lambda 的采用率在一年内增长了 667%。这并不令人意外,因为降低运营成本与加速实现客户价值的双重优势,为公司采用 AWS Lambda 及类似服务提供了强大的财务驱动力。而推动成本下降和开发提速的核心因素,正是无服务器的计价模式。
在下一课中,你将深入探讨无服务器架构的定价模型。