Serverless 计算到底是什么?—— 白话 Serverless 架构详解

Serverless 计算到底是什么?

在当前互联网技术快速发展的时代,Serverless 架构成为了应用架构的一种新范式。Serverless 架构是什么呢?到底它会带来哪些变化和优势?本文将深入浅出地为您详细解析。

一、Serverless 架构的概念

Serverless 架构是通过“函数即服务”(Function as a Service,FaaS)方式提供计算资源和服务,让开发者专注于业务逻辑开发而不用关心服务器底层技术和运维。这种架构可以实现按需调用、高效运行、实时扩展,并且可以在云端提供无服务器环境下的可扩展应用程序。

传统的服务器模式通常需要具备如下功能:

  1. 确保应用程序的稳定性

  2. 提供一个可靠的运行环境

  3. 对用户请求进行分发、路由和负载均衡

  4. 管理底层服务器的资源

然而,这些功能的实现会引入许多问题:

  1. 需要消耗很多时间和精力去维护和管理服务器

  2. 随着用户和流量的增加,需要更多的服务器和硬件资源来维持系统正常运行

  3. 满足高性能、高可用、高伸缩性等需求可能需要更多的硬件资源

Serverless 架构的“即开即用”特性则有效地解决了这些问题。

二、Serverless 架构的优势

  1. 降低运维成本

使用 Serverless 架构,您不再需要维护底层的服务器,简化了服务器的运维流程,降低了人工成本。

  1. 减少资源浪费

Serverless 架构基于按需计费,充分利用可用资源,减少不必要的资源浪费。

  1. 弹性扩展

Serverless 架构会自动调控和扩容服务,特别适用于应对峰值流量的突发情况,使得应用程序的弹性扩展变得更加容易和便捷。

  1. 快速开发

Serverless 架构允许开发人员快速开发和部署应用程序,专注于业务逻辑,而无需关注底层技术和基础设施。

  1. 无需考虑硬件成本

使用 Serverless 架构,您无需考虑硬件成本,纯粹以函数运行时间为基础单元付费,大大降低了开发成本。

三、实例分析

接下来,我们以一个实例进行分析,看看如何构造 Serverless 函数来运行 Web 服务。具体案例将会基于 AWS Lambda 的 Node.js 运行时。

1. 创建一个 Lambda 函数

我们可以通过在 AWS 控制台中创建一个新的 Lambda 函数来开始这个实例。为此,您需要按照以下步骤操作:

  1. 打开 AWS Lambda 控制台

  2. 单击“创建函数”

  3. 按照界面提示完成相关信息的填写和部署

现在,我们已经成功创建了一个 Lambda 函数。

2. 编写代码并上传到 Lambda

接下来,我们需要编写业务逻辑代码,并将其部署到 Lambda。在我们的例子中,我们将使用 Node.js 和 Express,一个流行的 Web 应用程序框架。

首先,创建一个名为 server.js 的新文件,并粘贴下面的代码。

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(3000, () => {
    console.log('Server listening on port 3000');
});

这个 Express 应用程序响应 / 路径上的 HTTP GET 请求,发送 “Hello World!” 作为响应。应用程序监听端口 3000。

接下来,我们需要将这个代码上传到 AWS Lambda。为此,有两个选项:使用 AWS Lambda 管理窗口或使用命令行接口 (CLI) 工具。

使用 AWS Lambda 管理窗口:

  1. 将代码复制到 AWS Lambda 管理窗口的编辑器中

  2. 将运行时选择为 Node.js (v10.x)

  3. 设置处理器函数名称为“handler”

  4. 单击“部署”

使用命令行接口 (CLI) 工具:

  1. 安装 AWS CLI 工具

  2. 编写 deploy.sh,其中包含以下命令:

zip -r function.zip server.js node_modules
aws lambda create-function --function-name hello-world --runtime nodejs10.x 
--handler server.handler --zip-file fileb://function.zip
  1. 在命令行中运行此命令

运行这些命令并浏览部署后的 URL,在您的浏览器中看到“Hello World!”响应。

四、总结

本文深入浅出地剖析了 Serverless 架构的概念和优势,并在示例代码中给出了如何使用 AWS Lambda 实现 Serverless 架构的具体实现方法。了解和掌握 Serverless 架构对 Web 应用程序的开发、优化和部署都将是您未来职业生涯的重要技能。

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


纠错反馈