微服務(wù)實施常被忽視的 5 個難點

本文是 GitChat為什么微服務(wù)實施那么難?如何高效推進微服務(wù)架構(gòu)演進》的上半部分竿奏。標(biāo)題和部分內(nèi)容已做修改寺酪。

前言

筆者從 2013 年加入 ThoughtWorks 至今共 4年時間输涕。在這 4 年的時間里盐数,我分別以 開發(fā)人員, DevOps 工程師姑隅、DevOps 咨詢師写隶、微服務(wù)架構(gòu)師以及微服務(wù)咨詢師的角色參與了共計 7 個產(chǎn)品和項目的微服務(wù)咨詢和實施。其中有有成功讲仰,有失敗慕趴,有反思,更多的是學(xué)習(xí)和總結(jié)鄙陡。以下是我這些年來在微服務(wù)咨詢上的經(jīng)驗總結(jié)冕房,希望能給陷入微服務(wù)實施困境的人帶來一些幫助。

難點1:“一步到位”的認知錯覺

這些年微服務(wù)大紅大紫趁矾,但是真正能夠拿出來做為可實踐的案例少之又少毒费。大部分的微服務(wù)案例只能看到微服務(wù)架構(gòu)的“演進結(jié)果”,但是看不到微服務(wù)架構(gòu)的“演進過程”愈魏。這就像每個人看到一個架構(gòu)的高峰,卻沒有看到攀登高峰的路徑。

這就給很多架構(gòu)師一個假象:微服務(wù)的架構(gòu)是通過能力極高的架構(gòu)師一步到位設(shè)計出來的培漏。

這和很多團隊自上而下的架構(gòu)設(shè)計感受和相似溪厘。于是架構(gòu)師們蜂擁而至,各種分析方法論層出不窮牌柄,討論和分享絡(luò)繹不絕畸悬。然而真正落地實施的卻很少,使得微服務(wù)在網(wǎng)絡(luò)上慢慢變成了一種“玄學(xué)”:微服務(wù)的實施在“理論研究”的階段珊佣。

這違反了軟件架構(gòu)的最基本規(guī)律:架構(gòu)是解決當(dāng)前的需求和痛點演進的蹋宦,而無法對沒有出現(xiàn)的問題和痛點進行設(shè)計。因此咒锻,一步到位的整體的微服務(wù)架構(gòu)設(shè)計完全沒有必要冷冗。況且一個集中化的設(shè)計,很難體現(xiàn)微服務(wù)的輕量級優(yōu)勢惑艇。

我相信技術(shù)的發(fā)展一定是向不斷降低成本的方向上發(fā)展的蒿辙。如果新技術(shù)沒有降低成本反而提升了成本,要么這個新技術(shù)有問題滨巴,要么一定是姿勢不對思灌,走錯了路。

因此恭取,準(zhǔn)備實施微服務(wù)一定要有一個長期的思想準(zhǔn)備泰偿。不過跨過了最初的門檻之后,剩下的工作可以被復(fù)制而且速度會越來越快蜈垮。

難點2:“架構(gòu)師精英主義”

很多產(chǎn)品對架構(gòu)師的依賴很大耗跛,即“架構(gòu)師精英主義”:認為產(chǎn)品架構(gòu)只有這個組織的“技術(shù)精英”——架構(gòu)師才可以完成,而團隊其它成員只需要實現(xiàn)架構(gòu)師的設(shè)計就可以窃款。這是大型企業(yè)和大型系統(tǒng)的常見問題课兄,這來源于長期的重量級企業(yè)級架構(gòu)習(xí)慣。

而微服務(wù)則類似于一種“敏捷邊際革命”:即由一個不超過2~8個人的小團隊就可以完成的功能晨继。而且這種規(guī)模的團隊即使從整個產(chǎn)品團隊移除也對整體產(chǎn)品的研發(fā)進度沒有影響烟阐。因此,即使失敗了不會帶來太多的損失紊扬。不過蜒茄,當(dāng)?shù)谝粋€微服務(wù)改造成功,那么成功經(jīng)驗的復(fù)制帶來的乘數(shù)效應(yīng)卻能帶來很大的收益餐屎。

從架構(gòu)改造投資的風(fēng)險收益比來看檀葛,這是非常劃算的。

因此腹缩,微服務(wù)團隊完全沒必要大張旗鼓屿聋,只需要兩三個人就可以動工空扎。但是,誰也沒有微服務(wù)的實踐經(jīng)驗啊润讥,萬一失敗了怎么辦转锈?

這就帶來了下一個難點。

難點3:缺乏一個信任并鼓勵創(chuàng)新的環(huán)境

面對未知的領(lǐng)域楚殿,失敗再所難免撮慨。而面對這個不確定性頻發(fā)的世界,成功和失敗往往不再重要:也許今天的失敗脆粥,明天再看就是成功砌溺,反之亦然。

成功意味只是表明結(jié)果符合自己的假設(shè)預(yù)期变隔,而失敗僅僅意味著結(jié)果不符合自己的假設(shè)預(yù)期规伐。但是無論成敗,我們都能從行動的過程中有所學(xué)習(xí)和反思弟胀,而這樣的經(jīng)驗才是研發(fā)活動中最有價值的楷力。

然而,很多組織孵户,尤其“精英主義”的產(chǎn)品團隊萧朝,責(zé)任和壓力往往從上至下分解。由于組織龐大夏哭,金字塔的結(jié)構(gòu)往往會構(gòu)建一種以“不信任”為基礎(chǔ)的制度检柬。這種制度往往營造了一種“寧可不作為,也不能犯錯”的文化竖配。由于上層則需要對失敗負責(zé)何址,使得任何創(chuàng)新只是一個停留在組織上層的想法,難以落實推進进胯。在這種情況下用爪,組織的長期合作形成了穩(wěn)定的工作習(xí)慣和思維定勢,并形成了利益平衡胁镐,這會使得整個組織在面對創(chuàng)新的時候“卡殼”偎血。

當(dāng)微服務(wù)以一種政治任務(wù)從上而下派發(fā)的時候,為了避免失敗盯漂,團隊內(nèi)部會相互推諉颇玷。通過不斷的分析討論和設(shè)計來論證這個事情的難度。在我看來就缆,只要想搞帖渠,就一定能找到辦法,而不是先設(shè)想出一堆還沒有遇到的問題和責(zé)任竭宰。在行進中解決問題是比設(shè)計和討論更加有效率的方法空郊。

而組織解決“卡殼”的辦法就是引入“背鍋俠”:例如新聘請的架構(gòu)師或外部咨詢師份招,來完成這個事情。出了問題就不用自己來承擔(dān)責(zé)任了渣淳。這樣雖然是解決問題的一種折中辦法脾还,但可以讓事情毫無風(fēng)險的執(zhí)行下去。但這是一種短期效應(yīng)入愧,無法解決組織本身的創(chuàng)新窘境,長期依賴外部力量來解決最有價值的問題不會讓自己提升嗤谚,反而形成了對外部力量的依賴棺蛛。對于組織的凝聚力來說不是一件好事。

只有打破當(dāng)前的工作習(xí)慣和思維定勢巩步,充分認識到創(chuàng)新的困難旁赊、風(fēng)險以及價值的組織才? 可以占領(lǐng)創(chuàng)新的高點,吸引人才椅野。

難點4:微服務(wù)技術(shù)棧的“選擇困難癥“

由于“精英主義”的架構(gòu)師需要擔(dān)負很大的責(zé)任并承擔(dān)著很重的壓力终畅。他們必須要為微服務(wù)架構(gòu)謹慎的選擇技術(shù)棧。因此會在不同的技術(shù)棧之間不斷嘗試竟闪。對于習(xí)慣了在大型研發(fā)組織里“精心設(shè)計离福,加班生產(chǎn) ”的架構(gòu)師而言×陡颍“長設(shè)計妖爷,慢反饋”節(jié)奏似乎是理所應(yīng)當(dāng)?shù)摹?/p>

微服務(wù)開源社區(qū)的快速發(fā)展滋長了“架構(gòu)師焦慮”:如果采用落后的技術(shù)會被同行鄙視,被不懂技術(shù)的老板鄙視理朋,甚至被下屬鄙視絮识。因此架構(gòu)師們疲于在各種新型的技術(shù)棧之間比較和學(xué)習(xí)。此外嗽上,不熟悉技術(shù)往往會增大風(fēng)險次舌,架構(gòu)師就需要更多的時間研究。帶著“一步到位”的架構(gòu)幻想對微服務(wù)技術(shù)棧精挑細選兽愤。而不會采用現(xiàn)有低成本的方案快速迭代的解決問題彼念。

微服務(wù)的核心在于采用“小規(guī)模,快反饋”的機制降低軟件系統(tǒng)的復(fù)雜性并通過虛擬和自動化技術(shù)分散風(fēng)險烹看,從而可以快速面對市場變化帶來的各種挑戰(zhàn)国拇,并能夠快速銷售創(chuàng)新,獲得市場的反饋惯殊。而不僅僅是利用到了時下新興的語言酱吝,編程框架或工具。

學(xué)習(xí)和實踐是相輔相成的過程土思,在實踐的時候?qū)W習(xí)务热,并把學(xué)習(xí)到的知識應(yīng)用到實踐中忆嗜。而不是準(zhǔn)備一場考試,先停下來學(xué)習(xí)崎岂,準(zhǔn)備好了再全力以赴捆毫。

以上四點會讓大型組織面對微服務(wù)實施的時候“卡殼”,而這往往會導(dǎo)致微服務(wù)實施容易忽略的最重要一點冲甘,我認為也是核心的一點:

難點5:對微服務(wù)的技術(shù)變革估計過高绩卤,而對微服務(wù)帶來的組織變革估計嚴(yán)重不足

作為架構(gòu)師,永遠要不要低估康威定理的威力:“設(shè)計系統(tǒng)的組織江醇,其產(chǎn)生的設(shè)計和架構(gòu)等價于組織間的溝通結(jié)構(gòu)濒憋。”

從制度經(jīng)濟學(xué)角度上講陶夜,軟件產(chǎn)品本身就是企業(yè)內(nèi)部組織(員工)和外部組織(用戶)溝通制度的計算機程序表達凛驮。這個制度的發(fā)展一定是在不斷縮小內(nèi)部組織之間以及內(nèi)外部組織溝通成本的。

因此条辟,系統(tǒng)的架構(gòu)一定是和組織的架構(gòu)相吻合的黔夭,如果不吻合,勢必會帶來問題阻礙組織的漸進羽嫡。

這就引出了一個推論:如果企業(yè)組織的架構(gòu)不是唯一的本姥,那么微服務(wù)的架構(gòu)方案也不是唯一的。

當(dāng)架構(gòu)和組織結(jié)構(gòu)相一致的時候厂僧,一切都會很順暢扣草。反之,就會出現(xiàn)各種問題颜屠。

這個關(guān)系就像鞋和腳的關(guān)系辰妙,只有穿上合適的鞋,走起路來才會舒服甫窟。過大過小的鞋都不會讓你加快前進的步伐密浑。當(dāng)然,你可以選擇買鞋(引入產(chǎn)品)粗井,雖然并不是很合腳尔破,但還可以湊合穿。但是在換鞋的時候你不得不停下來試浇衬。你也可以花高價為自己定制一套懒构,只不過,這個不會讓你走得更快耘擂,只會越來越合腳胆剧。

如果所有人穿上了新鞋,都能跑得很快。那么這就不是鞋的問題秩霍,而是你腳的問題篙悯,這就不是換鞋能解決的了。你得先把腳的問題解決了铃绒,然后再看鞋的問題鸽照。當(dāng)然,也可以通過鞋來矯正腳颠悬,只不過會花些功夫矮燎,但一定會比不停的換鞋更加有效。

很不幸赔癌,大多數(shù)的組織并沒有準(zhǔn)備好迎接微服務(wù)架構(gòu)帶來的組織變化漏峰。仍然把“系統(tǒng)架構(gòu)問題”和“組織問題”割裂成兩個不同領(lǐng)域的問題:微服務(wù)是技術(shù)問題,組織問題是管理問題届榄。

有競爭力的組織,是一個通過融合優(yōu)勢達到 1+1> 2 的組織倔喂。而不是把優(yōu)勢割裂開铝条,得到 1 + 1 <= 2 的組織。因此席噩,技術(shù)問題和管理問題并不是兩個問題班缰,而是同一個問題的兩個側(cè)面。

因此悼枢,如果你的組織結(jié)構(gòu)是去中心化的小團隊結(jié)構(gòu)埠忘,那么不用擔(dān)心,你的應(yīng)用架構(gòu)會朝組織架構(gòu)的方向演進馒索。反之莹妒,如果你不是一個去中心化的小團隊結(jié)構(gòu),那么微服務(wù)的架構(gòu)會和組織架構(gòu)格格不入绰上。

如何解決這些問題

作為微服務(wù)的實踐者旨怠,對微服務(wù)不應(yīng)該是“葉公好龍”,僅僅停留在研討的層面蜈块。而是應(yīng)該采用敏捷和精益的方式迅速開始鉴腻,在行進中解決碰到的問題。每個組織的組織結(jié)構(gòu)和業(yè)務(wù)結(jié)構(gòu)都有所不同百揭,微服務(wù)實施所面對的挑戰(zhàn)也截然不同爽哎。在實施的過程中快速學(xué)習(xí)并改進,周期較長的總體設(shè)計并無必要器一。

關(guān)于如何解決本文提到的5個問題课锌,請參考下篇推進微服務(wù)落地的 7 個步驟

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盹舞,一起剝皮案震驚了整個濱河市产镐,隨后出現(xiàn)的幾起案子隘庄,更是在濱河造成了極大的恐慌,老刑警劉巖癣亚,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丑掺,死亡現(xiàn)場離奇詭異,居然都是意外死亡述雾,警方通過查閱死者的電腦和手機街州,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來玻孟,“玉大人唆缴,你說我怎么就攤上這事∈螋幔” “怎么了面徽?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長匣掸。 經(jīng)常有香客問我趟紊,道長,這世上最難降的妖魔是什么碰酝? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任霎匈,我火速辦了婚禮,結(jié)果婚禮上送爸,老公的妹妹穿的比我還像新娘铛嘱。我一直安慰自己,他們只是感情好袭厂,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布墨吓。 她就那樣靜靜地躺著,像睡著了一般嵌器。 火紅的嫁衣襯著肌膚如雪肛真。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天爽航,我揣著相機與錄音蚓让,去河邊找鬼。 笑死讥珍,一個胖子當(dāng)著我的面吹牛历极,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播衷佃,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼趟卸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锄列,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤图云,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后邻邮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竣况,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年筒严,在試婚紗的時候發(fā)現(xiàn)自己被綠了丹泉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡鸭蛙,死狀恐怖摹恨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情娶视,我是刑警寧澤晒哄,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站肪获,受9級特大地震影響揩晴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贪磺,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诅愚。 院中可真熱鬧寒锚,春花似錦、人聲如沸违孝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雌桑。三九已至喇喉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間校坑,已是汗流浹背拣技。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留耍目,地道東北人膏斤。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像邪驮,于是被迫代替她去往敵國和親莫辨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

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