Serverless 架构(无服务器架构)是一种新兴的技术架构,它可以使得开发者、企业和组织更加专注于应用程序的业务逻辑,而无需关心底层的基础设施和服务器运维。Serverless 架构的实现方式是利用云计算服务提供商的无服务器平台,例如 AWS Lambda、Azure Functions 和 Google Cloud Functions,来运行代码片段(函数)。
在 Serverless 架构出现之前,开发者需要在云计算服务提供商中租用虚拟机或容器等基础设施,而这些基础设施可以称之为“服务器”。在这种传统的架构中,开发者需要关注服务器选型、安全管理、操作系统维护、网络配置等问题。除此之外,开发者还需要考虑如何优化服务器的使用率和成本。
而在 Serverless 架构中,开发者将自己的代码片段(函数)上传至云计算服务提供商的平台上。当某个事件触发时,例如 HTTP 请求、消息队列等,云计算服务提供商会自动为你启动相应的代码片段,而这些代码片段的运行时间都是按照毫秒计算的,只有当代码被触发时才会消耗计算资源,因此可以大大节省成本。
解决的问题
使用 Serverless 架构可以解决一些传统架构中存在的问题,包括但不限于:
部署复杂度的降低
传统的应用部署需要先准备服务器,再安装、配置各种软件、库以及运行环境。而这些过程可能需要花费大量的时间和精力。而在 Serverless 架构中,只需要执行简单的函数上传和配置操作即可。
灵活性的提高
相较于传统的部署方式,Serverless 架构更加灵活。因为 Serverless 架构支持按需分配资源,即只在需要的时候进行计算,而无需长期运行。这意味着您只需要在需要的时候付费,而不必为服务器维护、管理和扩展付费。同时也允许您根据需要快速扩展计算、存储和其他资源。
可维护性的提高
Serverless 架构可以为开发者提供一种更加简单的部署方式。例如,可以利用全自动缩放功能来快速满足多个用户同时访问同一个应用程序的需求。同时,您还可以充分利用服务提供商的监控和日志等工具,使您可以更好地了解您的代码是如何运行的。
示例代码
对于前端开发者而言,可以使用 Serverless 架构来构建众多类型的应用程序,例如:
// 定义一个 AWS Lambda 函数 exports.handler = async (event, context) => { const { name } = event.queryStringParameters; return { statusCode: 200, body: `Hello ${name}!`, }; };
上面的示例代码是一个 AWS Lambda 函数(使用 Node.js 10. x 编写),该函数接收一个 HTTP 查询字符串参数“name”,并返回“Hello name!”的字符串响应。 响应以 200 状态码返回。
然后可以使用 API Gateway 将它暴露在互联网上:
-- -------------------- ---- ------- - -- ---- --- -- ---------- - ----- ------ ------- --- ------------- ----------- - -- ------ -- ---------- ------------ -------- ------------- ------------ - ------ ----- ----- --- -------- ----------
在上面的代码片段中,您可以看到如何定义使用 Node.js 10.x 编写的 Lambda 函数,并使用 HTTP API 将其公开暴露。从而快速地搭建一个 Serverless 应用程序。
总结
Serverless 架构作为一种新兴的技术架构,已经被广泛地使用。Serverless 架构可以使开发者更加专注于业务逻辑,减少处理基础设施的考虑,提高灵活性和可维护性。同时,Serverless 架构可以协助您更快地向市场推出新的应用程序,并降低服务器维护成本。
作为前端开发者,了解 Serverless 架构对提高技术竞争力和开发效率有很大的帮助,您可以尝试使用 Serverless 架构来构建您的下一个项目。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647c225c968c7c53b074d6eb