闲鱼Serverless云端一体化研发实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 淘系云原⽣生时代的业务研发 闲⻥鱼Serverless云端⼀一体化研发实践 讲师:夏朝锋(花名:扬⽻羽)
2. 自我介绍 夏朝锋(扬⽻羽) 阿⾥里里巴巴 – 闲⻥鱼 –技术专家 现任阿⾥里里巴巴闲⻥鱼架构组成员,负责闲⻥鱼整体架构升级, 主导serverless云端⼀一体化研发模式在闲⻥鱼的落地。 2011年年加⼊入阿⾥里里巴巴,经历了了淘宝商家、淘宝⽆无线、闲⻥鱼发展的 多个阶段,曾负责商家⼤大数据应⽤用、淘宝招商、淘宝头条、闲⻥鱼架 构升级演进等。
3. 分享大纲 • 闲⻥鱼业务演进与云端⼀一体化的新机会 • 云端⼀一体化研发的架构演进与业务价值 • 展望
4. 闲鱼业务演进 ⽤用户规模 C2C 转卖 售卖 回收 商业模式 ⽤用户价值 以旧换 新 旧物换 礼 寄卖 鉴定 担保 优品 租赁 ISV 本地 化 ⻥鱼塘 以旧换X C2C C2X(C2S、C2B、C2B2C) S2C/B2C 租房 社区 直播
5. 传统无线研发痛点 ⽆无线时代 富客户端 PC时代 瘦客户端 Android Web Server iOS Server H5 IOT Serverless 业务扩散! 业务扩散 ⼈人员协同 打造符合闲⻥鱼特点的⼀一定差异化的研发模式 基础⽀支撑 • ⼿手淘移动航⺟母 • 集团中间件/云 • 业务中台 问题 • 并⾮非效率和体验的最优解 • 技术发挥空间待释放 闲⻥鱼特点 • 业务流量量闭环 • ⽤用户规模基础 闲⻥鱼特点的研发模式 • 基于中台,聚焦差异 • ⼀一体化的快速研发模式 • ⼩小程序为辅的引流⽅方案
6. 分享大纲 • 闲⻥鱼业务演进与云端⼀一体化的新机会 • 云端⼀一体化研发的架构演进与业务价值 • 展望
7. 闲鱼技术架构支持业务 业务化 智能化 协同 效率 端到端业务闭环 质量量 研发智能化 Flutter跨端 Test⾃自动化 数据驱动 Serverless云端⼀一体 开放化 闲⻥鱼技术 云端业务研发框架 闲⻥鱼架构 代码⾃自动⽣生成 知识库
8. 闲鱼一体化落地 我卖 出的 OCR 发布 下单 聊天头 ⼴广告 投放 ⾜足迹 ⼩小程 序 Flutter 业 务 闭 环 Flutter Http Event MetaQ Faas 技 术 栈 统 ⼀一 Baas 轻业务/短⽣生命周期 /⾼高隔离性场景 回收 闲⻥鱼 WEEX ⼿手淘 Fish-Redux-View Story Nexus Nexus Faas(Dart) Faas(Dart) Domain Domain Effect Reducer 架 构 ⼀一 体 多端展现场景 双端交互多、状态复杂多变场景 UI 以旧 换新 View ViewModel Model
9. 一体化业务闲鱼足迹Faas+Baas Flutter Metaq Save metaq trigger query Faas EventBroker mtop trigger GRPC Save Faas (DART) Delete Faas (DART) Http Query Faas (DART) Dart runtime 统⼀一函数监控 Hsf ⾜足迹业务 AliyunBaas Mango PostgreS QL Item service Mysql
10. 一体化业务下单页面—Nexus UI Logic State Nexus Client Framework 端 状态同步 Logic Engine View 事件驱动 Logic Domain Action Handler Action Dispatcher In FaaS 云端复⽤用 原⽣生渲染 | 动态渲染 Logic Engine StateDiff Action 1、前端形成⼀一套⽆无逻辑 规范、框架 RemoteReq Action Custom Action Nexus Server Framework 2、后端形成⼀一套⽆无UI的规范、协议、框架,逻辑编码平⾯面统⼀一 3、Flutter + FaaS ⼀一体架构 NativeApi Action Nexus一体化框架 Biz Logic Batch Action Faas
11. 一体化业务下单页面—Nexus 多渲染接口 本地总价计算 UseGuarantee Action 无业务校验 重客户端 ChangeAddress Action UserRedPacket Action Init Action CretaOrder Action 改造后下单⻚页⾯面逻辑 状态复杂 状态变化多 云端交互多 减少代码量,减少协同,形成 端到端业务闭环
12. 一体化业务下单页面—nexus 云端模型统⼀一 屏蔽协议 逻辑归⼀一 代码量量减少 业务闭环
13. 一体化业务跨端回收 ⽀支付宝⼩小程序 回收 View FaaS 以旧换新 微信⼩小程序 图书 视图 组件库 Story Nexus 框架 家电 ⼿手机 端能⼒力力 Ability 组件 模型 。。。 Logic Engine 数据 模型 业务 编排 实验 能⼒力力 Server 回收多端业务Faas解决⽅方案 数据多层复⽤用组装 业务可测性增强
14. 闲鱼Serverless Landscape 闲⻥鱼业务 • ⼀一体化业务研发框架:业务闭环 ⼀一体化业务研发框架 • 业务解决⽅方案:垂直业务⽀支撑 业务解决⽅方案 ⼯工具链 • ⼯工具链:研发效率、研发体验 Dart Faas Runtime 语⾔言⽆无关 Jproxy Java中间件⽣生 态 • Runtime:⾼高性能、稳定、多云 • 语⾔言⽆无关:异构语⾔言⽣生态打通 数据⾯面 BaaS 元数据 领域服务 闲⻥鱼Serverless总体架构 业 务 运 维 测 试 框 架 • 数据⾯面:云后端服务 • 元数据:减少协同 • 业务运维:NOOPS
15. Dart FaaS Runtime • • • 流量量 Gaia async await 同步风格、异步性能 Isolate并发容器 Zone上下文跟踪 Aserver 场景 数据Sink 云/端⼀一体化 移动API Function/Event API metaq … JProxy 函数开发框架 Function API 事件源 资源调度 • 业界首次将Dart引入FaaS层,与Flutter云端打通 CLI build/hotdeoply/invoke/logs/local 中间件API 增量量编译器器 Java2Dart Dart2native 函数运⾏行行时 HSF 平台协议 Dart VM MTop CRD/Controller EB POD Http 事 件 源 适 配 isolate⽣生命周期 管理理 handle/health/update/.. () Zone EventPool/VMService Pub Worker Isolates Main Isolate Aliyun-BaaS Monitor Log Flow 协 议 适 配 invoke协议 热部署协议 健康检查 运⾏行行时协议 开放服务 监控 中间件扩展cpp GPRC 测试 FN POD 提供 函数平台 (Gaia/FC/CSE…) 函数平台与业务关系 Dart Faas Runtime
16. 研发体验 宿主环境 Docker container 研发体验—本地研发环境不不统⼀一 Invoke 构建⼯工具 Logs Gcli 命令⾏行行 Hotdeploy Build 命令 处理理 器器 增量量编译器器 Maven Pub Git Java Dart *.so Local • • 触发器器/ 热部署/ ⽇日志请求 • Gaia Open Api 研发体验—稳定与效率 • 基础设施全部重构: • Runtime、Faas平台、ASI • 研发体验割裂—平台与本地切换 • 部署效率 Linux ⽂文件系统/⽹网络共享 基于Docker的本地研发闭环GCLI 本地IDE研发 VS web IDE 复杂业务的研发依赖 • Dart、Pub、Path、Java 、Maven、CPP 基础设施(设备)可变 • 宠物 VS ⽜牛 核⼼心思路路 • Gcli 客户端抽象FaaS本地研发动作 • 利利⽤用Docker归⼀一开发环境,解决在本地软件安装、编译代码、运⾏行行时依赖 • Gaia开放API履履⾏行行 效果 在GCli的加持下,通过Dart FaaS开发⼀一个mtop api可以在5分钟左右
17. 异构语言生态—异构痛点 HSF HSF HSF Others …. HSF Dart实现 MTOP、限流、降级、加密、DOOM ? C++扩展 开发难 维护难 HSF、Tair、Switch 中⼼心代理理 UIC、⼀一休 性能差 周期⻓长 Service Mesh HSF 富客户端 HSF Tair Eagle eye Switch 集团中间件和⼆二⽅方服务 Sentinel Others … 新业务接⼊入 不不⽀支持 放弃
18. 异构语言生态—解法核心思路 1 Application Pod Main Application Container Proxy Ambassador 共享本地⽹网络,LocalHost直接通信 2 解耦业务主容器器 3 云原⽣生容器器设计模式——Sidecar 外交官模式 SideCar Dart/NodeJS GRPC Pod/Container Dart Jproxy模式 Java 业务容器器代码简化 集团⼆二 ⽅方服务 中间件 本地逻 辑 去中⼼心化 可重⽤用性 接⼊入速度快
19. 异构语言生态—Jproxy详细设计 JProxy ThreadPool UIC- plugin Sentinel -plugin AB Bean:: Method GRPC CLIENT Dart Spring⽀支持 UIC MQ JPorxy Service Plugin Bean:: Method grpc GRPC Server NodeJS MetaQ- plugin Pandora 基础模块和插件 HSF|Tair|Metirc|Diamond…. Jproxy详细设计 GoLang 参数解析 Java接⼝口调⽤用 序列列化返回结果 POD/Container 隔离 按需加载 插件化设计
20. 异构语言生态—Jproxy性能 HSF HSF HSF HSF Others …. GRPC 启动速度 : 40S -> 8S 插件裁剪 并⾏行行加载 APPCDS Diamond并发数 降低HSF全局等待时间 GRPC Server & Plugin Manager HSF HSF Eagle eye Eagle eye 富客 户端 UIC… Tair Switch Sentinel JProxy Tair 集团中间件和⼆二⽅方服务 MQ GRPC本地对本地的调⽤用RT在0.4ms以内 应⽤用: 闲⻥鱼: 富客户端 +Sentinel ⽅方案共享: 前端委员会
21. 开发运维辅助 自动化函数监控 部署可视化 业务容器监控 WEBIDE 白屏化日志查询 元数据中心
22. 效果总结 传统的Flutter研发架构 数字:人日x人数 FaaS一体化架构 数字:人日(1人) • 软件复杂度的降低,使抽样项目Bug概率下降20% • 人日减少30%(从20人日降低到14人日) 后端领域 下沉机会 减少协同 成本 业务闭环带来 的成长空间 重新定义 生产关系 研发人员 资源均衡 良好用户 体验
23. 分享大纲 • 闲⻥鱼业务演进与云端⼀一体化的新机会 • 云端⼀一体化研发的架构演进与业务价值 • 展望
24. 展望 云原⽣生在阿⾥里里的落地 传统应⽤用Serverless化 云端⼀一体化研发 统⼀一编程平⾯面 serverless Runtime 多云⽀支撑 Flutter 、Weex/⼩小程序 异构系统互操 作标准化 Cloud Native
25. 【淘系技术】微信公众号 【闲⻥鱼技术】微信公众号 扫码获取本期ppt内容及回放 Flutter、Serverless⼀一体化内容 加⼊入我们 【淘系基础平台部-基础服务】 ⼀一起探索⽀支撑千亿级流量量新⼀一代架构

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.132.0. UTC+08:00, 2024-09-21 20:46
浙ICP备14020137号-1 $Map of visitor$