天津网站建设-中国互联,网站 文件 上传,WordPress百度智能小程序,深圳小区封闭最新通知Serverless#xff08;无服务架构#xff09;被誉为下一代云计算#xff0c;自概念推出以来#xff0c;因为能带来研发交付速度提升与成本的降低在业内异常火爆。闲鱼客户端基于Flutter进行架构演进与创新#xff0c;通过Flutter统一Android和iOS双端提升研发效能之后无服务架构被誉为下一代云计算自概念推出以来因为能带来研发交付速度提升与成本的降低在业内异常火爆。闲鱼客户端基于Flutter进行架构演进与创新通过Flutter统一Android和iOS双端提升研发效能之后希望通过FlutterServerless解决以下问题从而进一步提升整体研发效率。
各角色间存在大量的协同导致整体研发效率低。移动端离业务越来越远服务端没有时间做底层领域沉淀。
研发架构的演进
接下来我们带着这里两个问题回顾前后端研发架构演进的历史。 PC互联网早期没有还没有前后端的概念此阶段单个业务需求通常一个开发人员可以完成研发前端网页与后端逻辑都写在一个工程中。随着业务越来越复杂原本开发者负责前后端研发已经变得效率低下此阶段随着移动互联网的爆发服务端需要服务与PC、Android、iOS等多种前端。
服务端总是有一个疑问服务端设计接口时是应该面向UI还是应该面向通用服务一个方案是抽取一部分服务端做BFFBackend For Frontend服务于前端的后端作为前后端之间的适配层核心是解决数据的聚合与编排重新探索更合理的分层协作模式。
服务端写BFF带来新的问题总是包接口无法提升个人能力。如果BFF由端侧同学开发可以解决这个问题具体技术方案也是接下来我们要思考的问题。
云端一体技术方案 Serverless由BaaSBackend as a Sevice与FaasFunction as a Service两部分组成。BaaS主要包括数据库存储、消息队列等能力针对复杂的需求建议由服务端在BaaS层封装领域服务供FaaS层使用。作为端侧开发核心关注客户端与FaaS层的代码开发。
目前公司FaaS环境已经支持Java、Kotlin、Swift、Dart、Node.js等多种语言与框架闲鱼通过AndroidFlutter、iOSFlutter、FaaSDart Runtime都使用Dart达到语言一体并且实现协议一体与工程一体。
语言一体 Android、iOS、FaaS层使用Dart语言开发实现三端语言统一有效屏蔽FaaS层语言学习成本。协议一体 通过一体化框架屏蔽通信细节前后端同一份State减少协议转换前端同学调用FaaS服务时如同调用本地函数一样简洁。工程一体 前后端可以在同一个工程中进行开发利用Dart特性可以通过Hot Reload机制进行快速开发联调。
闲鱼基于FaaS搭建Dart Runtime环境可参考《Dart编译技术在服务端的探索和应用》。
下单页一体化实践
下面以闲鱼下单页一体化为例通过页面渲染与交互两部分展开一体化实践过程。 下单渲染一体化 从上图左侧可以看出客户端渲染此页面需要在端侧请求5个接口处理渲染接口之间的逻辑把接口返回的Data转为为ViewModel。经过一体化改造之后原有在端侧的逻辑都移到FaaS层包括聚合5个领域服务处理业务逻辑进行字段映射与页面编排端侧无任何渲染与业务逻辑直接获取返回的ViewModel刷新页面。以下是云端一体之后的流程图。下单页交互操作一体化 从上图右侧可以看出有4种操作都会改变实付款原本这些操作处理逻辑都在端侧处理一体化改造之后端侧不存在任何计算逻辑客户端每次操作都会请求服务端有FaaS进行红包是否过期等数据校验再返回页面数据进行刷新。Nexus Framework基于Flutter的一体化移动端UI框架。 Logic Engine基于Flutter的一体化通信与调度框架。 Nexus Server: 基于Dart Runtime的一体化服务端框架。
代码示例
以下客户端下单页初始化的代码示例 以下是FaaS层对客户端发起的初始化请求的处理 以上是FlutterFaaS双端协议一体的开发示例双端都是通过BinderAction进行交互Action中的State是同一个类型从而有效屏蔽通信细节提高研发效率。
FlutterServerless一体化收益
下单页已经上线回顾整个研发过程云端一体研发架构不仅仅只是新的技术方案价值在于扩展端侧工作边界带来生产关系的重塑。
协同效率提升相比Flutter带来的双端一体来说该三端一体的架构进一步提升了30%整体研发效率。
业务闭环端侧还可以更快速地反馈与响应业务不断尝试从而搭建起更完善的产品模型为业务创造更多的价值。
人员成长端侧从只关注用户体验的开发资源转变为整个业务研发的技术负责人从只关注端侧的局部视角到更专注业务闭环的全局视角。Faas层调用底层领域服务来完成自己的业务原来服务端可以更加地去专注领域服务的沉淀。
总结与展望
FlutterServerless三端一体研发架构能够解决本篇提出的原有研发架构的两个问题通过改变端侧职能边界有效减少协同客户端可以负责整个业务服务端有更多的时间进行领域沉淀但是闲鱼实践FlutterServerless三端一体研发架构时也遇到以下挑战
FaaS层研发体验需要继续提升 调试只能通过GAIA日志查看目前规划是把平台日志抓取到本地并且提供FaaS代码远程调试功能。运维成本增加 问题定位、请求链路、压测、安全生产的工作转移如何摸平与服务的差异。
以上是实践过程中发现的新的挑战都已经列入下一阶段工作中后续会持续分享这些挑战的思考与解决方案。
原文链接 本文为阿里云原创内容未经允许不得转载。