談微服務(wù)實(shí)施的價(jià)值

幾年前我在一家互聯(lián)網(wǎng)公司的一個(gè)電商產(chǎn)品上工作時(shí),經(jīng)歷了項(xiàng)目從無(wú)到有、業(yè)務(wù)從小到大的演變過(guò)程薄辅。當(dāng)時(shí)微服務(wù)架構(gòu)還沒(méi)有興起要拂,產(chǎn)品架構(gòu)主要是基于單體架構(gòu)的。在一年多時(shí)間內(nèi)站楚,業(yè)務(wù)流量就擴(kuò)大了十倍左右脱惰,各種功能特性需求也應(yīng)接不暇。隨著業(yè)務(wù)流量和復(fù)雜性的攀升窿春,單體架構(gòu)的問(wèn)題很快凸顯了出來(lái)拉一。

首先是系統(tǒng)復(fù)雜度不斷上升。由于對(duì)業(yè)務(wù)只進(jìn)行了簡(jiǎn)單的劃分旧乞,分為兩三個(gè)大的代碼庫(kù)蔚润,所有人的代碼提交都在這兩三個(gè)代碼庫(kù)上進(jìn)行,久而久之模塊之間的耦合越來(lái)越多尺栖,代碼的整潔性和可讀性都不斷下降嫡纠,一個(gè)文件幾千行、一個(gè)函數(shù)幾百行的情況也屢見(jiàn)不鮮延赌。一個(gè)臃腫的單體系統(tǒng)編譯除盏、啟動(dòng)、構(gòu)建都會(huì)變慢挫以,發(fā)展到后來(lái)在本地啟動(dòng)主系統(tǒng)就需要5-10分鐘者蠕,可想而知開(kāi)發(fā)人員在這些上面每天又會(huì)浪費(fèi)多少等待時(shí)間。

其次是質(zhì)量缺陷成為一大困擾屡贺。由于系統(tǒng)復(fù)雜蠢棱,模塊之間耦合多,不容易寫(xiě)自動(dòng)化測(cè)試甩栈,在交付壓力的驅(qū)使下開(kāi)發(fā)只好以滿(mǎn)足功能上線(xiàn)為第一目標(biāo)泻仙,所以導(dǎo)致生產(chǎn)環(huán)境經(jīng)常出現(xiàn)bug,有時(shí)甚至是影響到核心功能的嚴(yán)重bug量没,不得不在線(xiàn)回滾玉转,給公司帶來(lái)了損失之外又增添了額外的修復(fù)成本,而且也影響著團(tuán)隊(duì)的上線(xiàn)信心殴蹄。

架構(gòu)的腐化也制約著創(chuàng)新的動(dòng)力究抓,團(tuán)隊(duì)中有些愿意嘗試新技術(shù)、新架構(gòu)的成員袭灯,但一想到如何從紛繁復(fù)雜的代碼中理出個(gè)頭緒刺下,引入新技術(shù)的同時(shí)又不影響現(xiàn)有系統(tǒng)功能,往往就打退堂鼓了稽荧。

同時(shí)橘茉,發(fā)布的風(fēng)險(xiǎn)也在逐漸增大,當(dāng)時(shí)這樣的系統(tǒng)以多實(shí)例方式部署在多個(gè)虛擬機(jī)上,自動(dòng)化部署程度不高畅卓,而且生產(chǎn)環(huán)境和測(cè)試環(huán)境多少會(huì)有些不一致的現(xiàn)象擅腰。再加上前述的各種因素,導(dǎo)致往往在測(cè)試環(huán)境難以發(fā)現(xiàn)性能和安全方面的問(wèn)題翁潘,往往在上線(xiàn)了以后才發(fā)現(xiàn)所發(fā)布功能存在一些問(wèn)題趁冈,只好再手動(dòng)回滾。發(fā)布后還需嚴(yán)密關(guān)注是否發(fā)生異常拜马,久而久之渗勘,導(dǎo)致每一次發(fā)布都成為開(kāi)發(fā)和運(yùn)維人員的噩夢(mèng),用膽戰(zhàn)心驚形容也不為過(guò)一膨。

而且呀邢,運(yùn)維方面,由于系統(tǒng)未進(jìn)行適當(dāng)?shù)牟鸱直鳎瑢?duì)于水平擴(kuò)展也不是那么容易价淌,無(wú)法將系統(tǒng)中的性能瓶頸部分進(jìn)行單獨(dú)擴(kuò)容,就只好將整體系統(tǒng)進(jìn)行擴(kuò)容瞒津,浪費(fèi)資源倒是其次蝉衣,主要是有時(shí)有些含狀態(tài)的任務(wù)或功能無(wú)法直接擴(kuò)容。

幾年后當(dāng)微服務(wù)架構(gòu)及其相關(guān)的持續(xù)交付巷蚪、DevOps病毡、敏捷等實(shí)踐逐步興起時(shí),我意識(shí)到曾經(jīng)遇到過(guò)的問(wèn)題不只是我們才遇到屁柏。而這些思想和方法的出現(xiàn)啦膜,正是為了解決這些問(wèn)題。在我看來(lái)微服務(wù)相關(guān)的實(shí)踐實(shí)施的價(jià)值點(diǎn)主要有:

更簡(jiǎn)單淌喻。如果一件事情太復(fù)雜僧家,目標(biāo)太大,就對(duì)其分解成若干個(gè)小目標(biāo)裸删,分而治之各個(gè)擊破八拱,就會(huì)感覺(jué)容易許多。微服務(wù)正是體現(xiàn)著這樣的思想涯塔,對(duì)系統(tǒng)進(jìn)行適當(dāng)?shù)牟鸱旨〉荆M成一個(gè)個(gè)高內(nèi)聚低耦合的模塊化服務(wù),服務(wù)之間以輕量級(jí)通信進(jìn)行交互匕荸,每個(gè)服務(wù)在獨(dú)立進(jìn)程中運(yùn)行爹谭,可獨(dú)立部署快速發(fā)布。無(wú)形中讓各個(gè)微服務(wù)的復(fù)雜度降低了許多榛搔,寫(xiě)自動(dòng)化測(cè)試也變得相對(duì)容易許多旦棉,讓團(tuán)隊(duì)對(duì)開(kāi)發(fā)質(zhì)量和速度都能有所兼顧齿风。

更可靠药薯。持續(xù)構(gòu)建绑洛、持續(xù)部署等開(kāi)發(fā)流水線(xiàn)的實(shí)踐都強(qiáng)調(diào)盡可能用標(biāo)準(zhǔn)化和自動(dòng)化的方式去完成團(tuán)隊(duì)日常工作中的重復(fù)部分。這不僅僅是為了避免重復(fù)勞動(dòng)童本,也是為了建立更加易于追蹤和控制的系統(tǒng)真屯,提高可靠性,避免因人的手工作業(yè)疏忽所帶來(lái)的問(wèn)題穷娱。

更敏捷绑蔫。敏捷方法論中的核心思想之一是建立快速反饋的通路,這樣團(tuán)隊(duì)才能更快地知道自己是否走在正確的道路上泵额,及時(shí)作出調(diào)整和優(yōu)化配深。看板嫁盲、CI篓叶、自動(dòng)化測(cè)試等實(shí)踐的目的之一都是讓團(tuán)隊(duì)能夠快速而直觀(guān)地得到作業(yè)狀態(tài)和結(jié)果的反饋。小而精的微服務(wù)系統(tǒng)羞秤,也讓各項(xiàng)作業(yè)的執(zhí)行更加快速缸托,從而能夠更快地得到反饋。

當(dāng)然微服務(wù)架構(gòu)也是一把雙刃劍瘾蛋,并不是每個(gè)產(chǎn)品都適合實(shí)施微服務(wù)俐镐,實(shí)施過(guò)程中也避免不了各種陣痛。但只要團(tuán)隊(duì)能夠認(rèn)識(shí)到微服務(wù)實(shí)施的價(jià)值所在哺哼,提前評(píng)估和控制好風(fēng)險(xiǎn)佩抹,在落地過(guò)程中發(fā)展出真正適合自己的實(shí)踐,就能發(fā)揮其作用取董。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末棍苹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子甲葬,更是在濱河造成了極大的恐慌廊勃,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件经窖,死亡現(xiàn)場(chǎng)離奇詭異坡垫,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)画侣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)冰悠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人配乱,你說(shuō)我怎么就攤上這事溉卓∑こ伲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵桑寨,是天一觀(guān)的道長(zhǎng)伏尼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)尉尾,這世上最難降的妖魔是什么爆阶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮沙咏,結(jié)果婚禮上辨图,老公的妹妹穿的比我還像新娘。我一直安慰自己肢藐,他們只是感情好故河,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著吆豹,像睡著了一般鱼的。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瞻讽,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天鸳吸,我揣著相機(jī)與錄音,去河邊找鬼速勇。 笑死晌砾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的烦磁。 我是一名探鬼主播养匈,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼都伪!你這毒婦竟也來(lái)了呕乎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤陨晶,失蹤者是張志新(化名)和其女友劉穎猬仁,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體先誉,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡湿刽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褐耳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诈闺。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖铃芦,靈堂內(nèi)的尸體忽然破棺而出雅镊,到底是詐尸還是另有隱情襟雷,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布仁烹,位于F島的核電站耸弄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏晃危。R本人自食惡果不足惜叙赚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望僚饭。 院中可真熱鬧,春花似錦胧砰、人聲如沸鳍鸵。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)偿乖。三九已至,卻和暖如春哲嘲,著一層夾襖步出監(jiān)牢的瞬間贪薪,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工眠副, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留画切,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓囱怕,卻偏偏與公主長(zhǎng)得像霍弹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子娃弓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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