微服務(wù)(Microservice)是什么悯嗓?為什么會(huì)出現(xiàn)微服務(wù)件舵?

微服務(wù)(Microservice)雖然是當(dāng)下剛興起的比較流行的新名詞,但本質(zhì)上來說脯厨,微服務(wù)并非什么新的概念铅祸。

實(shí)際上,很多 SOA(面向服務(wù)的架構(gòu))實(shí)施成熟度比較好的企業(yè)合武,已經(jīng)在使用和實(shí)施微服務(wù)了临梗。只不過,它們只是在悶聲發(fā)大財(cái)稼跳,并不介意是否有一個(gè)比較時(shí)髦的名詞來明確表述 SOA 的這個(gè)發(fā)展演化趨勢罷了盟庞。

微服務(wù)其實(shí)就是服務(wù)化思路的一種最佳實(shí)踐方向,遵循 SOA 的思路汤善,各個(gè)企業(yè)在服務(wù)化治理的道路上走的時(shí)間長了什猖,踩的坑多了,整個(gè)軟件交付鏈路上各個(gè)環(huán)節(jié)的基礎(chǔ)設(shè)施逐漸成熟了红淡,微服務(wù)自然而然就誕生了不狮。

當(dāng)然,之所以叫微服務(wù)在旱,是與之前的服務(wù)化思路和實(shí)踐相比較而來的摇零。

早些年的服務(wù)實(shí)現(xiàn)和實(shí)施思路是將很多功能從開發(fā)到交付都打包成一個(gè)很大的服務(wù)單元(一般稱為 Monolith),而微服務(wù)實(shí)現(xiàn)和實(shí)施思路則更強(qiáng)調(diào)功能趨向單一桶蝎,服務(wù)單元小型化和微型化驻仅。

如果用“茶壺煮餃子”來打比方的話,原來我們是在一個(gè)茶壺里煮很多個(gè)餃子登渣,現(xiàn)在(微服務(wù)化之后)則基本上是在一個(gè)茶壺煮一個(gè)餃子噪服,而這些餃子就是服務(wù)的功能,茶壺則是將這些服務(wù)功能打包交付的服務(wù)單元胜茧,如圖 1 所示粘优。

圖 1??論茶壺里煮“餃子”的不同形式

所以,從思路和理念上來講竹揍,微服務(wù)就是要倡導(dǎo)大家盡量將功能進(jìn)行拆分敬飒,將服務(wù)粒度做小,使之可以獨(dú)立承擔(dān)對(duì)外服務(wù)的職責(zé)芬位,沿著這個(gè)思路開發(fā)和交付的軟件服務(wù)實(shí)體就叫作“微服務(wù)”无拗,而圍繞著這個(gè)思路和理念構(gòu)建的一系列基礎(chǔ)設(shè)施和指導(dǎo)思想,筆者將它稱為“微服務(wù)體系”昧碉。

微服務(wù)是怎么來的英染?

微服務(wù)的概念我們應(yīng)該大體了解了揽惹,那么微服務(wù)又是怎么來的?原來將很多功能打包為一個(gè)很大的服務(wù)單元進(jìn)行交付的做法不能滿足需求嗎四康?

實(shí)際上搪搏,并非原來“大一統(tǒng)”(Monolith)的服務(wù)化實(shí)踐不能滿足要求,也不是不好闪金,只是疯溺,它有自己存在的合理場景。

對(duì)于 Monolith 服務(wù)來說哎垦,如果團(tuán)隊(duì)不大囱嫩,軟件復(fù)雜度不高,那么漏设,使用 Monolith 的形式進(jìn)行服務(wù)化治理是比較合適的墨闲,而且,這種方式對(duì)運(yùn)維和各種基礎(chǔ)設(shè)施的要求也不高郑口。

但是鸳碧,隨著軟件系統(tǒng)的復(fù)雜度持續(xù)飆升,軟件交付的效率要求更高犬性,投入的人力以及各項(xiàng)資源越來越多瞻离,基于 Monolith 的服務(wù)化思路就開始“捉襟見肘”。

在開發(fā)階段仔夺,如果我們遵循 Monolith 的服務(wù)化理念琐脏,通常會(huì)將所有功能的實(shí)現(xiàn)都統(tǒng)一歸到一個(gè)開發(fā)項(xiàng)目下攒砖,但隨著功能的膨脹缸兔,這些功能一定會(huì)分發(fā)給不同的研發(fā)人員進(jìn)行開發(fā),造成的后果就是吹艇,大家在提交代碼的時(shí)候頻繁沖突并需要解決這些沖突惰蜜,單一的開發(fā)項(xiàng)目成為了開發(fā)期間所有人的工作瓶頸。

為了減輕這種苦惱受神,我們自然會(huì)將項(xiàng)目按照要開發(fā)的功能拆分為不同的項(xiàng)目抛猖,從而負(fù)責(zé)不同功能的研發(fā)人員就可以在自己的代碼項(xiàng)目上進(jìn)行開發(fā),從而解決了大家無法在開發(fā)階段并行開發(fā)的苦惱鼻听。

到了軟件交付階段财著,如果我們遵循 Monolith 的服務(wù)化理念,那么撑碴,我們一定是將所有這些開發(fā)階段并行開發(fā)的項(xiàng)目集合到一起進(jìn)行交付撑教。

這就涉及服務(wù)化早期實(shí)踐中比較有名的“火車模型”,即交付的服務(wù)就像一輛火車醉拓,而這個(gè)服務(wù)相關(guān)的所有功能對(duì)應(yīng)的項(xiàng)目成果伟姐,就是要裝上火車車廂的一件件貨物收苏,交付的列車只有等到所有項(xiàng)目都開發(fā)測試完成后才可以裝車出發(fā),完成整個(gè)服務(wù)的交付愤兵。

很顯然鹿霸,只要有一個(gè)車廂沒有準(zhǔn)備好貨物(即功能項(xiàng)目未開發(fā)測試完成),火車就不能發(fā)車秆乳,服務(wù)就不能交付懦鼠,這大大降低了服務(wù)的交付效率。如果每個(gè)功能項(xiàng)目可以各自獨(dú)立交付屹堰,那么就不需要都等同一輛火車葛闷,各自出發(fā)就可以了。

順著這個(gè)思路双藕,自然而然地淑趾,大家逐漸各自獨(dú)立,每一個(gè)功能或者少數(shù)相近的功能作為單一項(xiàng)目開發(fā)完成后將作為一個(gè)獨(dú)立的服務(wù)單元進(jìn)行交付忧陪,從而在服務(wù)交付階段扣泊,大家也能夠并行不悖,各自演化而不受影響嘶摊。

所以延蟹,隨著服務(wù)和系統(tǒng)的復(fù)雜度逐漸飆升,為了能夠在整個(gè)軟件的交付鏈路上高效擴(kuò)展叶堆,將獨(dú)立的功能和服務(wù)單元進(jìn)行拆分阱飘,從而形成一個(gè)一個(gè)的微服務(wù)是自然而然發(fā)生的事情。

這就像打不同的戰(zhàn)役一樣虱颗,在雙方兵力不多沥匈、戰(zhàn)場復(fù)雜度不高的情況下,Monolith 的統(tǒng)一指揮調(diào)度方式是合適的忘渔。而一旦要打大的戰(zhàn)役(類似于系統(tǒng)復(fù)雜度提升)高帖,雙方一定會(huì)投入大量的兵力(軟件研發(fā)團(tuán)隊(duì)的規(guī)模增長),如果還是在狹小甚至固定的戰(zhàn)場上進(jìn)行廝殺畦粮,顯然施展不開散址!

所以,小戰(zhàn)役有小戰(zhàn)役的打法宣赔,大戰(zhàn)役有大戰(zhàn)役的戰(zhàn)法预麸,而微服務(wù)實(shí)際上就是一種幫助擴(kuò)展組織能力、提升團(tuán)隊(duì)效率的應(yīng)對(duì)“大戰(zhàn)役”的方法儒将,它幫助我們從軟件開發(fā)到交付吏祸,進(jìn)而到團(tuán)隊(duì)和組織層面多方位進(jìn)行擴(kuò)展。

總的來說椅棺,一方面微服務(wù)可以幫助我們應(yīng)對(duì)飆升的系統(tǒng)復(fù)雜度犁罩;另一個(gè)方面齐蔽,微服務(wù)可以幫助我們進(jìn)行更大范圍的擴(kuò)展,從開發(fā)階段項(xiàng)目并行開發(fā)的擴(kuò)展床估,到交付階段并行交付的擴(kuò)展含滴,再到相應(yīng)的組織結(jié)構(gòu)和組織能力的擴(kuò)展,皆因微服務(wù)而受惠丐巫。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谈况,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子递胧,更是在濱河造成了極大的恐慌碑韵,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缎脾,死亡現(xiàn)場離奇詭異祝闻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)遗菠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門联喘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辙纬,你說我怎么就攤上這事豁遭。” “怎么了贺拣?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵蓖谢,是天一觀的道長。 經(jīng)常有香客問我譬涡,道長闪幽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任昂儒,我火速辦了婚禮沟使,結(jié)果婚禮上委可,老公的妹妹穿的比我還像新娘渊跋。我一直安慰自己,他們只是感情好着倾,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布拾酝。 她就那樣靜靜地躺著,像睡著了一般卡者。 火紅的嫁衣襯著肌膚如雪蒿囤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天崇决,我揣著相機(jī)與錄音材诽,去河邊找鬼底挫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛脸侥,可吹牛的內(nèi)容都是我干的建邓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼睁枕,長吁一口氣:“原來是場噩夢啊……” “哼官边!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起外遇,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤注簿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后跳仿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诡渴,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年菲语,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玩徊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谨究,死狀恐怖恩袱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胶哲,我是刑警寧澤畔塔,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站鸯屿,受9級(jí)特大地震影響澈吨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寄摆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一谅辣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧婶恼,春花似錦桑阶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至眷篇,卻和暖如春萎河,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國打工虐杯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玛歌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓擎椰,卻偏偏與公主長得像沾鳄,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子确憨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容