趙成:劈開迷霧,蘑菇街技術架構演進之道

近日,由極客邦科技旗下品牌 TGO鯤鵬會舉辦的 GTLC 全球技術領導力峯會臺北站圓滿結束。在 GTLC 臺北站上,蘑菇街平臺技術總監 & TGO 鯤鵬會杭州分會會員趙成帶來了「順勢而爲,技術架構演進之道」的主題分享。以下爲趙成現場分享內容:

今天,我主要分享典型互聯網電商企業蘑菇街的發展歷程,和大家共同探討在發展過程中,我們是如何進行技術架構和技術選型的,我認爲總結下來就是四個字——順勢而爲。

2015 年 1 月,我離開華爲,來到了蘑菇街,主要負責平臺技術部。在過去的 12 年裏,我絕大部分的經歷和經驗基本上集中於後端的技術架構,如今主要專注於雲計算領域。

趙成現場分享

蘑菇街的技術發展歷程

蘑菇街是一個集時尚內容和時尚電商於一體的網站。2011-2013 年是蘑菇街發展的第一個階段,主要做時尚導購內容;2013-2016 年是蘑菇街發展的第二階段,隨着業務的發展和用戶的積累,我們開始投入大量的精力去做電商平臺,完成整個交易體系的建設;2016- 至今是蘑菇街發展的第三個階段,我們開始投入很大的精力去做直播技術,與能力超強的主播合作完成銷售體系的建設。

從去年年中開始,蘑菇街進入第四個階段。此時,蘑菇街的線上平臺和技術體系建設已經比較完善,我們希望能把線上的技術經驗賦能到線下,進入線下時尚內容生產中,給用戶提供更高品質、更具時尚感的產品。

實際上,我們整個技術的發展過程與業務發展相匹配的。

2011-2013 年,我們正在做內容導入,業務架構相對來說比較簡單,在此階段的團隊使命是技術支撐公司業務發展。

因爲這時的技術棧相對比較簡單,整個架構是一個單體架構,所以我們的技術選擇策略是簡單直接、快速上手、快速開發。

2013-2016 年,我們開始做電商的交易體系。這時,我們需要建設相應的用戶體系,包括交易、支付、廣告、搜索、會員、店鋪等一系列內容,於是 2016 年,我們的技術團隊快速擴充到了 800 人。

一方面是因爲業務複雜度上升,另外一方面是因爲當時整個業務的體量在高速發展,我們日 PV 可以達到三億,DAU 也突破了百萬,雙 11 大促時規模會更大。在此階段,我們的技術團隊使命是通過技術支撐公司業務高速發展。

因爲我們的業務變得更加複雜,業務體量也變得非常大,單體架構已經沒有辦法滿足我們對業務靈活性的響應需求。

於是,我們開始全面轉向分佈式架構和技術,策略是架構設計一定要體系化。我們根據整個業務領域進行了模塊劃分,設計了一些基礎的架構,考慮最多的是高性能、高併發和大流量,這對於技術平臺的要求是非常高的。

我們將分佈式架構分爲了三層,以最底層資源——基礎設施層爲主,上面是分佈式組件、核心業務組件層以及業務應用層。

2015 年,我們開始規劃分佈式體系系統時,中臺的概念並沒有像現在這麼火爆,業界也沒有太多很成熟、很完善的經驗供我們借鑑。

但是最後我們發現,當我們立足於自己的問題或場景,一步步解決問題,最後做出來的樣子基本就是現在的技術中臺和業務中臺的樣子。

因此當我們需要做類似的架構時,其實只要立足於我們原本的問題,按照正確的方式去做,到最後大家都是殊途同歸的。

技術團隊面臨的永恆挑戰

技術團隊面臨的挑戰,尤其是在分佈式架構下,你會發現始終離不開三條:效率、穩定和成本。

效率挑戰

要解決效率問題,首先我們要建設一個 DevOps 體系。微服務實際上是將原先單體的架構按照業務領域進行拆分,每一個細分的業務領域可能會單獨成立一個開發小組,用於開發和維護一些應用。接着,開發團隊需要與產品、運營部門等做大量的溝通和交流,還需要考慮測試、運維等一系列相關事宜。因此,想要解決效率問題,不僅在技術上會面臨挑戰,還會帶來很多跨團隊協作問題。

在跨團隊協作過程中,你會發現項目團隊內部也劃分了不少團隊,在這種跨職能或跨組織架構協作的情況下,如何高效的協作和配合是一件非常重要的事情。所以,我們需要想法設法解決跨團隊的協作、溝通和管理的問題。

於是,我們做了一些自動化的流水線和幾個關鍵點的管理機制,以便於打通在流程環節中的持續交付通道。除此之外,我們還做了一些管理工具,比如統一管控平臺等等。

在整個過程中,我們總結出了三個關鍵原則:

第一,標準化,避免架構失控。我們可以嘗試很多技術,創造一個開放的氛圍,但是在項目落地時,基本上只會選擇一種主流的框架和解決方案,在保證高效的協作能力的同時,還要避免架構失控。

第二,以應用爲核心的架構體系。我們整個架構是以應用爲核心,它拆分出來的功能點一定要對應到應用上,以便於跟蹤、評估和管理。

第三,自上而下的推進機制。當團隊間不能達成一致時,我們需要採取自上而下的推進機制。在自上而下推進的過程中,我們需要一個至少是技術 VP 或者最高的技術領導者作爲決策者,他需要決定整個架構體系的標準。在這種情況下,大家會保證步調一致,達到最高的效率。

穩定性體系

穩定是所有工作的前提,現實中,很多時候我們會遇到不可預見的情況發生,比如突然爆發的流量,這是很難提前預測的。這時,我們不是應該保證系統不出問題,而是應該保證系統在出現異常的情況下仍可以正常工作。

不管是電商,還是社交類軟件,我們所做的工作只有一個核心點——面向極端的場景。在正常情況下,系統一般都不會出現太大的問題,但是在非常極端的業務場景下,各類問題就會集中爆發,原來很小的問題,也會被放大,甚至形成雪崩效應,因此我的建議是,如果要做穩定性建設,先找準業務將要面對的極端場景會是什麼,比如電商業務的大促場景、社交類軟件的熱點事件等等,這樣才能做到有的放矢。

而穩定性保障中,非常關鍵的一點是容量評估。比如在雙十一時,我們會對整個用戶模型進行評估,估算參與用戶數量、用戶消費金額、優惠條件等等,根據歷史數據進行統計,統計出來以後,我們將會按照這個模型進行壓測,模擬流量是否足夠支撐。同時,在壓力測試時,會引入限流降級,監控等穩定性保障手段。

成本取捨

我們都知道,有時越到技術做得越深入,投入成本會越高,但獲得的收益可能會越小,因此就涉及到了投入、產出,成本取捨的問題。

舉個例子,爲了應對雙十一,我們前幾年需要投入幾千萬採購設備擴充容量。峯值過後,大部分容量都是閒置的,這屬於極大的浪費。同時,我們要在基礎架構上,投入巨大的精力解決開源軟件的 bug、解決高壓力場景的突發問題等等。最後,導致我們在基礎架構上的投入越來越大。

當我們在這方面投入的資源和精力越來越多時,會導致我們無法集中精力在業務發展上。所以,我們開始反思到底是在技術上繼續做得更深,還是把更多精力放在業務上,專注解決業務問題。

2016 年,我們準備開始做直播業務時,再次遇到了這個難題。我們調研發現,直播技術需要很多專門人才,比如視頻編解碼專業的人才;同時,我們也沒有資源做很強大的基礎架構,比如建設全國的 CDN 節點,這該怎麼辦?最後,我們決定與公有云合作,找專業廠商爲我們提供整套方案,後來在雲廠商的支持下,我們的直播業務在一個月左右就快速上線了,而且現在已經成爲我們非常關鍵一塊業務,如果當時我們沒有爭分奪秒做下來,這塊業務可能就不存在了。

雲計算基礎架構呈現出的顯著特點

當我們面對很多在基礎架構和基礎設施上的問題時,通過我們在直播領域與雲的合作,讓我們再次感受到雲計算技術的力量。

因此我們開始思考,我們應該如何利用好雲計算。我們仔細分析了當時整個雲計算的發展現狀,發現很多之前遇到的專業問題,其實早已被雲廠商解決了。隨着雲技術架構的完善,很多企業面對的基礎架構問題在雲上已經早已不是問題。

同時,現在很多新技術都是在雲上演進出來的,已經很少有跟雲不相關的技術了,所以,雲必然是未來的趨勢。2017 年,我們決定將整個系統遷移上雲,將我們更寶貴的精力專注在業務和業務架構上。

於是,我們的整個技術架構重心開始隨之改變。之前,我們做電商面對的是大流量,高併發,需要花費很大精力建設技術平臺,但是當我們的業務發展起來後,上到雲上了,我們逐步將精力轉向產品和運營團隊,加大我們對線下生產環節的支持,打磨我們的產品和運營能力,這纔是我們公司的核心競爭力。

這時,技術團隊的職責就變成充分利用雲計算,爲業務提供更多的可能性。

在當前的技術高速發展背景下,在探索新技術和新業務過程中,技術人員的優勢就體現出來了。因爲技術人員對新技術有一定的敏感度,他們會在第一時間接觸和體驗到最新的技術,從而聯想到很多技術層面的解決方案。但是對於沒有技術背景的人員,當他們不瞭解技術時,就只會想着產品功能和運營的需求,不會想到用什麼樣的端到端的技術解決方案。我相信,未來做技術的同學一定會有更大的發展空間。

##順勢而爲

最後,我總結一下蘑菇街的整個發展過程。我們從最初的單體架構,到後來的分佈式架構,最後基於公有云的基礎架構,整體遷移上雲。在這個過程中,你會發現我們做的很多事情是立足於我們當下所遇到的問題,立足於實際場景,踏踏實實解決每一個問題,結合業界趨勢找到最佳解決方案,四個字總結——順勢而爲。

感謝大家的聆聽,謝謝。


TGO鯤鵬會,是極客邦科技旗下高端技術人聚集和交流的組織,旨在組建全球最具影響力的科技領導者社交網絡,線上線下相結合,爲會員提供專享服務。目前,TGO鯤鵬會已在北京、上海、杭州、廣州、深圳、成都、硅谷、臺灣、南京、廈門、武漢、蘇州十二個城市設立分會。現在全球擁有在冊會員 800+ 名,60% 爲 CTO、技術 VP、技術合夥人。

會員覆蓋了 BATJ 等互聯網巨頭公司技術領導者,同時,阿里巴巴王堅博士、同程藝龍技術委員會主任張海龍、蘇寧易購 IT 總部執行副總裁喬新亮已經受邀,成爲 TGO 鯤鵬會榮譽導師。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章