美团到店前端工程化架构演进

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 美团到店前端架构标准化演进 张芳 美团/到店平台技术部
2.
3. 个人介绍 上海交通大学毕业后加入美团 负责过营销C/B端业务,主要做低代码平台的建 设和维护 目前在到店平台技术部负责到店前端研发框架基 础设施建设 个人主要兴趣点是前端工程化和工具链发展。
4. 目录 • 业务背景简介 • 架构演进历程 • 阶段一 —— 规范化 • 阶段二 —— 工程化
5. 你能得到什么 • 如何在一个大型团队中快速落地架构标准化演进 • 演进过程中有哪些关键的方法和实践 • 标准化架构演进能给团队带来什么样的收益
6. 目录 • 业务背景简介 • 架构演进历程 • 阶段一 —— 规范化 • 阶段二 —— 工程化
7. 业务背景 业务发展,团队规模快速扩大,技术「熵增」问题严重
8. 2019年初到店前端团队技术架构 需求 组件类库 设计 开发 联调 测试 语言框架 技术选型 构建 上线 监控 运维 基础架构 故障 运营 流程规范(多套) 研发框架 10+自研 Lego/Node-Server/… 研发支撑
9. 到店前端团队挑战 技术问题 管理问题 成本 无统一的工具抓手来提升整体能力基线 效率 上层解决方案无法统一建设及快速复用 质量
10. 架构标准化目标 需求 组件类库 设计 开发 联调 测试 语言框架 技术选型 构建 上线 监控 运维 基础架构 故障 运营 流程规范(一套) 研发框架 研发支撑
11. 目录 • 业务背景简介 • 架构演进历程 • 阶段一 —— 规范化 • 阶段二 —— 工程化
12. 目录 • 业务背景简介 • 架构演进历程 • 阶段一 —— 规范化 • 阶段二 —— 工程化
13. 架构标准化第一步 规范先行 规范先行 规范先行
14. 统一流程规范 建立跨团队统一认知 Why 为规模化建设工程化能力打基础 降低沟通协作成本学习成本 减少因规范不一致造成的质量问题
15. 统一流程规范 如何制定 How 如何落地
16. 统一流程规范 卡控工具 运营大盘 抓手 统一基础设施 落地 存量项目按需,规范渐进接入 增量项目全量,规范全部达标 策略 先增量,后存量 流程 发起提 案 委员会 评审 公示两 周 修改 业务规范 规范 基础规范 发布提 案 工具建 设 运营 制定
17. 统一基础设施抓手 基础设施 研发规范 研发流程 需求管理 -Ones 设计平台 -Ingee 代码托管 -Code 需求规范 设计规范 开发规范 联调规范 开 发 联 调 需 求 设 计 API管理 -PApi CI/CD 平台 -Talos 测试规范 测 试 构建 构 建 CDN 监控-Raptor S3 上线规范 上 线 埋点-灵 犀 监控 运维 大盘-Tinker 运维规范 故障 运营 运营平台 -COE 运营规范
18. 核心基础设施抓手——发布平台 连接开发和运维关键环节 发布平台 组织闭环,需求响应快
19. 发布平台架构 插件市场 TL发布卡控 Source Code 核心能力 lint build 插件机制 before before build -all -build after- build before- deploy after- after- deploy deploy rollbac k pipeline流水线 jenkins集群 服务依赖 git S3服务 docker 灰度 … Target Code 项目管理 研发度量 状态流转引擎 CDN服务 域名服务
20. 基于发布流水线建设规范卡控抓手 标准发布 流水线 业务自定义 发布流水线 TL发布 代码拉取 依赖安装 工程规范 检查 Lint规范检 查 工程依赖 收集 标准化工 具接入检 查 监控规范 检查 构建产物 备份 构建产物 TL发布 工程初始 化 依赖安装 工程规范 检查 Lint规范检 查 Test单测 规范检查 构建 域名安全 检查 ES高级语 法检查 工程依赖 收集 标准化工 具接入检 查 监控规范 检查 构建产物 备份 构建产物 发布 监控数据 diff 人工确认 发布 Test单测 规范检查 构建 人工确认
21. 运营大盘
22. 小结 通过流程规范&基础设施统一 建立起良好的标准化落地抓手 具有了规模化建设工程能力的基础
23. 目录 • 业务背景简介 • 架构演进历程 • 阶段一 —— 规范化 • 阶段二 —— 工程化
24. 业务背景 node基础架构运维成本高 配套设施不完善导致的质量问题多 中后台场景多,秒开、SEO诉求弱
25. 基础架构统一 基于S3纯静态架构
26. 基于S3纯静态架构——运行时架构 运行时 服务网关 浏览器 鉴权 访问域名 Nginx html 主文档 商家账号 文件上传 返回 静态资源 失败 回源访问 静态资源 成功 图片上传 http请求 S3服务 CDN 后端http服务 后端 Pigeon / RPC 服务
27. 基于S3纯静态架构——开发架构 开发 业务代码开发 资源构建 资源备份 构建 资源部署 灰度部署 域名配置 发布流水线 部署 异常回滚流水线 运维 CDN基础运维 公共域名运维 流量监控 S3基础运维 安全策略 域名基础运维
28. 小结 基础架构统一大大释放了我们的服务运维成本 同时提升服务性能
29. 业务背景 开发规范落地成本迭代成本高 研发基建未统一集成开箱即用 研发流程中基础设施服务需要手动对接 缺少各类场景下的最佳实践
30. 统一研发框架 框架约束 开箱即用 服务打通 Rome 研发框架 最佳实践
31. 研发框架架构图 应用类型 工程方案 SPA MPA 微前端 … 质量 效率 体验 领域最佳实践 CDN容灾 按需编译 约定式路由 微前端 白屏监控 差量构建发布 调试辅助工具 SSR 核心能力 框架规范 SPA+ MPA 插件机制 语言规范 基建统一 编码规范 工程规范 标准化研发工作流 技术栈规范
32. 为什么要做框架约束? 工程目录 千人千面 项目依赖 碎片化严 重 基建使用 参差不一
33. 框架约束如何实现 工具收敛 脚手架 版本管理 工具卡控 规范落地 监控 本地cli卡控 工具赖统一收敛 基建统一收敛 埋点 升级运维 请求 sass eslint webpack 发布流水线卡控 依赖卡控 规范统一 目录规范卡控 技术栈规范 基础语言框架 路由管理 状态管理 css方案 语言编译 基础类库 工程规范(目录结构/文件命名/readme/changeLog/分支规范) 编码规范(代码风格/代码注释) 语言规范(ES/TS) pr卡控 分支命名卡控 编码风格卡控
34. 目录规范统一
35. 依赖统一收敛
36. 基建统一引入 规范制定 编译时注入
37. 开箱即用的插件能力 一键快速接入
38. 一行代码接入监控
39. 一行代码接入CDN容灾
40. 服务打通 开发 联调测试 发布 监控运维 git仓库 发布平台 脚手架 CDN容灾 埋点服务 API管理平台 灰度平台 指标监控大盘 水印服务 … 自定义域名服务
41. 10分钟启动并发布一个新项目 工作台消息推送 项目创建 项目发布
42. 垂直场景的最佳实践 组件一致性最佳实践
43. 业务场景1——沉淀资产发现难,复用效率低 老大,这个需求写完了,手速是不是 666,能加� 不? 咦?这个需求里面的组件咱们业务 组件库有沉淀,你又重写了一遍? 老大我看了下是组件库的文档不完 善,当时没有注意到这个组件... 来 不及重新做了,明天要上线�
44. 业务场景2——UI一致性难保障,沉淀效率低 这次需求的视觉稿搞定,我下班啦, 剩下交给你了� 这不是和上次一样的功能和交互场景 吗,为啥视觉稿不一样啊?� ♂ 不好意思,没注意上次需求的视觉稿, 按照新的视觉来实现吧~ 啊,组件又要重新写了�
45. 组件一致性最佳实践方案 资产平台 平台打通 文档展示 设计资产 资产分析 资产管理 资产结构化 印迹设计平台 C2D D2C PRO Code 生产工具链 资产工具 开发 测试 组件 开发 demo 开发 单元 测试 覆盖率 检测 工程规范 设计视觉稿 消费工具链 构建 发布 多模块 类型 Npm 包管理 资产结 构化 目录规范 注释规范 生产 运维 IDE插件 自动化代码生成 升级运维 测试规范 文档规范 资产规范 资产协议 声明规范 版本禁用 调用规范
46. 生产环节 多模块类型的Npm包 产物 源代码 标准发布流水线 可视化资产信息 设计资产
47. 消费环节
48. 小结 研发框架统一主要解决了研发过程中的效率和成本问题 让业务只关注业务逻辑的开发
49. 总结 规范化 工程化 标准化
50.
51. Thanks
52. Q&A

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 03:48
浙ICP备14020137号-1 $Carte des visiteurs$