无服务器 - 简介


什么是无服务器?

嗯,这个名字给了你很多暗示。无需维护服务器的麻烦即可进行计算——这是无服务器计算(或简称无服务器)的关键。这个概念是相当革命性和颠覆性的。它已被广泛采用。一些新的应用程序从设计无服务器后端开始,而具有专用服务器的遗留应用程序也正在慢慢迁移到无服务器架构。那么是什么导致了无服务器的广泛采用呢?与所有事物一样,经济因素使得无服务器变得非常有利。

您会看到,使用无服务器,您只需为您使用的内容付费。想象一下,您每天需要对数据库执行一些例行维护。这个过程每天可能需要大约 10 分钟。

现在,在没有无服务器计算的情况下,您的维护 cron 可能驻留在服务器中。除非您在剩余时间内有其他事情需要处理服务器,否则您最终可能会为需要 10 分钟的任务支付 24 小时的费用。相当浪费钱,对吧?如果您被告知有一项新服务将按照您的维护 cron 执行所需的 10 分钟准确收费,该怎么办?您不想简单地切换到新服务吗?这正是无服务器采用如此迅速和广泛的原因。它降低了多个组织的后端费用,并减少了服务器维护的麻烦。

云服务提供商(AWS、Azure 等)很头疼地确保无服务器应用程序在需要时准确可用且数量充足。因此,在高负载期间,您可以调用多个无服务器应用程序,而在正常负载期间您可以调用单个应用程序。当然,您只需在高负载期间支付额外的调用费用。

什么是无服务器?

上面解释的概念看起来很棒,但是如何实现呢?你需要一个框架。它被称为,呃,无服务器

无服务器框架帮助我们开发和部署旨在以无服务器方式运行的功能/应用程序。该框架向前迈出了一步,负责部署无服务器函数运行所需的整个堆栈。什么是堆栈?该堆栈包含部署、存储和监控无服务器应用程序所需的所有资源。

它包括实际的函数/应用程序、存储容器、监控解决方案等等。例如,在 AWS 的上下文中,您的堆栈将包含实际的 Lambda 函数、用于函数文件的 S3 存储桶、链接到您的 Cloudwatch 资源。无服务器框架为我们创建了整个堆栈。这使我们能够完全专注于我们的功能。无服务器消除了维护服务器的麻烦,无服务器(框架)消除了创建和部署运行我们的功能所需的堆栈的麻烦。

无服务器框架还负责为我们的功能/应用程序分配必要的权限。一些应用程序(我们将在本教程中看到的示例)甚至需要将数据库链接到它们。无服务器框架再次负责创建和链接数据库。无服务器如何知道堆栈中包含哪些内容以及提供哪些权限?所有这些都在 serverless.yml 文件中提到,这将是我们在本教程中的主要关注点。在接下来的章节中将详细介绍它。

AWS 中的无服务器

AWS 的许多服务都属于“无服务器计算”的范畴。您可以在此处找到完整的组织列表。有计算服务、集成服务,甚至数据存储服务(是的,AWS 甚至有无服务器数据库)。在整个教程中,我们将重点关注 AWS Lambda 函数。那么什么是AWS Lambda?AWS Lambda 网站将其定义如下 -

AWS Lambda 是一种无服务器计算服务,让您无需预置或管理服务器、创建工作负载感知集群扩展逻辑、维护事件集成或管理运行时即可运行代码。

通俗地说,AWS Lambda 是您在 AWS 上进行无服务器计算的窗口。正是 AWS Lambda 让无服务器概念如此流行。您需要做的就是定义您的函数和函数的触发器,并且该函数将在您希望调用它时准确地调用它,并且您只需为该函数执行所需的时间付费。此外,您可以将 AWS Lambda 与 AWS 提供的几乎所有其他服务链接 - EC2、S3、dynamoDB 等。

因此,如果您已经成为AWS生态系统的一部分,那么Lambda集成是相当无缝的。如果您像我第一次了解 AWS Lambda 时一样刚接触 AWS 生态系统,那么它将成为通往 AWS 世界的良好门户。

在本教程中,我们将学习有关使用无服务器框架部署 AWS Lambda 函数的所有信息。你兴奋吗?然后继续下一章开始。