微前端平台设计

167 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情

微前端平台承载的东西多了,就需要考虑一下是否需要一个管控层把微前端平台都托管起来。

那么怎么做托管?经常由于一些业务和环境的原因,导致我们的灰度、回滚、监控这些传统的业务内容无法受到保障,这个就需要我们做一个统一的托管层,把这些东西都给托管起来,能适应各种业务场景,去给应用提供统一的托管。

通常我们部署,有俩最终的渠道,即cdn或者服务器。cdn的话想对来说,比较简单,直接发到oss上即可,淡水cdn有个问题,就是灰度啥的不好搞;发到服务器上,就依赖于服务器的部署,虽然灵活但是很多能力都需要服务器的开发。前者是前后端分离。但是实际上还有另外一种方式,就是部署的服务器是一个专门的网关层,不负责业务逻辑,专门做前端资源的渲染。

这种方式具体是什么样子的呢:

  1. 请求网关渲染服务
  2. 认证
  3. 获取应用的html
  4. 内容拼接及处理,这里可以做一些灰度判断之类的逻辑
  5. 响应给浏览器
  6. 其它静态资源通过html加载,可以去cdn上加载即可

这样做一层比较薄的一层,可以解决很多的问题。

对于微前端这种新的业务场景,它也有一些痛点:

  1. 应用间关系其实不好管理,应用间解耦,但是关系通过代码描述
  2. 环境问题
  3. 开发联调不方便
  4. 依赖关系容易混乱
  5. 监控的配置及信息收集
  6. 投放及安全生产
  7. 业务开发与主应用管理的区别

我们可以做以下的事情:

  1. 进行层级的划分
  2. 项目的实体,项目的形式,项目的内涵,这些事情要搞清楚