微服務架構成功之路

2021-09-17 07:49:14 字數 2359 閱讀 9314

近年來,在軟體開發領域關於微服務的討論呈現出火爆的局面,有人傾向於在系統設計與開發中採用微服務方式實現軟體系統的松耦合、跨部門開發;同時,反對之聲也很強烈,持反對觀點的人表示微服務增加了系統維護、部署的難度,導致一些功能模組或**無法復用,同時微服務允許使用不同的語言和框架來開發各個系統模組,這又會增加系統整合與測試的難度,而且隨著系統規模的日漸增長,微服務在一定程度上也會導致系統變得越來越複雜。儘管一些公司已經在生產系統中採用了微服務架構,並且取得了良好的效果;但更多公司還是處在觀望的態度。

\\ christian posta是red hat的中介軟體專家與架構師、開源愛好者,同時也是apache activemq、apache camel、fabric8、hawtio等諸多專案的提交者。近日,posta撰文談到了微服務架構的一些成功故事,揭示出微服務架構成功的內在表現,同時還談到了對成功的微服務架構的理解。

\\ 我們都很清楚微服務架構所帶來的好處,很多人也建議我們為何以及如何要採用微服務;同時,我們也知道諸如amazon、netflix以及gilt等公司成功應用微服務架構的故事。不過,就像我之前在文章you』re not going to do microservices中所談及的那樣,正確使用微服務,並且讓公司或組織成功實施微服務是一件非常困難的事情。決定使用dropwizard/springboot/wildflyswarm/docker並不意味著你就在使用微服務,可以說二者之間並沒有什麼直接的關係。事實上,過早地將應用或服務拆分為更加小型的服務是需要採取一種折衷的辦法的。在這一點上,我與martin fowler的觀點是一致的。

\\

很多開發團隊認為微服務架構風格要比單體架構更加優秀。不過,還有一些團隊認為微服務會導致生產力的降低。就像其他任何架構風格一樣,微服務也會帶來成本和收益。要想做出明智的選擇,你需要對其有清晰、透徹的理解,然後將其應用到具體的上下文中。
\\

微服務帶來的好處有:\\

微服務的代價有:\\

因此,當我們在一些業界大會上,在開發者部落格上談論微服務的成功故事時,我認為我們並沒有抓住要點。是否成功與採用了什麼依賴管理器、類載入器結構、linux容器或是雲服務並沒有直接的關係;而是與一些更加基礎、與docker/kubernetes/springboot相比不那麼潮的東西有關。

\\真正的成功?

\\ 微服務架構真正的成功之處在於組織該如何擁抱小型、跨職能團隊,並且鼓勵扁平、自我管理的組織,他們可以以傳統組織結構無法匹敵的速度進行創新,並且快速成功。

\\兩披薩團隊

\\ 我曾經有幸與amazon團隊一同工作,從而了解到了他們的組織文化。amazon的乙個規定是組織團隊必須要遵循「兩批薩」原則。簡單來說就是乙個團隊的成員有兩個披薩就能吃飽了。這背後的想法可以通過amazon ceo jeff bezos的話總結為:

\\ \bezos:不,溝通是件非常糟糕的事情。

\\ 要想打造並保持自治、創新性的團隊,你不需要「更多的溝通」,你需要的是「有效的溝通」。說起來容易做起來難,不過首先我們就需要確保團隊的人數要足夠少。這樣,團隊成員之間就能更好地了解彼此,他們會形成良好的人際關係、保持信任和動力。j richard hackman研究了團隊與集體動態,發現成員之間的溝通鏈會隨著團隊成員的增加而增加。

\\跨職能

\\ 我覺得下面這句話能夠很好地說明為何乙個團隊應該是跨職能的:

\\

當將人們從一系列行為動作中分離開來時,壞行為就出現了。
\\

下面這些話熟悉嗎?\\

與上面做法相反的是形成跨職能團隊:讓乙個團隊的人搞定資料庫、運維和測試等工作,或是讓乙個人擔任多個角色。這正是當下很多網際網路公司的做法,如amazon、netflix、facebook和google等。通過這種方式,你就會負責團隊的一切事情,沒有機會將事情拋給別人去做。

\\soa與微服務

\\ 重申一次,我認為我們所聽到的關於微服務的成功故事不一定是技術上的成功,我們實際上冒著抓不住要點的風險,並且可能會重蹈soa的覆轍。soa的很多原則都是微服務的基石,不過soa並沒有走向終點。很多人使用soa的原因就是為了用而用;廠商、委員會與協會一起過來告訴我們什麼是我們「需要」的。最終,soa也提出了關於組織結構的相同目標,不過卻迷失在了ws-*規範中。

\\開源社群

\\ 仔細想想,你會發現這些小型、跨職能的微服務團隊看起來像是小型開源專案一樣。大家一起工作,不怕與別人分享自己的觀點;每個人都熱衷於構建高質量軟體,由於團隊規模足夠小並且聚焦,因此可以構建出模組化軟體。他們是開發者、測試、運維,一切工作都有著相同的目標,而這正是devops與微服務的真諦之所在。

\\ 親愛的infoq讀者,你對於近幾年來火熱的微服務討論有何看法,你認為在當下所從事的專案中有必要採用微服務架構麼?採用微服務架構會對當前的開發、測試與運維帶來那些變化,歡迎寫下你的觀點與大家一同交流。

微服務架構成功之路

近年來,在軟體開發領域關於微服務的討論呈現出火爆的局面,有人傾向於在系統設計與開發中採用微服務方式實現軟體系統的松耦合 跨部門開發 同時,反對之聲也很強烈,持反對觀點的人表示微服務增加了系統維護 部署的難度,導致一些功能模組或 無法復用,同時微服務允許使用不同的語言和框架來開發各個系統模組,這又會增...

微服務架構成功之路

近年來,在軟體開發領域關於微服務的討論呈現出火爆的局面,有人傾向於在系統設計與開發中採用微服務方式實現軟體系統的松耦合 跨部門開發 同時,反對之聲也很強烈,持反對觀點的人表示微服務增加了系統維護 部署的難度,導致一些功能模組或 無法復用,同時微服務允許使用不同的語言和框架來開發各個系統模組,這又會增...

卡耐基的成功之路

卡耐基的成功之路 當命運交給我們乙個檸檬的時候,讓我們去試著做一杯檸檬水。算算你得意事,而不要理睬你的煩惱。卡耐基告訴我們 不知你怎樣抗拒憂慮的人都會短命,同理,就事業而言,不知抗拒憂慮同樣會失敗。卡面基稱為萬能方式,步驟有三 1 問你自己 可能發生的最壞的情況是什麼?2 如果是必須接受的話就準備接...