加速開發人員放棄數據中心
客座博客,R泰勒突堤,Scribd平台工程主管Beplay体育安卓版本
人不容易興奮數據平台。Beplay体育安卓版本通常認為就像道路基礎設施:沒有人認為如何重要的是為他們從A到B點,除非是非常糟糕的。想象我驚訝的是當我開始聽到用戶:“哇這是驚人的,”或“我不能等待我的整個團隊采用”,或“我們對此感到非常興奮!“熱情並不會降低遷移項目挑戰,但它確實使它更愉快。
在Scribd,我們有“常規數據平台”一段時間:Hadoop的HDFS和混合的蜂Beplay体育安卓版本巢。隨著時間的推移,業務需求已經改變,我們現在需要更多的機器學習,更多的實時數據處理,和更多的支持團隊合作提供新的數據產品;我們需要更好的東西比傳統數據平台”。Beplay体育安卓版本“我們的新數據平台是氣流,磚,Beplay体育安卓版本三角洲湖,和AWS膠目錄,一個強大的工具套件已經極大地提高了我們的開發速度和協作。從“舊”過渡到“新”穿插著成功和失誤,我們re-platform和擺脫複雜性和技術債務。Beplay体育安卓版本
遺留數據平台是我們傳統的不僅僅是Beplay体育安卓版本技術的部署,也部署在一個固定的數據中心基礎設施。一組靜態的機器坐在一個數據中心快速生產高峰期間通過數據批處理工作負載,然後當閑置浪費金錢和精力。公司和我們的需求增長,數據平台的“峰值”變得越來越明顯,對於開發人員和更多的痛苦。Beplay体育安卓版本有些人會觸發查詢或工作去吃午飯之前,或在一天結束的時候,希望他們會得到他們的回歸結果。一個特別嚴重的反模式後不久我發現我到達公司:一些機器學習工程師會準備他們的數據集,轉儲成個人AWS S3 bucket,發射GPU-capable實例,訓練他們的模型,然後提交報銷請求經理月底。
如果開發人員恐怖故事還不夠,操作上都更不靠譜!許多傳統的數據平台技術很難結合自動化工具像廚師Beplay体育安卓版本,等等,因此我們的遺留數據平台遭受缺乏適當的管理生產的其他基礎設施。每次我們增加了更多的機器環境,這個過程需要一到兩天根據請求。因此,我們隻會在我們需要的時候添加節點,或者當需要動力和係統故障。
我們傳統數據平台是在浪費兩個開發人員的時間,Beplay体育安卓版本基礎設施工程師的時間。我不寒而栗思考我們可以做什麼如果那些有才華的人而不是從事於先進的項目我們的業務目標。
我們的數據基礎設施的現代化:評估選擇
到2019年中期Scribd已聘請了一個“核心平台”團隊,特許建造出一個“實時數Beplay体育安卓版本據平台”,和一個完全新的機器學習的數據科學家和工程師團隊。各方一致同意投資遺留數據平台是我們得“到雲上。Beplay体育安卓版本”再加上公司計劃遷移到AWS,我們列出的潛在選項是相對較短。我們需要一個數據平台,在AWS工作Beplay体育安卓版本,依賴於S3,將我們的查詢和火花工作,可以為開發人員提供了一些表麵上的自助服務,甚至可以使新的機器學習工作我們沒有懷孕的。
我看著的選項可以放置分為兩類:
- “看起來就像一個傳統的數據平台,但使用S3,和雲!Beplay体育安卓版本”(不是很引人注目)。
- 磚
因為我們知道我們要涉及到AWS S3存儲選項一些形式或方式,我們已經開始了我們的大量的數據倉庫和工作負載與S3進行互操作。S3數據平台的使用Beplay体育安卓版本,是一種很好的工具,但並不是像它的名字一樣簡單。S3的最終一致的性質可能會導致許多問題鋪文件通過類似於表的訪問接口(例如蜂巢)。其中的一些問題可以在工作S3Guard但是額外的建築複雜性使我們有點疲憊。在這個時候我們很幸運,已經注意到的開源三角洲湖磚。三角洲湖吹我們的初步評估;我們發現我們的存儲層。
三角洲湖實際上最終通往磚,這不是我們最初的計算平台評估的一部分。Beplay体育安卓版本當我們挖成磚越來越多我們發現兩個殺手的特點:
火花工作負載遷移到雲計算:計算成本和收益
在AWS,時間非常直接等於金錢。你越早可以在AWS關閉機器,花的錢也就越少。在我們的銷售團隊在磚的幫助下,我能夠提出一個成本模型現有火花工作負載紛紛如果我們直接到AWS沒有顯著變化。他們聲稱一個優化最傳統的30 - 50%引發工作負載。“我說30%是保守,“他們提到。出於好奇,我重構成本模型考慮到磚的價格和潛在的火花工作優化。調整後的數字我發現在優化率17%,磚AWS基礎設施成本會降低很多,它將支付磚平台本身的成本。Beplay体育安卓版本
我們最初的評價後,我已經出售的特性和開發速度改進磚將提供。當我跑的數字在我的模型中,我得知我買不起不采用磚!
在生產中
從我們的數據中心的數據平台數據磚是漫長的,我們仍然旅行。Beplay体育安卓版本截止到今天,我們整個數據倉庫回填到三角洲湖,遷移方便解決惡劣小文件的問題我們在HDFS。我們有一些自定義的工具,從數據中心保持數據同步到三角洲湖當我們開始移動我們的一些重量級的批處理任務。盡管提前批處理任務遷移的漫長道路,我們已經有新項目直接部署在磚:
- 特設內部用戶查詢,一旦由色相和蜂巢,被強大的集體所取代三角洲緩存啟用集群。那些之前花了很多時間在色調已經興奮地與同行合作通過共享筆記本。
- 新火花流/三角洲湖項目已經在生產。以前的工作負載不可能的已經開發和部署。對於一些數據流流入卡夫卡,我們有火花部署流媒體應用程序將數據直接進入三角洲湖,在幾分鍾內工作和用戶查詢數據的創建。這些工作負載,用戶之前必須等待24小時批周期完成,但是現在他們得到新鮮的生產數據從三角洲湖內2 - 3分鍾。
許多見過這個動作時,他們的想法立刻變成了“什麼數據我可以改變流來獲得更多的實時洞察?“突然有多個項目團隊路線圖包括“生產數據流X”或“過程數據流從Y”。
對我來說,成功的團隊提供數據基礎設施和工具是當您的用戶都是興奮地回答他們的問題使用的基礎設施,當他們開始設想完全新的問題解決與平台。Beplay体育安卓版本我隻想說,我已經滿意我們的結果!
一切並不像我想那麼美好,但是,我們的行政政策仍落後於繁榮不同的團隊采用磚。我們給了開發者奇妙的工具來解決他們的問題,但我們還沒有政策來防止用戶推出超大或高價集群。這樣做存在的功能平台,但當考慮一些EC2的成本浪費人們的時間相比,我們有錯的盡Beplay体育安卓版本快集群在人民的手中。
下次做得更好
平台再Beplay体育安卓版本造一個巨大的數據基礎設施並不容易。到目前為止,我們最大的難點是自己造成的。我們有一個重要的投資在蜂巢和Hive-based查詢,與各式各樣的自定義udf,所有需要遷移到火花,火花SQL。我們寫了一些工具來幫助我們自動轉換蜂巢火花SQL查詢和模板,它管理自動化轉換~ 80%的蜂巢工作負載。另外20%我們必須手動轉換,這是令人沮喪的工作。
遷移過程中也發現了更多比我自豪地承認的技術債務。無數火花工作量仍然依靠火花1(!),工作沒有使用蜂巢的表界麵,而是直接說HDFS(!),和測試大批處理作業的原始開發者忽視編寫任何測試(!)。
就我個人而言,我期待著那一天第一個新員工加入那些從來沒有看到遺留數據平台。Beplay体育安卓版本他們會高興地知道曾經有一個時候,你必須查詢片段複製並粘貼到聊天,等到明天最新數據,或者浪費時間空轉而你工作完成。
聽到r·泰勒突堤談論Scribd的過渡到一個流媒體雲數據平台即將舉行的會議Beplay体育安卓版本火花+人工智能峰會。免費注冊在這裏。
Scribd也是招聘人才遠程工程師幫助改變世界的方式讀,學習更多tech.scribd.com