字节跳动基于Serverless的前端研发

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 字节跳动 基于 Serverless 的前端研发模式升级 字节跳动 Web Infra - 王磊
2.
3. 王磊 字节跳动 Web Infra 成员,在组件市场、多端可视化搭建、发布渲 染系统等方向有过⻓期的专注和沉淀。目前负责字节跳动通用前端 部署平台 Goofy Deploy 中的 Web 部署部分。
4. 目录 1. 大前端时代前端职责和挑战 2. 字节跳动常⻅的业务形态 3. 传统研发模式与挑战 4. 基于 Serverless 的研发模式 5. 监控 & 运维 6. 总结和展望 2
5. 大前端时代前端职责和挑战 1. 前端职责的转变 2. 前端面临的挑战
6. PC 时代 前端工作 切图、写样式、写交互、兼容各种浏览器等 组件化、前后端分离等 专注于浏览器相关的事情
7. 移动互联网时代 前端工作 跨端:移动端 Web(H5)、React Native、Flutter … 工程:基于 Node 的前端工程 浏览器领域 —> android & ios(端) + 前端工程
8. Serverless 时代 前端工作 CSR、SSR、BFF、一体化、微前端、跨端、Serverless Serverless 从单端到多端,从 Client 端到服务器端 涉足领域广,对前端要求更高,前端全栈化
9. 大前端时代前端职责和挑战 1. 前端职责的转变 2. 前端面临的挑战
10. 前端面临的挑战 知识 体系 工作 内容 基础知识:JS、CSS、Node 前端框架:React、Vue 打包工具:Webpack、Vite 微前端:qiankun、Garfish 跨端工程:RN、Flutter 后端框架:Koa、Express 后端知识:Redis、MQ、进程/协程、文件存储、监控报警 偏向前端:写组件、写⻚面、兼容、性能优化、跨端工程等 偏向后端:写 BFF、写 SSR、监控运维、集群管理等 前端全栈化,涉及大量后端知识和工作,挑战大
11. 目录 1. 大前端时代前端职责和挑战 2. 字节跳动常⻅的业务形态 3. 传统研发模式与挑战 4. 基于 Serverless 的研发模式 5. 监控 & 运维 6. 总结和展望 2
12. 字节跳动常⻅的业务形态 全球部署 CSR SSR BFF C 端业务 首屏性能要求高 前后端胶水 微前端 后端管理系统
13. 目录 1. 大前端时代前端职责和挑战 2. 字节跳动常⻅的业务形态 3. 传统研发模式与挑战 4. 基于 Serverless 的研发模式 5. 监控 & 运维 6. 总结和展望 2
14. 传统研发模式与挑战 CSR + BFF
15. 传统研发模式与挑战 静态 Server 回源 CDN上传服务 文件存储 文件服务 上传 CSS / JS / 图片等 开发 登陆认证 业务代码 CSR AB 灰度 系统运维 … 域名接入 … AB 管理 … BFF 服务 部署 HTML 静态 Server 集群部署 静态集群 调用 权限管理 系统运维 前端全栈化:除了业务逻辑,需开发很多基础服务 流量管理 部署系统 开发 BFF BFF 集群部署 BFF 集群 项目管理 发布系统 路由管理
16. 传统研发模式与挑战 研发 知识 运维 挑战 沉淀 资源 人力 01 研发:研发成本高,不仅需开发业务,还需要开发基础服务 02 运维:运维成本高,要关注 QPS、内存、机器数量等数据 03 资源:流量无法精准估计,需准备充足机器,资源使用率低 04 人力:对研发同学的能力要求高,招聘难度大 05 沉淀:业务自建,没有体系化,无法沉淀最佳实践 06 知识:需了解后端知识,研发模式不符合前端,对前端不友好
17. 目录 1. 大前端时代前端职责和挑战 2. 字节跳动常⻅的业务形态 3. 传统研发模式与挑战 4. 基于 Serverless 的研发模式 5. 监控 & 运维 6. 总结和展望 2
18. 基于 Serverless 的研发模式 1. 策略和架构 2. DevOps / CICD 3. 前端实践
19. 策略 框架 FaaS … BaaS 监控 运维 研发 业界 前端 Serverless Serverless 一体化 云函数 线上 运行 部署 SSR 单点研发 调试 基于 Serverless 打造一站式前端解决方案 前端全生命周期
20. 策略 2 个目标 基础能力平台化 友好的开发体验 无需关注前端基础服务,平台提供,开箱即用, 简单配置即可 无需感知 SSR、BFF 开发差异 ,开发和 CSR 一 样轻松;支持 CSR 到 SSR 到 一体化 再到 微前 端 渐进式开发。
21. 基础能力平台化 部署能力 AB / 灰度 全球部署 监控运维 系统集成 微前端 人群策略 国内 日志 工程方案 SPA 百分比 美国 Metrics 发布系统 MPA Header 新加坡 报警通知 研发工作台 SSR Query 欧洲 指标大盘 LowCode 前后端一体化 客户端版本 国内测试 断点调试 服务编排 CDN UA 国外测试 性能分析 前后端调试 … … … … …
22. 友好的开发体验 JS 上传 CSS 图片 … CLI & 框架 前端 简单配置和开发即可支持 传统前端 + 框架能力 BFF 和SSR,和开发CSR + 平台能力 = 全栈前端 一样轻松 云编译 开发 & 调试 全球化 HTML 路由配置 SSR 产物 微前端配置 发布控制台 BFF 产物 AB/灰度配置 … … Serverless
23. 整体架构 线上运行 研发 & 配置 & 部署 上层产品 Web部署服务 一站式前端工作台 搭建系统 DevOps 流水线服务 … 接入层 原子服务 OPEN API 工程方案 CLI Jupiter 开发协议 部署协议 SSR 协议 限流 项目分发 分流策略 登陆认证 流量统计 负载均衡 安全防控 差异抹平 … Eden BFF 协议 统一接入层 TLB 网关 … 静态 Web Server SSR Server 微前端 Server BFF Server Server 基础协议 … 部署系统 项目管理 路由管理 AB 管理 监控报警 CSR 发布 SSR 发布 BFF 发布 微前端发布 … 监控平台 打点 日志 … 监控报警 缓存服务 对象存储 配置服务 …. BaaS Node 运行时 V8 运行时 FaaS 基础 Node SDK 运行时 基础服务
24. 基于 Serverless 的研发模式 1. 策略和架构 2. DevOps / CICD 3. 前端实践
25. DevOps & CI / CD 编译 代码检测 线下 / AB / 灰度 测试 人工卡点 各种检查,比如性能 人工卡点 线上部署
26. 基于 Serverless 的研发模式 1. 策略和架构 2. DevOps / CICD 3. 前端实践
27. 前端实践 Serverless CSR Serverless SSR 无需感知 SSR、BFF 开发带来 的差异 ,和 CSR 开发一样轻松。 支持 CSR 到 SSR 到 一体化 再到 微前端 渐进式开发。 Serverless 前后端一体化 Serverless 微前端
28. CSR 开发流程 CSS 上传 文件存储 JS 前端 开发 CSR 云编译 .html 部署控制台 数据配置 部署 .es6.html Web Server 路由配置 AB 配置 前端只需要开发业务逻 … 辑,简单配置即可上线
29. CSR 案例
30. CSR 运行流程 回源 JS 文件存储服务 CSS AB 处理 CSR HTML 网关 项目分发 处理 限流 html 获取文件 文件存储服务 ES5、ES6 识别 .es6.html … Polyfill UA 处理 按需返回浏览器需要的 Polyfill
31. 前端实践 Serverless CSR Serverless SSR 无需感知 SSR、BFF 开发差异 , 开发和 CSR 一样轻松。 支持 CSR 到 SSR 到 一体化 再到 微前端 渐进式开发。 Serverless 前后端一体化 Serverless 微前端
32. SSR 开发流程 CSS 开发 SSR 文件存储 JS 简单配置即可实现 SSR 前端 上传 云编译 .html 部 Web Server 署 Bootstrap.js 控 SSR RUNTIME 制 台 缓存配置 编译 SSR Server SSR RUNTIME SSR 启动文件
33. SSR 案例
34. SSR 运行流程 SSR 超时或失败 SSR HTML 网关处理 渲染处理 Redis 缓存策略 SSR 服务发现 SSR Server CSR ⻚面
35. 前端实践 Serverless CSR Serverless SSR 无需感知 SSR、BFF 开发差异 , 开发和 CSR 一样轻松。 支持 CSR 到 SSR 到 一体化 再到 微前端 渐进式开发。 Serverless 前后端一体化 Serverless 微前端
36. 前后端一体化开发流程 CSS 上传 文件存储 JS 前端 开发 一体化 云编译 Web Server .html 部 署 控 Bootstrap.js 简单开发即可支持一体化(BFF) 制 SSR RUNTIME SSR Server 台 BFF RUNTIME BFF Server 编译
37. 前后端一体化 案例 配置同 SSR 一样,BFF 发布默认探测
38. 前后端一体化 运行流程 SSR 超时或失败 一体化 HTML 网关处理 渲染处理 Redis 缓存策略 CSR ⻚面 http 调用 SSR 服务发现 RPC 调用 SSR Server BFF Server
39. 前端实践 Serverless CSR Serverless SSR 无需感知 SSR、BFF 开发差异 , 开发和 CSR 一样轻松。 支持 CSR 到 SSR 到 一体化 再到 微前端 渐进式开发。 Serverless 前后端一体化 Serverless 微前端
40. 微前端开发流程 简单开发一个主应用,接入已有子应用即可 开源地址:https://github.com/bytedance/garfish
41. 微前端开发流程 前端 开发 CSR 子应用 云编译 CSR 产物 控制台 部署 Web Server 前端 开发 SSR 子应用 云编译 SSR 产物 控制台 部署 SSR Server 前端 开发 一体化 子应用 云编译 一体化产物 控制台 部署 一体化 Server 主子模块关系 前端 开发微前端主应用 CSR、SSR 或一体化项目 云编译 主应用产物 控制台 微前端菜单 微前端 Server 其他
42. 微前端案例
43. 微前端案例
44. 微前端运行流程 微前端 主应用 网关处理 获取 HTML 注入到 HTML CSR 主子模块关系 SSR 菜单处理 前后端一体化 … 请求子应用 子应用 HTML 处理 微前端 Server
45. 目录 1. 大前端时代前端职责和挑战 2. 字节跳动常⻅的业务形态 3. 传统研发模式与挑战 4. 基于 Serverless 的研发模式 5. 监控 & 运维 6. 总结和展望 2
46. 监控 & 运维 1. 业务监控和指标大盘 2. 日志系统 3. 运行时监控和调试
47. 业务监控和指标大盘
48. 监控 & 运维 1. 业务监控和指标大盘 2. 日志系统 3. 运行时监控和调试
49. 系统日志
50. 监控 & 运维 1. 业务监控和指标大盘 2. 日志系统 3. 运行时监控和调试
51. 运行时监控和调试
52. 目录 1. 大前端时代前端职责和挑战 2. 字节跳动常⻅的业务形态 3. 传统研发模式与挑战 4. 基于 Serverless 的研发模式 5. 监控 & 运维 6. 总结和展望 2
53. 总结 & 展望 Runtime FaaS + BaaS Serverless + 底层 Runtime 进一步优化,解决 完善 FaaS 生态,和现有 BaaS 服 在 FaaS + BaaS 的基础上,提供从 冷启速度不够快的问题,更好对应 务能够有更好的结合,为上层建设 框架到开发,从开发到部署,从部 突发流量。 提供基础。 署到线上运行等一站式研发平台。
54. 团队介绍 团队招聘 团队公众号
55. 谢谢

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 00:02
浙ICP备14020137号-1 $Map of visitor$