简介:闲鱼是依托阿里电商体系的前台型业务,有非常独特的业务特点和用户诉求,在底层依托阿里系统的同时,在表现层和业务层需要探索适合闲鱼的、并且更加快速灵活的研发体系。

客户介绍

闲鱼是依托阿里电商体系的前台型业务,有非常独特的业务特点和用户诉求,在底层依托阿里系统的同时,在表现层和业务层需要探索适合闲鱼的、并且更加快速灵活的研发体系。

从 2018 年开始,闲鱼架构负责人王树彬带领闲鱼技术团队布局 Serverless。颠覆性创新往往是从边缘性的地方出现,而向云原生化/Serverless 化升级,对于闲鱼是一条全新的路,但趟出了这条路,对于很多做线上交易的公司有着巨大的借鉴意义。

客户痛点

  1. 客户端交互层、服务端业务胶水层、领域层边界划分不清晰,这就导致很小的业务需求就需要整条链路的同学参与,协同成本高,开发调试周期长。
  2. 服务端存在巨型应用,研发耦合、发布耦合、运维耦合严重,甚至系统稳定性也受到很大挑战,单个业务问题往往会影响整个应用。
  3. 运维成本极高。为了保障业务的稳定性和可用性,阿里对每一个应用上线都有相应的规范和规则。哪怕是一个很小的内部应用,一天可能只有一两个访问量,上线也需要遵守既有的规范,这势必会消耗一些固定资源。单个应用消耗的资源可能很有限,但所有应用消耗的资源累积起来也是一个不小的数字。而对于巨型应用,由于影响面巨大,发布时要有更加严格的流程和步骤,一次发布至少要耗时 6 小时,运维成本极高。

解决方案

Serverless 的出现,一方面使云端一体化研发成为可能,很多小业务需求的协同成本可以大大降低。另一方面,Serverless 使业务胶水层的巨型应用,有了比微服务更加合理的拆分方式。

云原生/Serverless 这些新技术的出现,可以使应用运维能力下沉,传统巨型应用的成本(速度)、稳定、质量相互制约的瓶颈才有可能被打破。闲鱼在落地新技术的过程中,先围绕 Flutter 重点攻坚了 Flutter 混合工程体系、高性能组件库。然后围绕 Serverless 重点攻坚云端一体化研发体系、服务端业务组装层架构体系。

闲鱼客户端基于 Flutter 进行架构演进与创新,通过 Flutter 统一 Android 和 iOS 双端提升研发效能之后,希望通过 Flutter+Serverless 解决各角色间存在的大量的协同问题,正是这些问题导致整体研发效率低,移动端离业务越来越远,服务端没有时间做底层领域沉淀。通过 Serverless 的引入,闲鱼会明显看到整体研发效率的提升。

使用效果

  1. 云端编程模型一体化框架(Nexus API)。这个框架的目标是使 Flutter、FaaS 的编程模型统一,打通UI、交互、数据、逻辑。王树彬提到,一开始说要做 Flutter + FaaS 一体化的时候,我们对“一体化“这三个字的认知相对比较模糊,只是知道端侧的同学可以用 Dart 这门语言来写 FaaS 函数,这其实还停留在语言上的一体化。对于 FaaS 所能做的事,也仅仅停留在前端实施已久的 BFF 层面。
  2. CLI 开发工具标准化。云端一体化开发时,通过 CLI(命令行工具)屏蔽 FaaS 开发的一些细节,使客户端开发 FaaS 时的开发体验标准化,符合客户端同学的本地开发习惯。
  3. 基础服务 BaaS 化。过去两年,我们在逐渐简化基础服务能力,如对象存储、消息、搜索。同时,建设业务领域层服务的元数据中心,这些简化的基础服务能力,再加上已有的业务领域层服务,使客户端同学可以快速组装业务。
  4. 云端工程一体化,闲鱼在成功引入 Flutter 后,在端侧形成了以 Flutter 为主、H5为辅的跨端研发体系,使传统的 Android 和 iOS 的两端研发,合并成一端。在端上的生产力得到释放时,我们发现端的同学有机会向下层走一点,使服务端面向简单的数据组装逻辑,由端的同学一人闭环完成,这套模式尤其适用于一些小业务的需求。
  5. 传统巨型应用的 Serverless 化改造。Serverless 不是银弹,但与业务胶水层的特点很匹配,非常适用于解决胶水层的传统巨型应用的拆分,这也是闲鱼正在攻坚的下一个难题。

从最开始不被外界看好,甚至被调侃为“咸鱼”,到如今实现了千万 DAU,盘活了一个万亿级市场,闲鱼的出现,无论是对前端的电商生态,还是用户在互联网上的生活形式,都产生了重要的影响。

为了支撑起闲鱼万亿的交易规模,王树彬和技术团队正在紧锣密鼓地进行传统巨型应用的 Serverless 化改造,“闯过了 Serverless 的这一关,才是我比较满意的状态。”

原文链接:https://developer.aliyun.com/article/783384?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

函数计算助力闲鱼构建云端一体化变成模式相关推荐

  1. 函数计算助力语雀构建稳定且安全的业务架构

    简介: 语雀是一个专业的云端知识库,用于团队的文档协作.现在已是阿里员工进行文档编写和知识沉淀的标配,并于 2018 年开始对外提供服务. 客户介绍 语雀是一个专业的云端知识库,用于团队的文档协作.现 ...

  2. 函数计算助力高德地图平稳支撑亿级流量高峰

    简介:2020 年的"十一出行节"期间,高德地图创造了记录 --截止 2020 年 10 月 1 日 13 时 27 分 27 秒,高德地图当日活跃用户突破 1 亿,比 2019 ...

  3. Android 11 Bata 正式发布!闲鱼最新升级版 Flutter 技术电子书开放下载

    点击"开发者技术前线",选择"星标" 在看|星标|留言,  真爱 回复"666",获取一份技术人专属大礼包 Android 11 Bata发 ...

  4. Flutter 1.17重磅发布​!闲鱼最新升级版 Flutter 技术电子书开放下载!

    近期Flutter 1.17发布,该版本包含大量修复内容,解决了自 1.12 稳定版本以来报告的 6,339 个问题,这么大的数字也是前所未有的.如此大的进展很大一部分归功于我们与 Nevercode ...

  5. 下载!闲鱼最新升级版 Flutter 技术电子书!

    点击上方"逆锋起笔",关注领取视频教程 ☞ 程序员进阶必备资源免费送「各种技术!」 ☜ 往期下载:下载!Python 初学者经典教材 近年来,随着移动智能设备的快速普及,移动多端统 ...

  6. Archsummit 2019重磅分享|闲鱼Flutter&FaaS云端一体化架构

    作者:闲鱼技术-国有 讲师介绍 国有,闲鱼架构团队负责人.在7月13号落幕的2019年Archsummit峰会上就近一年来闲鱼在Flutter&FaaS一体化项目上的探索和实践进行了分享. 传 ...

  7. Nexus协议,闲鱼一体化开发的幕后玩家

    Serverless是这几年兴起的一个概念,Serverless可以帮助开发者减轻甚至摆脱传统后端应用开发所需要的服务器设备的设置和运维工作,并以服务接口的方式为开发者提供所需要的功能.它希望开发者更 ...

  8. 如何实现一次编码,到处运行?新一代云端一体化探索

    阿里妹导读:当前移动互联网业务研发运维模式,云与多端互相割裂,有些全栈的探索缺乏成功案例,行业对云端一体化研发这块仍是空白,我们要思考:如何能实现 1 个研发支撑云 + android + iOS 三 ...

  9. 二十分钟教你如何将区块链应用与函数计算相结合

    前言 本篇文章适合对区块链应用感兴趣或是想要通过函数计算服务进一步开发区块链应用的新人.本文将结合阿里云区块链服务.阿里云函数计算服务.阿里云日志服务 以及社区应用 Marbles,手把手教大家如何将 ...

最新文章

  1. 自定义AlertView
  2. 有限覆盖定理证明区间套_圆内整点问题的开普勒猜想证明,关于圆内整点问题误差项的估值E(r)=1-x,x=sin(nx)...
  3. IntelliJ IDEA for Mac在MacOS模式下的替换快捷键(Replace Shortcut)
  4. html怎么在字体中加波浪线,CSS3实现文字波浪线效果
  5. ES6-let 和 const 命令
  6. python解析库详解_PyQuery库详解
  7. linux 关闭rsync服务器,linux下配置rsync服务器和实时同步
  8. 自动生成html_python自动化测试中pytest的使用
  9. 决策树(六)--随机森林
  10. 385.迷你语法分析器
  11. C++ log4cpp(tx2)
  12. Linux 优秀软件资源大全中文版
  13. sed替换写法sed -e 's; ;:;g'
  14. 算法问题——(树问题集合)
  15. 锋利的jQuery学习总结
  16. bboss-elasticsearch--API
  17. LeetCode 276:栅栏涂色
  18. Qlik之的应用备份(.qvf) (六)
  19. 七层网络模型(大致信息讲解)
  20. javascript如何对location.hash过滤xss跨站脚本

热门文章

  1. 都说雪花ID不能做MySQL的主键,你确定?
  2. 这届产品经理也太太太太难了吧!
  3. 你见过的最全面的 Python 重点
  4. turbo译码器 matlab,短帧Turbo译码器的FPGA实现
  5. linux挂载磁盘分区,Linux 新磁盘分区与挂载
  6. 二维绕任意点旋转_二维图形复合线性变换程序设计:三角形绕任意点旋转2wfhbh...
  7. 计算机网络技术发源于什么,计算机网络基础试题和答案
  8. 因OpenCV版本不一致所引发的报错
  9. XML中需要转义的字符
  10. JAVA中的变量和常量