開發與維運

數據中臺的前世今生

就像20年前的虛擬化,5年前的容器化,這兩年的中臺化似乎也是勢不可擋。但凡跟互聯網沾邊的行業,金融、零售、通訊都開始規劃各自的中臺化戰略。拋開行業屬性比較強的業務中臺,我們今天就單獨來講講數據中臺的發展過程。
說到中臺,就不得不提一家公司:芬蘭的遊戲廠商Supercell。2015年年中,馬雲帶領阿里巴巴集團高管,拜訪了位於芬蘭赫爾辛基的移動遊戲公司Supercell。這家成立於2010年,僅憑政府借貸的30萬歐元起家,從芬蘭30平米小隔間走出來的遊戲公司在短短4年時間裡憑藉《海島奇兵》《部落衝突》《卡通農場》這三款遊戲獲得了17億美元的收入,因此驚動了馬雲。
Supercell首先帶給馬雲的是組織的變革。Supercell將組織按產品線分割,而非傳統的職能分割,管理以自底向上的方式,其創始人埃卡·潘納寧在接受採訪時就表示希望成為全球最“弱”的CEO,所有決定由遊戲團隊來做,畢竟研發者才是最接近玩家的,他們比任何人都更清楚玩家的需求。扁平化的管理也使得開發流程更加高效,敏捷的不僅是開發團隊,還包括整個組織。由此阿里開始了根據產品進行事業群編制
1.png

    解決了組織架構,為滿足企業在不同時期所面臨的外部併發,技術架構也必須是彈性擴展的,為此Supercell在成立第二年(2011年)就完成了應用的微服務化與數據庫層的切片。甚至來說Supercell的微服務更輕量級,所有的遊戲都複用一套網關代理、主頁模塊、匹配模塊和戰鬥模塊。整個組織使用一套高可用的組件庫,一種開發語言,一個團隊即One Repo,One Language,One Team。這**比阿里的三One概念早了整整八年**。

2.png
說到這裡,大家多少可以看出一些端倪:阿里的組織和技術沿革很大程度上參照了這家公司的歷史,那這家公司又是怎麼發展起來,並且發展到什麼程度了呢?
最早的時候(2010年),Supercell的遊戲很單一,數據量也不大,聯機系統可以滿足一切的查詢/報表請求,因此對於數據匯聚集中分析的需求並不大,處在數據庫階段
2020-07-26_1-14-57.jpg
隨著數據量的增加,OLTP無法同時支持事務處理和資料調取的請求,OLAP的業務開始多了起來,尤其是需要對用戶的一些行為做分析,這些行為事件發生在客戶端也可能在服務端,需要有一個統一的整合平臺即數倉進行統一歸集分析,Supercell選擇了AWS的S3做為存儲,並通過QlikView做界面展示
2020-07-26_1-31-14.jpg
由此便引申出了中臺能力發展的第二個階段,數據倉庫階段,這一階段為日後的數據中臺建設提供了全域數據,即生產資料
2020-07-26_1-27-39.jpg
隨著遊戲種類以及實時計算需求的增加,2013年下半年,Supercell終於考慮添加流式管道(Streaming Pipeline)作為數據緩衝層,由於之前和AWS的良好合作,這次的流管產品多數團隊也是投票給了Kinesis,相對於Kafka,它的運維更加簡單,體驗更好(天生與AWS管理界面集成),後續可以對接各種事件消費者,不論是實時查詢面板,第三方集成,實時分析,還是通過統一的KV日誌格式集成入庫S3。
3.png
4.png
這一階段,倉庫進化為數據湖/大數據平臺,具備了計算能力和流式數據的處理能力,可以提供算法輸出,從而更好地服務前端應用。
2020-07-26_2-01-35.jpg
同年在數據湖設計上,Supercell使用Azkaban批量工作流任務調度器將CSV數據加載到AWS的Vertica數倉中,數據科學家通過開發接口對歷史數據進行分析,形成一些數據服務,對內或對外輸出。
5.png

這個架構在之後幾年裡遇到了新的瓶頸。首先Vertica集群的負載達到的峰值,第二在ETL的時候查詢會變得緩慢,第三數倉的擴容花費巨大,第四存儲與計算耦合緊密,第五再大的寬表數據庫都會有列的極限。注意到這些問題之後,Supercell致力於:
  • 限制Vertica的數據存儲量;
  • 將存儲與計算資源切割;
  • 將ETL流程與查詢流程切割;
  • 維護單一來源的置信數據;
  • 利用雲的便利性優化資源使用。

        到2018年,公司決定將Amazon S3作為單一置信來源,以Parquet列表的形式存放數據,將Amazon EMR用作ETL轉存目標,原來的Vertica只用來存放計算結果(例如賬號、統計數據和KPI)而不是原始數據。

    6.jpg

    這樣一來,Azkaban還是控制ETL流程,只是這次加載到Amazon EMR託管集群平臺,然後以多張Parquet列表的形式存放到Amazon S3中,因為公司已經對數據行數做了切片,使用列表存儲更能提升存儲效率。

    分佈式的S3作為唯一置信源,消費使用與列表更加契合的Athena作為查詢工具,數據科學家可以到計算平臺EMR中查看實時數據並做分析,包裝成實時數據產品,也可以通過界面工具到置信源S3或結果數倉Vertica中查看OLAP大數據並進行建模分析,生成數據產品。

7.png
在2018年完成改造之後,由於EMR的延展性,可以瞬間擴展出大量的數據集就很好地解決了列寬的問題,並且有效地將存儲與計算分離(EMR負責計算,S3負責存儲)。在ETL時可以通過計劃任務擴建一個集群跑ETL,跑完之後釋放資源。而且EMR的環境對於數據科學團隊來說更加友好。
2020-07-26_2-23-33.jpg
至此,數據中臺的生產要素已全部構建完成,包括了數據(生產資料)、算法(生產工具)和算力(生產者),形成了人工驅動,自動學習的服務模式,支持絕大多數業務的同時實現了企業自身數據價值的最大化。

展望未來,數據分析能力的強大並不能解決業務對於實時性的要求,而從各大雲廠商紛紛致力於自身消息隊列產品的開發來看,距離純事件驅動的分佈式消息中臺不會太遠,傳統的分佈式HDFS存儲以後只能作為消息中臺的歸檔系統,而像ETL,結構化數據庫會漸漸淡出歷史舞臺,至少在互聯網,大數據類的行業會是這樣。

Leave a Reply

Your email address will not be published. Required fields are marked *