BFF(三)Serverless

Posted by 汪洋龙 on Wednesday, January 11, 2023

1. BFF 问题

  • 复杂性增加:添加 BFF 层会增加系统的复杂性,因为它需要在后端 API 和前端应用程序之间处理请求和响应
  • 性能问题:如果 BFF 层的实现不当,可能会导致性能问题,因为它需要在后端 API 和前端应用程序之间传输大量数据
  • 安全风险:如果 BFF 层未得到正确保护,可能会导致安全风险,因为它可能会暴露敏感数据
  • 维护成本:BFF 层需要维护和更新,这会增加维护成本
  • 测试复杂性: 由于 BFF 层需要在后端 API 和前端应用程序之间进行测试,因此测试可能会变得更加复杂
  • 运维问题: 要求有强大的日志、服务器监控、性能监控、负载均衡、备份冗灾、监控报警和弹性伸缩扩容等

2. Serverless

  • 这些问题可以通过 Serverless 来解决
  • Serverless = Faas (Function as a service) + Baas (Backend as a service)
  • FaaS(Function-as-a-Service)是服务商提供一个平台、提供给用户开发、运行管理这些函数的功能,而无需搭建和维护基础框架,是一种事件驱动由消息触发的函数服务
  • BaaS(Backend-as-a-Service)后端即服务,包含了后端服务组件,它是基于 API 的第三方服务,用于实现应用程序中的核心功能,包含常用的数据库、对象存储、消息队列、日志服务等等

Serverless

3. Serverless 优势

  • 节省成本:在传统架构中,你需要为应用程序所使用的服务器付费,即使它们没有被使用。在 Serverless 架构中,你仅需为实际使用的资源付费,这可以节省大量成本
  • 更快的开发周期Serverless 架构允许开发人员更快地构建和部署应用程序,因为它们可以更快地获得所需的资源
  • 更好的可伸缩性Serverless 架构可以自动扩展来满足增长的流量需求,无需人工干预
  • 更好的可维护性:在 Serverless 架构中,你无需担心底层基础架构的维护,因为这些工作由云服务提供商负责
  • 更高的可用性:由于 Serverless 架构具有自动扩展功能,因此它可以更好地应对突发流量,从而提高应用程序的可用性

4. Serverless 的缺点

  • 复杂性Serverless 架构可能会使应用程序的体系结构变得更加复杂,因为它需要将应用程序拆分为许多小型函数
  • 性能问题:在某些情况下,Serverless 架构可能会导致性能问题,因为函数执行需要额外的时间来启动和终止
  • 限制:每个函数都有资源限制,因此需要仔细规划应用程序的体系结构,以免超出这些限制
  • 依赖云服务提供商:使用 Serverless 架构需要依赖云服务提供商,因此如果这些服务出现故障,可能会对应用程序造成影响
  • 调试困难:由于 Serverless 架构使用许多小型函数,因此调试可能会变得更加困难