传统 BFF (Backend For Frontend) 架构1、一方面 , 对不同的设备需要使用不同的 API , 另一方面 , 由于微服务导致前端接口调用的复杂 , 所以前端开始使用 BFF 的方式 , 对接口进行聚合裁剪 , 以得到适用于前端的接口 。
2、最底层的就是各种后端微服务 , 最上层就是各种前端应用 。在微服务和应用之前 , 就是通常由前端开发的 BFF 。
-手机端-web端-嵌入式-
这样的架构解决了接口协调的问题 , 但也带来了一些新的问题 。
传统 BFF (Backend For Frontend) 的痛点比如针对每个设备开发一个 BFF 应用 , 也会面临一些重复开发的问题 。而且以往前端只需要开发页面 , 关注于浏览器端的渲染即可 , 现在却需要维护各种 BFF 应用 。以往前端也不需要关心并发 , 现在并发压力却集中到了 BFF 上 。总的来说运维成本非常高 , 通常前端并不擅长运维 。
Serverless 则可以帮我们很好的解决这些问题 。用Serverless , 我们可以用一个个函数来实各个接口的聚合裁剪 。前端向 BFF 发起的请求 , 就相当于是 FaaS 的一个 HTTP 触发器 , 触发一个函数的执行 , 这个函数中来实现针对该请求的业务逻辑 , 比如调用多个微服务获取数据 , 然后再将处理结果返回给前端 。这样运维的压力 , 就由以往的 BFF Server 转向了 FaaS 服务 , 前端再也不用关心服务器了 。
基于 Serverless 的 BFF 架构上图则是基于 Serverless 的 BFF 架构 。为了更好的管理各种 API , 我们还可以添加网关层 , 通过网关来管理所有 API(比如阿里云的网关) , 比如对 API 进行分组、分环境 。基于 API 网关 , 前端就不直接通过 HTTP 触发器来执行函数 , 而是将请求发送至网关 , 再由网关去触发具体的函数来执行 。
API Gateway
在没有API网关作为统一出口的情况下 , 需要调用方自己组合各种服务 , 而且容易让调用方感知后端各种服务的存在 , 各个需要各个做很多相同的工作 。
加入API Gateway之后的作用
一般也会把路由 , 安全 , 限流 , 缓存 , 日志 , 监控 , 重试 , 熔断等都放到 API 网关来做 , 然后服务层就完全脱离这些东西 , 纯粹的做业务 , 也能够很好的保证业务代码的干净 , 不用关心安全 , 压力等方面的问题 。
基于 Serverless 的服务端渲染传统服务端渲染基于当下最流行的三大前端框架(React.js/Anguler/Vue.js) , 现在的渲染方式大部分都是客户端渲染 。页面初始化的时候 , 只加载一个简单 HTML 以及对应的 JS 文件 , 再由 JS 来渲染出一个个页面 。这种方式最主要的问题就是白屏时间和 SEO 搜索引擎优化
为了解决这个问题 , 前端又开始尝试服务端渲染 。本质思想其实和最早的模板渲染是一样的 。都是前端发起一个请求 , 后端 Server 解析出一个 HTML 文档 , 然后再返回给浏览器 。只不过以往是 JSP、PHP 等服务端语言的模板 , 现在是基于 React、Vue 等实现的同构应用 , 这也是如今的服务端渲染方案的优势 。
但服务端渲染又为前端带来了一些额外的问题:运维成本 , 前端需要维护用于渲染的服务器 。
基于serverless的服务端渲染Serverless 最大的优点就是可以帮我们减少运维 , 那 Serverless 能不能用于服务端渲染呢?当然也是可以的 。
推荐阅读
- 阿里云图片存储 阿里云盘资源共享站
- 阿里网络拟受让众信旅游6.04%股份 转让价款共计2.4亿元
- 青藤云安全值得去吗 青藤云安全公司怎么样
- 阿里云服务器使用教程centos 阿里云服务器使用教程windows
- spss统计分析大全武松百度云 spss统计分析大全pdf
- oppo手机怎么备份所有数据到新手机 oppo手机怎么备份所有数据到云端
- 云南12个最好玩的地方 七彩云南欢乐世界
- 想什么看什么放电影似的
- 关于岁月的唯美句子107句
- 遭性侵阿里女员工被诉名誉侵权,起诉者是他
