關(guān)于微前端(micro frontend) - 上

起源

最近在做一個(gè)基于Web的商業(yè)應(yīng)用吴攒『晔蹋客戶希望這個(gè)應(yīng)用在架構(gòu)上能滿足以下需求:

1) 盡量簡(jiǎn)單滿足最初上線的基本功能與性能高求潮太;

2)具有良好的可擴(kuò)展性喳整∽还梗可以兼容現(xiàn)有服務(wù)并方便后期引入新的技術(shù);

3)所采用架構(gòu)及其后期evolve需盡量減少后期維修成本框都。

架構(gòu)師的工作內(nèi)容除了溝通之外主要是權(quán)衡(trade-off)搬素。就是對(duì)各種架構(gòu)進(jìn)行評(píng)估和嘗試最后選擇一個(gè)相對(duì)更可行的架構(gòu)方案。

微服務(wù)架構(gòu)設(shè)計(jì)思想主要應(yīng)用在后端系統(tǒng)的設(shè)計(jì)并很好地應(yīng)用在很多商業(yè)場(chǎng)景瞬项。然而隨著前端組件在基于browser的應(yīng)用越來(lái)越復(fù)雜和沉重蔗蹋,有些公司開(kāi)始將微服務(wù)的技術(shù)思想應(yīng)用到瀏覽器端。即:Micro frontends【1】囱淋。

什么是微前端

簡(jiǎn)單地說(shuō)微前端的思路是將Web應(yīng)用切分成多少獨(dú)立的微前端應(yīng)用猪杭。每個(gè)微前端應(yīng)用擁有獨(dú)立的前端、后端及數(shù)據(jù)庫(kù)組件妥衣。并獨(dú)立開(kāi)發(fā)皂吮、部署、運(yùn)行與維護(hù)税手。以下是微前端架構(gòu)與其它架構(gòu)的對(duì)比:

圖片來(lái)源于網(wǎng)絡(luò)


圖片來(lái)源于網(wǎng)絡(luò)

應(yīng)用場(chǎng)景

每種技術(shù)與設(shè)計(jì)思想都是為了解決某類實(shí)際問(wèn)題蜂筹。微前端的架構(gòu)與技術(shù)適用于以下應(yīng)用場(chǎng)景:

1). 遺留系統(tǒng)的兼容與遷移:

技術(shù)的發(fā)展日新月異。采用更好更優(yōu)秀的技術(shù)支持業(yè)務(wù)是很多公司提高競(jìng)爭(zhēng)力的手段芦倒。大多數(shù)擁有已上線運(yùn)營(yíng)的軟業(yè)系統(tǒng)的商業(yè)公司的開(kāi)發(fā)團(tuán)隊(duì)面臨的一個(gè)實(shí)際問(wèn)題是: 如何在兼容現(xiàn)有系統(tǒng)的情況下采用更新更優(yōu)秀的技術(shù)與框架開(kāi)發(fā)新的功能艺挪。使用微前端是一個(gè)不錯(cuò)的選擇。

說(shuō)明:圖片來(lái)自網(wǎng)絡(luò)(Phodal,InfQ)


2). 應(yīng)用聚合

大多數(shù)公司內(nèi)部都部署了各種軟件應(yīng)用提供各種內(nèi)部與外部服務(wù)兵扬。如果能將這些軟件應(yīng)用聚合成一個(gè)可以提供統(tǒng)一用戶體驗(yàn)的應(yīng)用將會(huì)提高員工的工作效率及客戶的體驗(yàn)麻裳。采用微前端是一個(gè)不錯(cuò)的選擇口蝠。

說(shuō)明:圖片來(lái)自網(wǎng)絡(luò)(Phodal,InfoQ)


3).單一職責(zé)與應(yīng)用自治

由于每個(gè)微前端應(yīng)用都是獨(dú)立的開(kāi)發(fā)與部署并且各應(yīng)用之間通過(guò)統(tǒng)一的接口規(guī)范與框架聚合在一起。這既可提高開(kāi)發(fā)團(tuán)隊(duì)的專注水平又保證各團(tuán)隊(duì)之間的協(xié)作津坑。比如:亞馬遜內(nèi)部就提倡:" you make it you own it"妙蔗。

架構(gòu)模式

微前端應(yīng)用可采用以下兩種架構(gòu)模式:

1) 管理式模式

2)自組織式模式

劃分方式

微前端應(yīng)用邊界可按以下方式劃分:

1) 按業(yè)務(wù)劃分

2) 按組織結(jié)構(gòu)劃分

3) 按權(quán)限劃分

4) 按變更頻率劃分

5) 按服務(wù)劃分

實(shí)現(xiàn)方式

1) 路由分發(fā)式

即通過(guò)反向代理或路由組件將服務(wù)請(qǐng)求分發(fā)到不同的獨(dú)立前端應(yīng)用上。

2)微應(yīng)用集成式

即先根據(jù)微應(yīng)用邊界劃分后獨(dú)立開(kāi)發(fā)及步驟一系列獨(dú)立的微應(yīng)用疆瑰。然后再集成到一個(gè)新的應(yīng)用上眉反。

3)微組件運(yùn)行時(shí)集成

指將業(yè)務(wù)服務(wù)分解并編譯成可以在集成應(yīng)用上直接可運(yùn)行的組件并保存與維護(hù)在相應(yīng)的組件倉(cāng)庫(kù)中。集成頁(yè)面在運(yùn)行時(shí)直接加載和調(diào)用相應(yīng)的組成提供相應(yīng)的服務(wù)穆役。

4)建立基于微容器的前端架構(gòu)

感覺(jué)這個(gè)思路和微軟的Sharepoint的Web Part及java的portlet的思路相近寸五。即將微應(yīng)用以微組件的形式存在。應(yīng)用通過(guò)微容器在集成應(yīng)用運(yùn)行時(shí)對(duì)微組件進(jìn)管理耿币。目前可使用的方法有:使用 iFrame 創(chuàng)建容器播歼、使用Web Components技術(shù)等。


幾種微前端框架

1) single-spa

2) stencil

3) mooa

4) single-spa-angular

5) single-spa-angular-cli

其中single-spa-angular|-cli是single-spa-angular的舊版本掰读。已不再維護(hù)秘狞。



1. https://www.thoughtworks.com/radar/techniques/micro-frontends

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蹈集,隨后出現(xiàn)的幾起案子烁试,更是在濱河造成了極大的恐慌,老刑警劉巖拢肆,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件减响,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡郭怪,警方通過(guò)查閱死者的電腦和手機(jī)支示,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鄙才,“玉大人颂鸿,你說(shuō)我怎么就攤上這事≡茆郑” “怎么了嘴纺?”我有些...
    開(kāi)封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)浓冒。 經(jīng)常有香客問(wèn)我栽渴,道長(zhǎng),這世上最難降的妖魔是什么稳懒? 我笑而不...
    開(kāi)封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任闲擦,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘墅冷。我一直安慰自己贮缕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布俺榆。 她就那樣靜靜地躺著,像睡著了一般装哆。 火紅的嫁衣襯著肌膚如雪罐脊。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天蜕琴,我揣著相機(jī)與錄音萍桌,去河邊找鬼。 笑死凌简,一個(gè)胖子當(dāng)著我的面吹牛上炎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雏搂,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼藕施,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了凸郑?” 一聲冷哼從身側(cè)響起裳食,我...
    開(kāi)封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎芙沥,沒(méi)想到半個(gè)月后诲祸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡而昨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年救氯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歌憨。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡着憨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出务嫡,到底是詐尸還是另有隱情享扔,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布植袍,位于F島的核電站惧眠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏于个。R本人自食惡果不足惜氛魁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秀存,春花似錦捶码、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至澳盐,卻和暖如春祈纯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叼耙。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工腕窥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人筛婉。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓簇爆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親爽撒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子入蛆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355