前端领域;BFF;node.js;网关;流量处理;权限;数据安全。

疑问

  • 代理服务器和网关BFF方案是一种方案么?
    • 答:是一部分,网关BFF是很大的理念,解决广泛的问题:流量处理、安全校验、权限等。
  • 网关是什么?

    • 答:是一种http概念,这里不需要过度纠结其本质,详细可以去《图解http》第5章查看。

      摘要&心得

  • 这一章是用node.js实现了一个广泛的网关BFF策略,内容很有意义,基础介绍比较浅主要是讲理念,举了一个小例子,总而言之是一个可以深究的领域。一个良好的 BFF 网关,要求开发者具有较强的综合能力。

  • 网关基础
    • 在网络层以上实现网络互连
    • 一种充当转换重任的计算机系统或设备
    • 是一个翻译器
    • 对收到的信息要重新打包,以适应目的系统的需求。
  • BFF基础
    • 即 Backend For Frontend
    • 服务于前端的后端
    • 不是一种技术,而是一种逻辑分层
  • BFF网关可以做的事
    • 流量处理
      • 请求分发、请求代理
    • 安全问题处理
      • 业务校验应该留在微服务中完成
      • 必要的检查,比如请求头检查和必要的数据消毒
      • 合理使用 Content-Security-Policy;
      • 使用 HTTPS/HSTS;
      • 设置监控报警以及调用链追踪能力。
    • 权限与校验
      • 对于大多数微服务基础架构来说,需要将身份验证和权限校验等共享逻辑放入网关层,这样不仅能够帮助后端开发者缩小服务的体积,也能让后端开发者更专注于自身领域。
      • 一般主流采用 ACL 或 RBAC 的方式,需要开发者系统学习权限设计知识
  • 一套成熟的BFF网关设计不仅仅是开发环境适用、生产环境也可以使用。
    • 可以理解为在前端和后端中间又安插了一层,专门处理前后端交叉领域的层级,通常是和网络传输相关的。
  • 类比目前的项目业务,应该放在BFF中实现的逻辑有:
    • 代理服务器解决跨域问题
    • Sentry
    • 证书?
    • nginx?
    • 权限问题token、cookie、单点登录(目前应该是后端处理)