kubernetes 应用的 bff便捷开发

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. K8s 应用 BFF 的便捷开发 送给面对 K8s 不知所措的前端开发者们 王振威 腾讯云 CODING 研发总监
2. 1. 为什么要实践BFF 目录
3. 01 为什么要实践 BFF 后端微服务化,前端 SPA 化
4. 经典单体应用架构 服务器生成直出 HTML Server HTML
5. Server Side Render -> Single Page Application Frontend UI + 服务器 API 提供 Data Server Data HTML
6. Monolith Backend -> Miro Services Kubernetes 用 户 VM 微服务,容器化,云原生 Server D 订 单 物 流 F E G
7. SPA + Micro Services Kubernetes Frontend UI 用 户 + Data 大量反复调用, 冗余数据 D 订 单 HTML 物 流 F E G
8. 如:著名的 N + 1 问题 展现用户博客列表页面 1. 1、查询博客列表 2、遍历博客列表,查询详情 调用接口,查询博客列表,得到博客 ID,分 页信息,和基本信息 2. 遍历博客列表调用接口获取博客详细信息, 并取用需要展现的信息 3. 遍历博客列表,查询评论统计 4. 遍历博客列表,查询点赞统计 前 端 3、遍历博客列表,查询评论统计 4、遍历博客列表,查询点赞统计 后 端
9. 本质:前端的界面思维,后端的数据思维 前端: 要用户体验,要顺畅 后端:要服务解耦,要性能 Page1 Entity1 Page2 Entity2 Page3 Entity3 失控的接口调用
10. 02 BFF 常见做法 API 网关? BFF?
11. 错误的做法: API Gateway as BFF Kubernetes Frontend UI 用 户 + Data D Gateway 订 单 HTML 物 流 F E G
12. 错误的做法: API Gateway as BFF Kubernetes Frontend UI 用 户 + Data D Gateway 订 单 HTML 物 流 F E G
13. 正确的做法: API Gateway And BFF Kubernetes Frontend UI 用 户 + Data D Gateway BFF 订 单 HTML 物 流 F E G
14. 正确的做法: API Gateway Plus BFF Kubernetes Frontend UI + Gateway D BFF For Web 订 单 Data HTML 用 户 BFF For APP 物 流 F E G
15. 03 为什么 BFF 开发这么痛苦 环境搭建难,调试自测不便
16. Backend For Frontend 容器微服务 技术手段 不懂 前端开发者 服务目标 Backend For Frontend
17. 开发的要素
18. 环境搭建难 · 微服务数量多 老大,现在整个系统有接近 200 个微服务了,搭建一 套环境得两周。后端同学都搞不定,我也无能为力啊。 · 环境脆弱,易损坏 能用的现存环境本来就不多,很多人在上面调试测试, 动不动就坏掉,极大影响开发效率。 入职的第一感受就是:没有靠谱的环境给我使用。
19. 本地资源不够 · 微服务占用资源太多 老大,听说咱系统 i9+ 64G内存也跑不动了,你看我 这个2021款顶配 iMac 也不够用了,能不能安排再给 一台? 没有 128G 内存,根本跑不起来。
20. 编码自测循环耗时 太久 · 自测调试难 老大,不是我摸鱼啊,你看这写完一段代码,得等10 分钟才能看到运行结果。 摸鱼的日常
21. 问题出在这里
22. 04 用云实现便捷的 BFF 开发 另类思路,不是优化而是革新
23. 弹性思维理解环境 弹性交付的环境 • 定义环境而不是维护环境 • 按需,自助获取专属环境 • 使用与正式环境一致的手段定义 • 使用自动化手段加速环境创建 • 统一提供所有环境基础设施 按需所得
24. 从 K8s 生态打造弹性环境体系
25. 从 K8s 生态打造弹性环境体系
26. 效果:用 IDE 直接集成便捷调试 以前:盲写代码 现在:一键调试
27. 效果:VSCode 直连开发环境 Kubernetes Gateway(开发模式) 源码同步 秒级自测 用 户 D BFF For Web 订 单 BFF For APP 物 流 F E G
28. 编码完毕可以很快看到运行结果 %& #$ !"
29. 如果环境准备好了,需要装一个插件 https://nocalhost.dev • 开源: https://github.com/nocalhost • 便捷:提供 IDE 插件,装上就能用 • Kubernetes 生态:Helm, Kustomize 等 Nocalhost
30. Talk is cheap, show me the code.
31. 演示 Wepack 的 BFF 开发 https://wepack.coding.net • 提供各种类型制品管理的服务 • 微服务数量: 40 左右 • BFF 方案:内置于 Gateway 组件,Golang 开发 • 运行于 Kubernetes 集群中
32.
33. 总结一下 · 理解 BFF 是一个前端开发者需要写的后端组件。前端负责,但要按照后端组件的方式 进行开发和调试。 · 环境上云,自动化环境生成 用弹性思维理解环境,只维护环境定义,不维护环境本身。 应该使用自动化手段弹性按需生成环境,让开发即时自测编码结果,而不是 等待集成测试确认问题。 · 便利化开发和调试 要尽可能缩短 “编码 – 自测” 这个反馈循环的时间,从 IDE 层面进行集成, 确保开发者可以高效验证自己的编码结果。
34. 结合现状,平滑过渡
35. 感谢倾听 大会官网

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.132.0. UTC+08:00, 2024-09-21 10:33
浙ICP备14020137号-1 $访客地图$