通俗解析 Serverless & FaaS

在以前的 Web 开发中,我们通常需要购买服务器并安装环境,手动部署应用程序。因此,我们花费了大量的时间和精力来维护基础架构。但是 Serverless 技术的出现赋予开发者以更好地专注于编写代码,而不必分心于服务器的维护。

什么是 Serverless?

Serverless 是一种计算资源的分配方式,允许开发人员创建和运行应用程序,而不必担心服务器和操作系统的细节。在 Serverless 架构中,开发人员需要关注应用程序代码,而服务供应商则负责为其提供自动化基础设施,以处理所有相关操作。

FaaS

FaaS(Function as a Service)则是 Serverless 的一种实现方式。FaaS 可以认为是在更细粒度的单位上进行计算的 Serverless 实现。开发人员只需将函数定义为事件处理程序,服务提供商则在需要时调用该函数,而不必考虑将其部署到服务器上。

分布式应用程序应向其贡献者提供指定功能。这些功能被拆分成函数,这些函数可以单独扩展和调用。由于每个函数针对某种特定需求进行优化,因此可以实现更高的可伸缩性和更快的响应时间。

FaaS 的优点

使用 FaaS 有以下优点:

  • 无需维护服务器,无需添加和删除实例
  • 快速部署和启动
  • 可以管理并动态调整计算资源基础架构
  • 实现 Lambda 调用来瞬间扩展应用程序
  • 可以按请求条件选择服务提供商

与传统模型的区别

在传统模型中,开发人员需要考虑服务器硬件、操作系统、网络连接等问题,而对于 Serverless 模型,开发人员只须关注业务逻辑的实现,底层的基础设施的管理由云服务提供商完成。

示例代码

下面是一个实现简单函数的 FaaS 示例代码:

exports.handler = (event, context, callback) => {
   callback(null, 'Hello from Lambda');
};

此代码可以在 AWS Lambda 上运行。当 Lambda 函数被调用时,事件(event)传递给函数,Lambda 可以使用它执行任意云计算任务,并通过使用回调函数(callback)或 Promise API 来返回功能执行的结果。

总结

通过 Serverless 的架构,开发人员能够更专注于业务逻辑的实现,而不必像传统模型一样去维护基础设施。FaaS 是 Serverless 的一种实现方式,它可以大大提高应用程序的可伸缩性和响应时间。如果你还没有使用过 Serverless 和 FaaS 的经验,,那么现在正是时候去尝试并深入学习了。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6593b082eb4cecbf2d8579b2


纠错反馈