Serverless理念以此为核心出发点,将服务器的管理工作从开发者的关注列表中剥离,可令开发者将主要精力投入到业务逻辑中,为全栈开发提供了更多的可能性。...10月20日, JSConf大会上,腾讯云中间件总经理 Yunong Xiao 将发表《Serverless Is Your BFF》主题演讲,从前端发展演进、前端到全栈的路径和问题以及如何利用Severless...并现场通过live code,完整演示如何基于Serverless,在5分钟内完成从编码、调试、发布到压测整个研发流程。...讲师介绍 Yunong Xiao is General Manager and Distinguished Architect of Serverless, Middleware, and Devops...在此之前,曾主导Netflix API Serverless平台的体系架构,使微服务更易于开发人员使用,同时,也让容器在Netflix得到规模化使用。
❝ 前沿:前段时间在公司内部分享了关于bff和serverless的知识体会,从概念、特征、和应用场景再到简单的实践,今天借此机会跟大家分享,什么是BFF? 什么是serverless?...❞ 1.BFF ❝ 在聊Serverless之前跟大家先谈谈BFF,BFF顾名思义就是Backend For Frontend,用中文解释就是服务于前端的后端,那么为什么会有BFF?...❞ 前端同学和后端同学都各有各的道理,有没有一种解决方案可以化解这种尴尬的场景,于是就有了BFF 1.1 介绍 ❝ BFF层初衷是在后台服务与前端(客户端)之间添加一层,接下来我们来看看下面这张图 ❞
复用问题 拆开之后,多个BFF之间容易产生冗余代码,尤其是一些通用的后端逻辑(如授权、认证、限流等等) 为了消除BFF间的代码冗余,一般采用两种做法: 要么多BFF合一 要么在BFF之上加一层Edge...回到复用问题本身,我们想消除冗余,又不想因为抽离可复用代码而导致BFF间紧耦合,所以就有了一种折衷的态度:容忍BFF间冗余、消除单BFF内冗余。...也就是允许一定程度的BFF间冗余 当然,复用的前提是多BFF技术栈相同,然后识别出冗余部分,并重构掉。...广义的,可以理解为更细粒度的BFF,即每块业务对应一个BFF(不再按用户体验差异去分) 网关层负责实现通用的边界服务,如认证、限流等,让BFF更专注于业务相关的部分: 前端体验 ------------...微服务架构~BFF和网关是如何演化出来的 蚂蚁财富的BFF实践
Sam Newman详细地说明了BFF。...客户端都不是直接访问服务器的公共接口,而是调用BFF层提供的接口,BFF层再调用基层的公共服务,不同的客户端拥有不同的BFF层,它们定制客户端需要的API。...而使用BFF在很大程度能避免这样的问题。...使用BFF的另一个优点就是当由于某一客户端需要调用调用多个不同的服务端接口来实现某一功能时,可以直接在对应的BFF层编写相应的API,而不会影响到基层的公共服务,且客户端不用直接向多个后台发起调用,可以优化性能...当然,凡事有利有弊,BFF带来便利好处的同时也会引起一些问题,如代码重复,加大开发工作量等。所以在使用时需要结合现实情况仔细斟酌,符合项目的应用开发背景。例如蚂蚁财富使用BFF的场景如下。 ?
bff和node没有强绑定关系,但让前端人员去熟悉node之外的后端语言学习成本太高,所以技术栈上我们使用node作为中间层,node的http框架我们使用的是nestjs。...BFF作用 BFF(Backends For Frontends),就是服务于前端的后端,经过几个项目的洗礼,我对它也有了一些见解,我认为它主要有以下作用: 接口聚合和透传:和上文所讲的一致,聚合多个接口...需求变化频繁,接口经常需要变动:后端有一套稳定的领域服务为多个项目服务,变动的话成本较高,而bff层针对单一的项目,在bff层变动可以实现最小成本的改动。...总结 经过上文我们可以对BFF层的概念有一个基本的了解,并且按照步骤可以自己搭建一个Nestjs小应用,但和企业级应用差距还很大。...BFF NestJs官方文档
BFF — Backend For Frontends,经典分布式架构设计模式之一。我在学习和工作经验累积中,逐渐加深了对 BFF 的理解。...寻找历史的线头 在毫无头绪的情况下,我们可以首先从Thoughtworks技术雷达中 BFF 的条目入手,去找到一些历史的蛛丝马迹。BFF 条目的发布时间是在 2015 年 11 月10 日。...终于,我们可以说 BFF 模式是在解决 SoundCloud的分布式系统问题中首次出现。下面,让我们一起回到BFF第一次发挥威力的现场吧。...BFF 新的形态出现了,具体如下图所示: 随着时间推移,SoundCloud 的 BFF 也在增加。他们已经在生产环境同时维护着 5 个 BFF 了。为了进一步提高生产力,减少不必要的重复。...SoundCloud 的 BFF 依然随着时间在横向增长,不同的是这种横向增长不会再引起任何问题了。最终,BFF 模式的架构演变成与我们现在使用的几乎一致了。
多端共用一个BFF ?...针对多端共用服务接口的场景,我们将基础的数据服务与BFF进行了分离,数据服务仅提供数据的增删改查,并不过多涉及业务的判断处理,所有业务判断处理都交给BFF来把控,遇到的一些业务逻辑异常也同样由BFF格式化处理后展示给访问端点...这种设计方式同样存在一定的问题,虽然基础服务与BFF进行了分离,我们只需要在BFF层面进行业务判断处理,但是多个端共用一个BFF,也会导致代码编写复杂度增高、代码可阅读性降低、多端业务耦合。...每个端提供一个BFF ? 如果我们为每一个端点都提供一个BFF,每个端点的BFF处理自身的业务逻辑,需要数据时从基础服务内获取,然后在接口返回之前进行组装数据用于实例化返回对象。...这样基础服务如果有新功能添加,BFF几乎不会受到影响,而我们如果后期把App端点进行拆分成Android、IOS时我们只需要将app-bff进行拆分为android-bff、ios-bff,基础服务同样也不会受到影响
以下文章来源于天猫精灵技术,作者亚顿 TL;DR 通过将 BFF 构建于 serverless 之上,将人工智能实验室(天猫精灵)数十个中后台应用整合到了一个统一入口。...本文主要讲述了 BFF 局限性以及我们对应的 serverless 解决方案,其中平台核心功能包括: 云函数: 将 BFF 层的 Node 应用代码拆解成独立云函数,支持动态编写、秒级部署,平台提供隔离的沙箱容器进行执行...但传统的 serverless 仍然只能解决一个点的问题,如果我们做的更进一步,将 serverless 与已有的 BFF、FE 整合,那是不是有可能同时解决上述问题?...从IaaS到FaaS—— Serverless架构的前世今生 BFF in serverless 然而独立的 FaaS 其实并不具备实用性,因为他是无状态的,无法进行存储意味着无法针对不同用户提供服务。...而 BFF in serverless 在 serverless 架构的基础上,提供了一套完善的 BaaS SDK、监控日志体系以及前端解决方案,从而更进一步降低了开发者门槛。
一.Serverless 与 FaaS Serverless 是一种云计算理念,即无服务器计算(Serverless Computing): Serverless suggests that the cloud...BFF Backend For Frontend (BFF)(用户体验适配层)的理念已经不新鲜了: 给每种用户体验对应一个后端(one backend per user experience) 也就是说...: BFF 是面向特定用户体验的,由实现这部分 UI 的前端团队负责实现及维护(即 UI 与对应的 BFF 由同一个团队负责) 在 2018 年(甚至更早)就有一些团队基于 Node.js 展开了 BFF...的探索和实践,由前端模块的开发者负责完成对应的 BFF 层上的一些接口开发工作 有了 BFF 层,后端工程师能够专注于业务领域,但对前端工程师提出了更高的要求:需要前端型全栈工程师,并且随着 BFF...层的发展,要求越来越高(扩展性、稳定性等) FaaS 的出现很好地解决了这个问题,BFF 概念升级为 SFF(Serverless For Frontend),将专业性要求较高的后端服务框架部分封装到了
为了能够更清晰地理解Serverless,有一种架构模式可以作为对比,即BFF(Backends for Frontend,为前端服务的后端)。...BFF-从平台无关性到平台差异化 BFF简单来说就是在原有的一体化服务端基础上,针对不同的业务平台分别开发一层独有的、很薄的服务,见下图。 ?...BFF未解决的问题 目前业内对BFF普遍实践模式是将BFF分发到负责各平台技术开发的团队,比如App团队负责Mobile BFF、前端团队负责PC web和H5 BFF等等。...所以目前大多数BFF仍然由传统前端之外的专人负责,即便是Node.js BFF。 也就是说,BFF并未解决前端成为全栈的关键性问题,而这些问题便是Serverless的针对点。...Serverless的。
为了能够更清晰地理解 Serverless,有一种架构模式可以作为对比,即 BFF(Backends for Frontend,为前端服务的后端)。...BFF-从平台无关性到平台差异化 BFF 简单来说就是在原有的一体化服务端基础上,针对不同的业务平台分别开发一层独有的、很薄的服务,见下图。...BFF未解决的问题 目前业内对BFF普遍实践模式是将BFF分发到负责各平台技术开发的团队,比如App团队负责Mobile BFF、前端团队负责PC web和H5 BFF等等。...所以目前大多数BFF仍然由传统前端之外的专人负责,即便是 Node.js BFF。 也就是说,BFF 并未解决前端成为全栈的关键性问题,而这些问题便是 Serverless 的针对点。...Serverless 的。
为了能够更清晰地理解Serverless,有一种架构模式可以作为对比,即BFF(Backends for Frontend,为前端服务的后端)。...BFF-从平台无关性到平台差异化 BFF简单来说就是在原有的一体化服务端基础上,针对不同的业务平台分别开发一层独有的、很薄的服务,见下图。 BFF承担了一部分的业务逻辑,这部分逻辑通常是平台独有的。...BFF未解决的问题 目前业内对BFF普遍实践模式是将BFF分发到负责各平台技术开发的团队,比如App团队负责Mobile BFF、前端团队负责PC web和H5 BFF等等。...所以目前大多数BFF仍然由传统前端之外的专人负责,即便是Node.js BFF。 也就是说,BFF并未解决前端成为全栈的关键性问题,而这些问题便是Serverless的针对点。...Serverless的。
/post/6997250621627858957 分享大纲 本次分享主要从业务背景、BFF 核心架构、基于 Serverless 的 BFF 改造、总结四个部分组成。...鉴于这些痛点,我们引入了 SFF(Serverless For Frontend)架构,通过将 BFF 构建于 Serverless 之上,用云函数的方式取代传统基于 NodeJS 的 BFF 层。...基于 Serverless 的BFF改造 SFF 架构 上图是改造后的BFF架构,相比于一代的 BFF 架构,这里主要多了两块内容,一块是 FaaS 层,另外一块是开发者平台。...最终的实现如下: 以上就是基于 Serverless 的 BFF 改造的核心内容,相比于一代的 BFF 架构,基于 Serverless 的BFF改造有以下几点优势: 效率提升:独立云函数,动态编写,...BFF 架构能够有效的做到业务编排、字段转换、个性定制,且让前端进入全栈领域。构建于 Serverless 之上的 BFF 进一步的降低了运维、机器成本,提高了人效
Serverless 综述 1.1 专业术语 BFF:Backend For Frontend,服务于前端的后端。 SOC:Separation of concerns,关注点分离。...1.3.2 基于 Serverless 的 BFF 架构 基于 Serverless 的 BFF 降低了前端在服务器运维上的成本,能够快速地完成函数的部署,通过按需计费的方式,解决了计算资源浪费而最终造成的服务器费用问题...1.6 Serverless 与前端技术 1.6.1 BFF BFF 主要通过在前端和后端之间增加一个“胶水层”(由对应的客户端负责编写),实现对客户端所需要的 API 的聚合和裁剪,从而解决前后端分离之后所带来的协作问题...BFF 层只关注两件事情,即聚合和裁剪。...通过将 BFF 的 Node.js 应用迁移至 FaaS 服务,将有效提高 BFF 的研发和运维效率。
Serverless则更进一步,弱化开发者对软件架构的感知和关注。 那么FaaS+BaaS的Serverless模型还缺什么?云开发如何弥补Serverless的不足?...云开发推动研发职能结构的洗牌 自BFF诞生以来一直存在着“BFF层谁来做”的争议。BFF层本质上是server,要求开发者有服务端开发的领域知识和能力。...那么BFF交给后端开发者不就行了吗?如此,那跟传统的研发职能分配有何不同呢?前端仍然写交互、后端仍然写逻辑,协作流程上没有任何改动,意义何在?效率何在?...则必然,前后端分离的边界下沉到BFF之下,进而传统的前后端职能分配结构被重新洗牌。 而洗牌之后的工程模型也更新换代。 ?...延伸阅读: 云开发如何解决serverless对端的最后一公里问题 Serverless——前端的3.0时代
BFF (Backend For Frontend) ,通常指服务于前端的后端。 SFF (Severless For Frontend) , BFF 架构的升华,落地到 Serverless 中。...目前,NOW 直播团队正在逐步接入 NGW,完成 BFF 向 SFF 架构的演进。 从前后端分离到 BFF,前端的能力不断扩大,逐渐涉猎到后端和运维,对前端人员的技术能力要求也越来越高。...NOW 直播 IVWEB 团队从提升研发效率的角度,在调研了腾讯云Serverless之后,团队决定接入云函数SCF产品,对 BFF 架构结合 Serverless 进行了新的尝试。...这里的业务可以是: 静态页面 BFF 架构下的 Node 服务 SFF 架构下的 Serverless 直出或 Node 服务 咦,这不是 Nginx 做的工作吗?...六、Serverless 无服务 在 NGW 分发层的基础上,结合腾讯云 SCF,就能更方便灵活地对现有 Node 服务进行 BFF 到 SFF 的演进。
我们就可以考虑使用 BFF 了。 BFF(Backend for Front) BFF 不是一个架构,而是一个设计模式,它的主要职责是为前端设计出优雅的后台服务,即一个 API。
那么引用了 BFF 之后,前端应用将直接和 BFF 通信,BFF 再和后端进行 API 通信,所以本质上来说,BFF 更像是一种“中间层”服务。...下图看到没有BFF以及加入BFF的前后端项目上的主要区别。 1. 没有BFF 的前后端架构 ?...加入了BFF 的前后端架构 ? 加入了BFF的前后端架构中,最大的区别就是前端(Mobile, Web) 不再直接访问后端微服务,而是通过 BFF 层进行访问。并且每种客户端都会有一个BFF服务。...BFF 和 API Gateway 从上文对 BFF 的了解来看,BFF 既然是前后端访问的中间层服务,那么 BFF 和 API Gateway 有什么区别呢?...BFF 解析到客户端请求之后,会通过 BFF 端的服务发现,去对应的微服务后台通过 CQRS 的方式进行数据查询或修改。 1. BFF 端技术栈 ?
领取专属 10元无门槛券
手把手带您无忧上云