什么是 Serverless 架构?
“Serverless 架构”是指一种从开发团队和运维团队的角度来看,不需要考虑服务器配置、扩展性等基础设施的能力。 这种架构方式,开发者只需要关注声明式函数实现、事件触发等业务代码的实现,不需要调整服务器、操作系统、运行时等基础设施。由服务提供商提供托管平台来管理服务器、操作系统、安全、监控等基础设施,以付费方式按使用量提供。因此,“Serverless 架构”也经常被称为“无服务器架构”或“函数即服务”(Function-as-a-Service,FaaS)。
为什么要使用 Serverless 架构?
Serverless 架构能够让前端团队和运维团队更加专注于业务逻辑,无需在服务器配置、扩展性等基础设施上花费时间和经历,从而提升团队创作的效率。
此外,Serverless 架构可以自动水平扩展,这意味着你无需预先购买或配置服务器资源来应对高峰期,只需支付少量额度就可立即应对流量激增的情况。
相比于传统的服务器架构,结合 Serverless 架构进行应用开发可以大幅度降低成本,同时也更具灵活性和可扩展性,有效提升了开发效率和用户体验。
Serverless 架构的使用场景
- 静态资源网站的部署,如前端静态资源、博客等
- 数据转换、ETL
- 处理后台数据、管理面板
- 无状态的 API 服务
- 应用数据使用临时性存储
- 通知服务、推送服务
- AI/ML 等计算密集任务
首先我们来分析下这个运营商的充值接口服务的场景特点。运营商的充值接口服务是一种比较常见的业务场景,我们需要实现一个能够接收指定参数,并向指定手机号码充值一定金额的服务。在传统的架构中,我们通常需要开发一个 Web 服务来完成这个业务,并需要考虑服务的性能、可靠性以及扩展性等因素。
而在 Serverless 架构中,我们可以使用 AWS Lambda 直接实现此业务功能。AWS Lambda 是一种无服务器计算的服务,可以让你运行代码而无需管理服务器。它可以自动的处理请求的线程管理、数据传输、日志注释和监控。我们可以在 AWS Lambda 中定义一个函数来实现这个业务逻辑,业务逻辑如下:
- 根据请求参数获取被充值手机号和充值金额
- 调用运营商的接口进行充值操作
- 将充值结果返回给请求方
这些操作可以通过如下 Lambda 代码实现:
-- -------------------- ---- ------- --------------- - ----- ------- -- - --- - ----- - ------------ ------ - - ----------------------- -- ---------- ----- ------ - ----- --------------------- -------- ------ - ----------- ---- ----- ---------------- ------ --- -- - ----- ------- - ------ - ----------- ---- ----- ---------------- ----- --- -- - -- ----- -------- --------------------- ------- - -- ------------ -
在定义Lambda函数之前,我们需要在 AWS Lambda 上创建一个充值角色,并设置该充值角色的访问权限。创建充值角色时必须注意该角色的权限应该足以访问并操作运营商的充值接口服务。
接下来,我们将代码打包成一个Lambda函数,并在 AWS Lambda 上创建充值函数,并将该函数绑定到API Gateway中,以实现基于HTTP请求方式的触发功能。
API Gateway是AWS的一个托管服务,提供了一种将HTTP请求与Lambda函数交互的简单方法,允许用户对API的REST接口进行端到端的流量控制、身份验证、监控和缩放。通过API Gateway让Lambda函数与客户端发生交互,用户能更快速地实现充值接口服务。
总结
通过 Serverless 架构实现运营商的充值接口服务,我们可以获得更高的开发效率、更低的成本、更高的可靠性和更好的扩展性。由于我们不需要考虑基础设施,我们可以把更多的注意力放在用户体验和业务逻辑的完善上。
当然,Serverless 架构也并非所有场景下的最佳选择。 在具体应用中,我们应该根据业务需求、技术方案、团队人员实力来选择最合适的架构方案,为业务创造更高的价值。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6492cc0048841e9894098cc7