近幾年,微服務架構迅速在整個技術社群竄紅,它被認為是 IT 軟體架構的未來方向。我與同行交流時,提到微服務等新技術,他們先是興奮,後又無奈。興奮的是他們看到了新技術帶來的便利,無奈的是團隊規模和能力又反過來制約了他們採用新技術的步伐。這中間,我也發現大家對微服務有著不同的理解,但更多的是一些疑慮。不知道你是否也有這樣的困惑,比如:
-
微服務這技術雖然面試的時候總有人提,但作為一個開發,是不是和我關係不大?那不都是架構師的事嗎?
-
微服務不都是大廠在玩嗎?我們這個業務體量用得著嗎?
-
微服務特別複雜,沒個100人的研發團隊是不是就無法落地?
我特別理解這樣的困惑。的確,大公司動輒就是幾百上千的研發人員,並且其中不乏頂尖選手。他們有經驗、有能力,也有業務場景,所以在技術的選擇上也會更為冒進。而對於大部分的中小團隊來說,當微服務架構成為剛需的時候,他們更多的是彷徨和猶豫。
那中小團隊應該如何應用微服務呢?或者換句話說,中小團隊的技術架構應該如何演進呢?
先給你講講我的經歷吧。我2012年加入微博,最開始微博首頁資訊流的後端團隊規模也不大,只有七八個人。當時我們就想著快速迭代,業務也就採用了單體應用的架構。因為求快,不同功能模組的程式碼耦合在一起,編譯打包部署也都在一起。
後來業務規模不斷擴大,團隊人員也增長到二十多人,這時候單體應用架構的開發樣式就開始暴露出問題了。那時候,每一次功能釋出和上線都需要一個上線負責人來收集上線串列,並協調所有相關的開發人員合併程式碼到主幹,然後編譯打包,修改工程依賴的JAR包版本。
你應該可以想象我們那時的狀況。如果一次上線超過五個人參與的話,就會經常出現各種問題:有的人忘記提交程式碼、有的人忘記打包、有的人忘記修改工程依賴到最新版本。一次上線過程需要反覆確認,耗費了大量精力,嚴重影響了整體的開發和部署效率。
看到這,不知你是否大腿一拍,大聲叫到:這不就是我們團隊每天都在面對的問題嘛!
是的,當時我們為瞭解決這些問題,做了很細緻的技術調研,最後選定了服務化的解決方案。對原有的單體應用架構進行改造,把功能相對獨立的模組拆分出去,部署為微服務,分別交給專門的更小的團隊來維護。再到後來我們又引入了Docker容器化,以及Service Mesh等技術,為了更好地適應微博業務的高速發展。
可以說,微博的資訊流後端架構經歷了單體應用 -> 微服務架構 -> 容器化應用 -> DevOps的發展歷程。而我也正是因為親歷了微博的架構演進過程,才對中小團隊如何落地微服務體繫有了更為深刻的理解。
在這個專欄裡,我會秉承著“實用至上”的思路,不斷提醒自己,這個方案中小團隊是否可用,他們能否駕馭這些技術。我想,這是大部分中小團隊的剛需,也是這個專欄的主要出發點。他們需要的不是一個大而全的東西,而是一套可以快速落地的方法論。
我希望在專欄裡不僅跟你分享微服務架構的基礎知識,更是從微服務體系的角度,和你深入討論如何將微服務落地,幫你掃清最開始提到的那些疑惑。
我是誰?
我是胡忠想,微博技術專家。從2012年加入微博到現在,我一直在做微博首頁資訊流相關的業務研發,幾乎親歷了微博後端架構的每一次重大升級。不僅參與了微博後端架構從大的單體應用遷移到微服務架構的改造;還作為主要負責人之一,主導了微服務架構在公司多個業務線的推廣和落地。所以談到將微服務落地,我有很多實戰乾貨想和你分享。
在接下來的三個月裡,我將由淺入深、由表及裡,逐步帶你探索微服務的世界,幫你從0開始構建微服務體系。具體來說,專欄分為四個部分:
第一部分,我會儘量用最通俗的語言講解微服務架構的基本原理,幫你解答三個問題:什麼是微服務?什麼時候適合微服務改造?微服務架構到底是什麼樣的?
第二部分,我會結合在實際業務中的經驗,給你講述微服務架構改造過程中可能會遇到的問題和對應的解決方案,以及搭建微服務架構時,如何做技術選型。
第三部分,我會給你講述微服務、容器化、DevOps這三者之間的關係,以及在具體實踐中如何運用這三種技術以給業務的架構帶來質的飛躍。
第四部分,我會給你介紹下一代微服務體系可能的發展方向,並分享我對此的看法。
微服務是當下最火熱的後端架構之一。不管你是一個什麼級別的程式員,也不論你在一個什麼體量的公司,服務化都是你遲早會遇到的難題。從我的經驗來看,實踐微服務的過程本身也是一個升級打怪的過程,這中間你會遇到基本上所有後端架構的問題。解決了這些問題,你自然也就理解了那些高深的概念,也就成為了一名架構師,成長和能力提升都是這個過程的附屬品。
再或者,我也經常給剛畢業的同學開玩笑說,瞭解微服務架構之後,你起碼能知道領導為啥叫你這麼做,也更容易站在系統角度思考公司技術的行程,這對於你的大局觀構建來說非常有幫助。
訂閱福利:
福利一:限時優惠價¥45,原價¥68,9 月 1 日恢複原價
福利二:使用老艿艿的二維碼,你可以多減 6 塊錢,購買 2 個大可樂。
福利三:購買後,你也可以邀請好友購買,你可獲得 12 元現金返現,好友可返 6 元。多邀多得,上不封頂,隨時提現(提現流程:極客時間 App – 我的 – 分享有賞)
如何訂閱?
掃描下圖二維碼或點選「閱讀原文」連結,試讀或訂閱此專欄。
長按二維碼向我轉賬
受蘋果公司新規定影響,微信 iOS 版的贊賞功能被關閉,可透過二維碼轉賬支援公眾號。
微信掃一掃
使用小程式