微前端架构体系

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 云时代的前端架构 _ 微前端架构体系 云安全前端 克军 阿里云智能安全前端团队负责人
2. 微前端(它是什么、从哪来、到哪去(怎么做)) 微前端 大前端 App (SPA) 模板 前端 App (SPA) 业务域 业务域 微应用 微应用 TEAM 1 前端 前端 前后端分离 BFF 业务逻辑前置 业务域 自主迭代 组合业务场景 业务域 BFF 独立开发 独立发布 被集成 不限技术栈 TEAM 2 业务域 业务域 TEAM 3 服务端 很久以前... 服务端 2010 微服务 2014 微服务 2016 2019 2020
3.
4. 不吹捧
5. ? 跟iFrame、Web Components、NPM包、BigPipe、插件有什么区别? 多页应用需要微前端吗?为什么非要做成单页应用?
6. 微前端 Widget / 业务组件 架构体系。用来实现大型Web应用 以库(外联/npm)的形式实现复用 生产方式 生产工具 通过隔离机制实现技术栈无关 需要人工解决依赖和冲突问题 单独构建 \ 单独发布 \ 热升级 整体构建 \ 整体发布 体系化治理,可控性强 可控性差 主从关系 (路由映射、消息机制) 相互无关 微应用是产品的子集(粒度大) 通用功能(粒度小) 变化快 变化小 若干微应用的组合 “外挂”
7. 400万个零件、30个国家:空客A380是怎么造出来的?
8.
9. 微前端 的工程价值 优点 1. 2. 3. 4. 5. 独立开发和部署 大型单页应用无限扩展 不限技术栈 快速整合业务 多团队协作 缺点 (微前端之“熵”) 1. 2. 3. 4. 5. 体验有折损 维护成本高 管理版本复杂、依赖复杂 开发体验不太友好 粒度不宜太小
10. 微前端 的业务价值 1. 产品“原子化”:扩展性、组合性、局部迭代 2. 解决能力输出 “最后一公里” 的价值 3. 云生态中的“新物种” — 微应用
11. 云生态 ⤬ 微前端 集成 顶尖的专家 小程序 服务 企业 云平台 数字化转型 算力 + 基础设施 云计算的红利 学习 成本 低 被 编排工具 集 成 微应用 / 赋 能 力 能 力 力 能 能 学习 成本 高 OpenAPI 前端工程师
12. idea 1: 云时代的企业开发套件 + OpenAPI + 编排工具 + UI组件库 微应用
13. idea 2: OpenComponents (https://opencomponents.github.io) 开放的微应用市场 (2014)
14. icestark MicroX qiankun 乾坤 WidgetJS 敬请期待 single-spa Ara Framework https://martinfowler.com/articles/micro-frontends.html
15. 建体系: 微前端不是一个框架 / 工具 而是一套架构体系
16. 微前端体系 (分布式体系的中心化治理很重要) 1. 微前端基础设施 (No Framework特点) 2. 微前端配置中心 (版本管理、发布策略、动态构建) 3. 微前端观察工具 (运维职能:可见、可控性)
17. 版本管理 异常监控 代码健康度 依赖管理 访问策略 行为日志 性能指标 灰度、A/B 参数配置 安全检测 运维数据 配置中心 配套设施 CSKit 观察工具 平台 项目脚手架 动态构建 一键部署 依赖分析 代码质量 访问控制 开发环境 集成测试 国际化 对接层 接囗编排 数据网关 平台 平台 异步加载 生命周期 沙盒隔离 异常处理 路由映射 消息机制 微应用容器 本地开发工作台 Mock数据 微应用市场 微前端 MicroX 微应用列表 工具集 GraphQL 平台 / 库 Serverless服务 库
18. 微前端的基本工作原理 MicroApp Configure 3 微前端配置中心 发布策略 观察工具 异常监控 动态构建 同步 Meta 信息 动态构建 环境切换 配置管理 CSS https:// domain / path?query React 环境 主应⽤初始化 JS HostApp 构建 Vendor 微应用容器 4 HostApp Router Redux Utils CSS 依赖环境 ( 可配置) 路由映射 下发消息 Bootstrap过程 <MicroApp name=“AppId” className=“…” {…props} !/> React Angular Vue 其它环境 JS MicroApp 构建 2 1 本地开发工作台 沙盒容器 构建 发布 国际化 路由管理 调试 测试 专有云 消息机制 访问配置 静态检验 接囗编排 MicroApp MicroApp 鉴权机制 5 Vendor 发布 CDN
19. 微前端的10个问题 (10-factor) 1. 微应用的注册、异步加载和生命周期管理 2. 微应用之间、主从之间的消息机制 3. 微应用之间的隔离措施 4. 微应用的框架无关、版本无关 5. 公共依赖的库、业务逻辑(utils)以及版本管理 6. 微应用独立调试、和主应用联调 7. 微应用的发布流程 8. 微应用打包优化问题 9. 微应用专有云场景的出包方案 10.渐进升级:平滑改造老项目
20. 微应用的加载和运行机制 2. 依赖环境的运行时部署 “安装”过程 注册信息 加载依赖文件列表 Service Worker 加载失败 请求主文件 throwError(加载失败) 更新注册表 1. 配置信息 & 注册表 微应用 微应⽤ ID Fallback 回调 查询注册表 拿到微应用对象 应用配置 Manifest 3. 沙盒 预加载 / 预解析处理 4.监控 / 映射路由 初始化 publishEvent(startRender) 渲染 • throwError • useHostStates • publishEvent({type, payload}) • subscribeEvent(listener) 开放的微应用市场 Unmount publishEvent(Unmount)
21. 安全 隔离 微应用容器能力 回弹 可 见 通 讯 分级 • 可信(一 / 二方 / 可信任的平台) • 不可信(三方 / ISV) • 隔离样式: ShadowDOM • 隔离 JavaScript / DOM 侵入性 • iFrame方案 • 前置的静态检查 • 安全的DSL • 加载失败的Fallback • 容错(Error Boundaries)、上报错误信息 • 埋点监控 • 性能、健康度 • Inspector • 消息机制
22. 路由管理 https:// domain / path?query 路由映射 HostApp MicroApp 配置中心 路由配置: { routeMapping: { ‘/vulManage’: ‘<AppId>’, !// 默认前缀 ‘/vulManage/linux’: ‘<AppId>linux’, ‘/vulManage/window’: ‘<AppId>window’, ‘/vulManage/cve/:id’: ‘<AppId>detail/:id’, …… } }
23. 消息机制 HostApp 下发 注册 / 触发 订阅 MicroApp MicroApp
24. 望楼系统
25. 微前端的“望楼系统”(可观察性工具) 除了监控(系统健康度指标、告警和阀值),系统运行状态和可控性(观察工具、跟踪、调试…) 配置 - 版本灰度 - 版本回滚 - A/B测试 - 访问控制 代码质量 - 健康状况 - 安全检测 - 维护者 观察 - 微应用列表 - 微应用参数 - 公共依赖 - 公共组件 - 异常监控 - 行为日志 数据服务 - 接囗编排 - GraphQL 度量 - 加载速度 (性能指标) - 访问量(PV/UV)
26. 前端架构体系不可忽略运维能力 运维系统的设计原则 可控 可观察 分拆 ⾃动化 y e n a e M b o 来⾃ R https://twitter.com/RobMeaney/status/1177010238307934210/photo/1
27. 微前端配置中心方案 可灰度、可回滚、中心化管理
28. type version 微应⽤ 50% appid (MicroApp ID) desc sas-asset 安全中⼼-资产中⼼ errors 3 微应⽤列表 1.0.12 maintainability complexity jscpd 82 17 2.4 % eslint 0 / 11 resources storybook http://g.alicdn.com/{group.name}/{project.id}/{app.version}/index.min.js http://g.alicdn.com/{group.name}/{project.id}/{app.version}/index.min.css type version 微应⽤ 1.0.12 50% appid (MicroApp ID) desc sas-vulmanage 安全中⼼-漏洞管理 errors 3 resources maintainability complexity jscpd 82 17 2.4 % eslint 0 / 11 storybook http://g.alicdn.com/{group.name}/{project.id}/{app.version}/index.min.js http://g.alicdn.com/{group.name}/{project.id}/{app.version}/index.min.css
29. type 微应⽤ 基本信息 编辑、隐藏等操作 version 1.0.12 appid (MicroApp ID) desc sas-asset 安全中⼼-资产中⼼ errors 异常监控 3 资源文件 resources 当前版本 & 灰发控制 50% maintainability complexity jscpd 82 17 2.4 % eslint 0 / 11 storybook http://g.alicdn.com/{group.name}/{project.id}/{app.version}/index.min.js http://g.alicdn.com/{group.name}/{project.id}/{app.version}/index.min.css 代码健康度 演示、文档
30.
31. 总结 微前端是云时代的前端架构体系 建体系 基础设施 治理 配置中心 术语 微前端 微应用 微应用容器 全链路机制 核心能力 运维能力 引导 (Bootstrap) 观察性 公共依赖 微应用配置文件 本地工作台 微前端治理 配置中心
32. Q & A 谢谢! 扫 码参 与 调查

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