无服务器 – 简介
无服务器 – 简介
什么是无服务器?
嗯,这个名字给了你一些提示。无需为维护服务器而头疼的计算——这是无服务器计算(或简称无服务器)的关键。这个概念非常具有革命性和破坏性。它已被广泛采用。几个新的应用程序从设计无服务器后端开始,带有专用服务器的遗留应用程序也在慢慢迁移到无服务器架构。那么是什么导致了无服务器的广泛采用?与所有事情一样,经济学使无服务器变得非常有利。
你看,使用无服务器,你只需为你使用的东西付费。想象一下,您需要每天对数据库执行一些日常维护。这个过程每天可能需要大约 10 分钟。
现在,在没有无服务器计算的情况下,您的维护 cron 可能驻留在服务器中。除非您在剩余时间内有其他事情与您的服务器有关,否则您最终可能会为一项需要 10 分钟的任务支付 24 小时的费用。太浪费钱了吧?如果您被告知有一项新服务会针对您的维护 cron 执行所需的 10 分钟向您收费,该怎么办?您不想简单地切换到该新服务吗?这正是无服务器采用如此迅速和广泛的原因。它降低了几个组织的后端费用,也减少了他们的服务器维护难题。
云服务提供商(AWS、Azure 等)头疼地确保无服务器应用程序在需要时准确可用,并且数量充足。因此,在高负载期间,您可能会调用多个无服务器应用程序,而在正常负载期间您可能会调用单个应用程序。当然,您只需为高负载期间的额外调用付费。
什么是无服务器?
上面解释的概念看起来很棒,但你如何实现它呢?你需要一个框架。它被称为,呃,无服务器。
无服务器框架帮助我们开发和部署旨在以无服务器方式运行的功能/应用程序。该框架向前迈进了一步,负责部署我们的无服务器功能运行所需的整个堆栈。什么是栈?好吧,该堆栈包含部署、存储和监控无服务器应用程序所需的所有资源。
它包括实际的函数/应用程序、存储容器、监控解决方案等等。例如,在 AWS 的上下文中,您的堆栈将由您的实际 Lambda 函数、用于您的函数文件的 S3 存储桶、链接到您的 Cloudwatch 资源的 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 函数的所有信息。你兴奋吗?然后继续下一章开始。