在现阶段云原生植物微服务项目、销售业务南台、低标识符网络平台等IT构架下,不再是传统的舰桥式应用领域控制系统建设,而是冲破企业销售组织机构出水口,建立虚拟化的信息技术网络平台(数据南台、销售业务南台),那么对销售业务合作开发的解耦和裂解将成为关键控制技术,目前对于控制系统后端已有成形的微服务项目构架,如前所述SpringBoot合作开发微服务项目,透过SpringCloud或istio进行微服务项目环境治理。后端也同样有类似的需求,如何支持不同的后端项目女团作开发各别销售业务的UI页面,运行时透过统一的架构软件系统资源整合起来,这是微后端架构再次出现的主要政环境治理念。
一、甚么是微后端
2016年底,“Micro frontend”referring首次再次出现在ThoughtWorks Technology Radar上。它将微服务项目的概念扩展到后端世界。现阶段的趋势是构筑两个使用方便、使用方便的插件应用领域程序,也是白眉林应用领域程序,它位于微服务项目构架其内。随着时间的流逝,后端层(通常由两个分立的项目女团作开发)不断增长,并且越来越难以保护。这是我们所言的后端大石头(Frontend Monolith)。
Micro frontend另一面的经营理念是将中文网站或页面应用领域视作分立项目组所拥有的机能的女团。每个项目组都有自己重视和擅于的独有销售业务或任务领域。项目组是跨机能的,合作开发从资料库到界面的端到端优点。
微后端是一种近似于微服务项目的构架,它将微服务项目的经营理念应用领域于插件端,即将 Web 应用领域由单个的乙烯应用领域变革为多个较大型后端应用领域裂解为一的应用领域。各后端应用领域还能分立运转、分立合作开发、分立布署。
二、微后端有甚么优势
1、维数受控: 每两个UI销售业务模块由分立的后端项目女团作开发,避免标识符超大型,维持合作开发时的高速路校对,维持较高的维数,易于保护与合作开发工作效率。
2、分立布署: 每两个模块可原则上布署,微粒度可小到一般而言模块的UI分立布署,不对其他模块有任何负面影响。
3、控制技术THF1灵巧: 也是最具诱惑力的,在同一个项目下能使用如今市售所有后端控制技术栈vue react angular, 也包括未来的后端控制技术栈。
4、纠错: 一般而言模块发生严重错误,不负面影响自上而下,就跟后端微服务项目一样。
5、扩展: 每两个服务项目能分立横向扩展以满足销售业务伸缩性,解决资源的不必要消耗;
三、微后端架构选型
我们项目组在THF1微后端架构时,调研了市售实现微后端的架构,可供选择的有iframe、sigle-spa、qiankun和microApp。single-spa太过于基础,对原有项目的改造过多,成本太高; iframe在所有微后端方案中是最稳定的、上手难度最低的,但它有一些无法解决的问题,例如性能低、通信复杂、双滚动条、弹窗无法自上而下覆盖,它的成长性不高,只适合简单的页面渲染。剩下的只有qiankun和microApp了。
1、京东MicroApp
MicroApp是一款如前所述类WebComponent进行渲染的微后端架构,不同于目前流行的开源架构,它从模块化的思维实现微后端,旨在降低上手难度、提升工作工作效率。它是目前市售接入微后端成本最低的架构,并且提供了JS沙箱、样式隔离、元素隔离、预加载、资源地址补全、插件控制系统、数据通信等一系列完善的机能。MicroApp与控制技术栈无关,也不和销售业务绑定,能用于任何后端架构和销售业务。
MicroApp 的核心机能在CustomElement基础上进行构筑,CustomElement用于创建自定义标签,并提供了元素的渲染、卸载、属性修改等钩子函数,我们透过钩子函数获知微应用领域的渲染时机,并将自定义标签作为容器,微应用领域的所有元素和样式作用域都无法逃离容器边界,从而形成两个封闭的环境。
2、阿里乾坤qiankun
qiankun 是两个如前所述 single-spa 的微后端实现库,旨在帮助大家能更简单、无痛的构筑两个生产可用微后端构架控制系统。qiankun 孵化自蚂蚁金融科技如前所述微后端构架的云产品统一接入网络平台,在经过一批线上应用领域的充分检验及打磨后,我们将其微后端内核抽取出来并开源,希望能同时帮助社区有类似需求的控制系统更方便的构筑自己的微后端控制系统,同时也希望透过社区的帮助将 qiankun 打磨的更加成形完善。目前 qiankun 已在蚂蚁内部服务项目了超过 200+ 线上应用,在易用性及完备性上,绝对是值得信赖的。
参考:
https://cangdu.org/micro-app/