日均處理請求超600億次的雲時代架構設計思路

IT基礎設施(Infrastructure)的變遷總會推動架構演進,使得架構能夠充分發揮基礎設施的特點,這對架構師也提出了新的挑戰。作爲擁有超過15年軟件開發經驗,並有9年擔任世界級IT公司軟件架構師/首席軟件架構師的蔡超,親身經歷了數十年來的企業架構演進歷程。在ArchSummit 全球架構師峯會(北京站)2019 大會召開之際,InfoQ有幸對蔡超進行了獨家採訪,瞭解雲原生趨勢下的技術架構特點。

雲計算時代的架構師

當整個雲計算行業一定程度走過蹣跚探索時期之後,開創者們積累了越來越多的經驗,對市場反饋和客戶需求有了更清晰的瞭解與洞察,業務模式與商業運營也駕輕就熟起來——雲計算行業終於進入高速發展時代,技術架構也隨着雲計算基礎設施的演進而出現了變化,這對架構師也提出了新的要求。

雲計算基礎設施的優勢包括按需獲取,按使用付費,快速彈性伸縮,資源的維護託管等。架構師只有充分關注和發揮這些優勢,才能構建適合於雲時代的好架構。

在過去15餘年的軟件開發生涯中,蔡超認爲對他個人影響最爲深遠的就是面向對象的思想以及雲計算技術,這些技術深刻改變了開發者軟件設計和構建的方法,推動了更大規模軟件的出現。蔡超表示,合格的架構師首先應該是優秀的程序員,最重要的技能當然是具備良好的編程基本功及程序設計基礎知識。

在雲計算時代,蔡超認爲,架構師必須深入瞭解雲計算平臺的特點,不僅僅是技術特點,甚至還要包括收費模式,這些都會影響架構設計。但是,多數架構師都是從非雲時代成長起來的,甚至今天那些經典的架構設計相關的書籍都編寫於雲時代之前。所以,很多設計理念需要持續更新,雲原生的理念就給了架構師很多啓迪和指導。

架構演進歷程

回顧軟件架構的發展歷程,IT基礎設施(Infrastructure)的變遷總是會推動架構演進。在大型機時代,架構就是與之匹配的單體架構,隨着PC及局域網時代的到來,客戶服務器架構成爲主流。後來,Internet的發展推動了WEB Service架構的發展,也帶動了SOA/EDI等基於WEB Service/SOAP的架構思想。現今,伴隨互聯網應用的規模日益龐大及雲計算平臺的廣泛應用,能夠適應大規模系統快速演化及發揮雲計算優勢的微服務架構日益流行。

到了2018年,雲原生技術理念開始逐漸萌芽,這是因爲此時 Kubernetes 以及容器都成爲了雲廠商的既定標準,以“雲”爲核心的軟件研發思想逐步形成。雲原生其實是一套指導進行軟件架構設計的思想,按照這種思想設計出來的軟件天然就“生在雲上,長在雲上”,能夠最大化發揮雲的能力,使得開發的軟件和“雲”能夠天然集成在一起,發揮“雲”的最大價值。

在蔡超看來,雲計算與雲原生看起來很相似,而實際上有很大的不同。

雲計算通常情況下就是大家所指的“雲”,是一種按需獲取的基礎設施,比如虛機、存儲、數據庫等。大家非常熟悉的雲計算平臺提供者包括亞馬遜AWS、Google Cloud、阿里雲、微軟AZure等,開發者可以按需獲取基礎設施,並按實際使用量付費。

然而,雲原生是一種充分利用雲計算模式的優點來構建和運行應用的理念和方法。2018年,CNCF對雲原生技術的定義是“雲原生技術有利於各組織在公有云、私有云和混合雲等新型動態環境中,構建和運行可彈性擴展的應用。雲原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式API。這些技術能夠構建容錯性好、易於管理和便於觀察的鬆耦合系統。結合可靠的自動化手段,雲原生技術使工程師能夠輕鬆對系統作出頻繁和可預測的重大變更。”

由此可見,雲原生與雲計算技術不同的不是基礎設施,而是理念和方法。雲原生的理念和方法重點在於指導開發團隊在雲計算環境中高效構建大規模軟件。蔡超表示,在這種理念的衝擊下,與架構設計最爲相關的當然是微服務。正如前面所提到的“雲原生”的一個核心目的就是要讓大規模系統的構建更加高效,而通過微服務架構可以有效解決大團隊開發大規模軟件開發中的多種效率問題,並且微服務架構也可以充分發揮雲平臺的優勢。

至於哪種架構模型是目前的主流,蔡超沒有做過精確的統計和分析。不過,目前不少系統,尤其是雲下系統仍然採用的是多層單體架構,這種架構如果遷移到雲端是很難發揮雲計算的基礎設施優勢。

Mobvista的架構實踐

如今,蔡超所在的Mobvista公司完全基於雲計算技術構建了數字移動營銷平臺,日均廣告請求次數超過600億次,峯值時接近1000億次,整個開發團隊大約140人,目前主要的程序化業務平臺始於2015年,其間業務範圍不斷拓展和完善,平臺也經歷了多次演化。

對於從開始就選擇完全基於雲技術構建,蔡超表示這是考慮到公司自創始起就定位於全球市場,追求快速創新,同時考慮到移動廣告業務流量的快速增長,所以一開始就選擇將系統完全構建在雲端。

要不要選多雲架構?

關於是否要選擇基於多雲構建架構,蔡超也有過自己的思考。他認爲,對於可移植性較強的架構,多雲模式對系統的可用性提高是有幫助,也可以避免vendor king,可以利用不同雲在不同區域的價格及網絡通信服務上的優勢。

當然,從另一方面講,多雲也會引入架構,運維等的複雜性。這些也是Mobvista正在構建的中臺技術的重點,屏蔽多雲的複雜性,簡化可移植性系統的開發,並且提供一致的運維和持續集成及發佈平臺,而容器化就可以大大提高系統在多雲間的便攜性。

雲計算成本問題突出

隨着業務的不斷拓展和流量的飛速增長,雲計算的成本問題日益突出,Mobvista開始對系統架構進行全面重構。重構的目標,一是爲了更高效的利用雲基礎設施,從而降低成本;二是提高團隊的開發效率。其中,架構重構非常重要的一部分就是微服務化。當時,公司的應用由一個個大型的單體系統構成,當需要進行擴展時,就是不斷克隆整個單體系統,比較粗放。通過微服務改造,可以定位瓶頸所涉及的微服務,對相關微服務進行擴展,從而實現更細粒度的伸縮,有效發揮了雲計算的按需獲取,按使用付費的特點。

中臺戰略

對於大規模軟件架構設計的其中一個常見難點就是:如何確保系統在未來能夠持續快速,敏捷的支持業務的變化。在蔡超看來,雲原生最佳實踐中的微服務、容器化、DevOps、持續發佈等不僅對架構設計有幫助,甚至對開發過程及團隊組織都有很大的指導作用。

爲了更好支持公司創新業務的發展,Mobvista已經開始實施中臺戰略。其實這也是和雲原生理念中提到的 self-service agile infrastructure 相關。蔡超提到,通過公共平臺簡化微服務的開發,提高開發效率,資源使用率及加快持續發佈的速度。同時,通過與雲廠商合作輸出雲端中臺技術解決方案,SpotMax就是在Mobvista利用彈性資源實現成本節省的成功經驗的基礎上推出的解決方案。

One More Things…

在過去多年的從業生涯中,蔡超先後感受了國內外多家公司不同的企業文化,這其中對他影響最爲深遠的就是亞馬遜。亞馬遜的領導力準則已經成爲蔡超行事的準則之一。他認爲,亞馬遜的DayOne精神對創業者而言是要把每一天當作事業開始的第一天,充滿迷茫和壓力,但是充滿創造力和顛覆思想。對於我而言,DayOne就是要把每一天都看做加入公司的第一天,充滿好奇,充滿激情,保持謙虛和敬畏,努力探索和學習。同時,亞馬遜的軟件開發模式及思想已經成爲業界廣泛認可的最佳實踐,比如two pizza team,DevOPS, Microservice等。

嘉賓介紹:

蔡超 ,Mobvista 技術VP兼首席架構師。擁有超過15 年的軟件開發經驗,其中9年任世界級 IT 公司軟件架構師/首席軟件架構師。2017年加入Mobvista,任公司技術副總裁及首席架構師,領導公司的數字移動營銷平臺的開發,該平臺完全建立於雲計算技術之上每天處理來自全球不同region的超過600億次的請求。

在 12 月 6-7 日北京 ArchSummit 全球架構師峯會上,蔡老師會分享《“雲原生”趨勢下的架構演進》話題,具體分享大規模軟件開發的挑戰、適合雲計算的架構及架構模式、架構演進的趨勢與架構師的新思考內容。點擊ArchSummit 全球架構師峯會(北京站)2019 大會官網查看會議日程。感興趣來參會的可以聯繫票務經理 灰灰 15600537884

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