Categories
程式開發

大數據公司LiveRamp上雲記(一):為什麼選擇GCP?


LiveRamp是一家大數據公司。

很多公司擁有大數據。每天早餐之前,健壯的日誌框架就已經生成了PB級別的日誌,並以防萬一將這些數據長期保存在了亞馬遜的S3上。

還有一些公司會使用他們自己的大數據。他們擁有自己的產品,他們會通過Hadoop和Spark來做一些機器學習,從而生成針對客戶的產品推薦。

但是像LiveRamp這樣的大數據公司就很少了。我們從客戶那裡賺取的每一分錢都來自於我們的Hadoop處理流水線。 LiveRamp的產品線很廣,但這些產品都經由了相同的生產流程,即提取、轉換、加載、加入Hadoop處理管道。如果說今天我們關閉了Hadoop基礎設施,那公司也就可以直接關門停業了。

到去年為止,LiveRamp所有的大數據計算都是在本地數據中心完成的。我們的數據中心部署了一個超過2500節點的Cloudera Hadoop集群。而從今年開始,我們逐步把它們遷移到了GCP(谷歌云計算平台)。

Sasha Kipervarg,Patrick Raymond和我在Google Next大會上展示了這次遷移之旅,包括我們從中學到的經驗教訓,以及接下來的計劃等。在本系列博客文章中,我將從技術角度更深入地探討這次遷移,重點有:

  • 在2018年及其以前,我們是如何在本地運營LiveRamp大數據基礎設施的?
  • 我們為什麼要決定遷移?
  • 我們希望LiveRamp基礎設施在GCP上是什麼樣子?
  • 我們是如何實現的?
  • 我們下一步該如何發展?

儘管這是一項巨大的工程,但我們仍然對其感到興奮,因為它將改變LiveRamp的開發體驗,讓我們可以用前所未有的速度將可擴展的、可靠的產品推向市場。

LiveRamp一覽

大數據公司LiveRamp上雲記(一):為什麼選擇GCP? 1

LiveRamp有很多產品,但它們都是本著匹配客戶CRM(客戶關係管理)以及匹配數據集的原則在不同生態系統之間轉移數據。我們通過批文件傳輸管道和實時的像素服務器這兩種方式將這些轉換後的數據傳輸到數字廣告生態系統中去。

Hadoop生態系統尤其適合執行大規模數據連接,這也是我們所使用的。我們的絕大多數硬件都用在了Cloudera Hadoop集群。本地集群的最大規模可達到為:

  • 2500個工作節點
  • 90000個CPU
  • 300TB的內存
  • 100PB的存儲

我們的基礎設施非常繁忙,每天有超過10萬個YARN應用在運行,讀寫量超過13個PB/天,以及超過80%的系統利用率:

大數據公司LiveRamp上雲記(一):為什麼選擇GCP? 2

任何擁有150名工程師並且在不斷增長的公司都會面對大量的服務以及與之對應的支持基礎設施。截至2018年,我們使用了500多個由Chef統一配置管理的VMWare虛擬機(一個相對小一些的基於CoreOS Tectonic版本的Kubernetes集群。我們的實時鍵值服務平台則由內部的一個開源項目實現。

我們需要每天從合作夥伴處獲取文件和日誌,然後將處理後的文件送還,平均數據量約為8TB每天,像素服務器的平均訪問量也達到了20萬QPS。

儘管我們在AWS運行了一些與國際團隊和像素服務器相關的服務,但如此大的工作任務仍然用盡了本地數據中心的硬件資源。

上雲

雖然我們對自己的基礎設施有諸多不滿,但是本著“正常工作”優先的原則,我們一直沒有對它進行改變。但到了2017年中旬,我們開始意識到本地數據中心的規模已經無法滿足我們的國際化需求。於是我們具備了所有遷移到雲的一般動機:

  • 規模擴展:我們需要能夠更快地擴展我們的基礎設施,而不再受限於數據中心物理設備的搭建,例如2個月的硬件購買時間以及更多的空間放置需求等。
  • 災難恢復:我們並不滿意自己的災難恢復系統。我們希望在數小時內就可以從災難性的停機狀態中恢復過來,而不是花費幾個星期從冷備份開始恢復。
  • 招聘:工程師們希望能夠接觸到更重要和實用的技能,而在2019年,這就是著雲計算。
  • 開發速度:假如我們有30%的開發人員可以從基礎設施維護中解放出來,這意味著他們可以重新轉向產品開發,從而將產品推向市場的速度提高30%。

因此,到2017年底,我們開始認真地評估雲服務供應商,並開始把LiveRamp想像成一家云原生技術公司。

為什麼選擇GCP?

大數據公司LiveRamp上雲記(一):為什麼選擇GCP? 3

我們喜歡GCP,但我們知道它並不是默認選項。我們之所以選擇GCP主要有兩個驅動因素:

  • 技術

技術評估並不適合放在本篇文章中,但我要強調的一點是GKE(谷歌Kubernetes引擎)是一個非常關鍵的因素。本次遷移有一個很明確的方向,那就是要把所有的應用程序和服務遷移到Kubernetes平台。可以粗略地講,GKE就是Kubernetes領域事實上的領頭羊。

雖然我們可以選擇任意一家云供應商並最終完成遷移,但一個很大的區別就是雲供應商背後的技術支持人員。 GCP把我們同那些想回答我們問題並提供解決方案的工程師很好地聯繫了起來。

我們對GCP的技術支持合約也非常滿意。我們總是能夠與專業工程師及時取得聯繫並迅速得到解決措施。這也給了我們信心,通過與GCP合作,我們相信可以解決任何問題,這一點都現在也沒有改變。

在下一篇文章中,我將討論一些大數據基礎設施遷移到GCP的細節,哪些方面可以直接轉換到GCP,而哪些方面又需要重新設計。敬請期待!

原文鏈接:

https://liveramp.com/engineering/migrating-a-big-data-environment-to-the-cloud-part-1/