1. 程式人生 > >解決現代大資料服務部署的最佳方案: Mesosphere DC/OS

解決現代大資料服務部署的最佳方案: Mesosphere DC/OS

MesosCon北京將於6月20日到22日在北京國家會議中心舉行。這是Linux基金會主辦的一年一度的Mesos盛會。報名詳情請見閱讀原文,購票記得使用7折優惠碼 MCA1730。如今,絕大部分的業務邏輯程式都是資料驅動的。這些程式必須能夠實時地訪問大資料,並基於大資料來處理客戶的請求。和以前不同,大部分的現代企業都在向分散式和微服務架構遷移。這些微服務通常包括訊息佇列,分散式資料庫,大資料分析引擎等等。容器技術在這其中也扮演了很重要的角色。然而我們發現,構建並維護能夠支撐這些微服務的資料服務其實是一件極其複雜很耗時的工作。這是為什麼呢?

1. 部署一個數據服務耗時耗力

首先,運維人員在安裝像Kafka或者Cassandra這類的資料服務時,需要掌握一些特殊的知識;即使對於大牛和專家來說,部署這類資料服務也是非常耗時間的。舉個例子,最早的時候,AirBnB的運維人員用了差不多幾個月的時間才部署Kafka成功。其間碰到了無數的問題,踩了無數的坑。還有一點就是,有一些沒有架構好的資料服務,可能只有少數大牛知道如何正確的維護這些系統,可能你都找不到填坑的方法。

在過去的5到10年間,湧現出了很多資料儲存和分析引擎。它們之中很多都是開源的。因為維護和部署這些系統相當複雜,工程師和資料專家沒法很方便地去嘗試這些新的資料技術和框架。這也是為什麼簡化部署資料服務能夠大大提高開發者效率的原因。

儲存

儲存和分析引擎的井噴

2. 人工運維資料服務非常容易出錯

運維資料服務也是主要的挑戰之一;通常,運維人員需要人工地處理升級,更新,錯誤後回滾,健康監控,儲存管理等工作。這些人工處理的工作都是非常容易出簍子的。企業通常需要化很多人力在運維上,間接導致了在其他創新領域上投入的減少。

通常運維人員需要不斷的更新軟體使得開發人員能夠用上新的特性,修復重要的問題。同時,新的版本也通常可以降低運維的開銷。軟體更新通常是一個非常耗時的工作。運維人員要麼人工進行更新,或者需要編寫一些指令碼來進行自動化更新。同時,運維人員還需要保證在上生產環境之前,更新和回滾都在測試環境下被完整的測試過。

3. 低效的基礎設施利用率

還有一個很大的挑戰是保證資料服務能有一個很好的資源利用率。資料中心一般的平均利用率在6%到12%之間。這個數字在2006年到2012年之間基本沒有什麼變化。究其主要原因,是大部分公司都希望能夠保證在流量頂峰時候服務的質量。

Spark

傳統的靜態分割,非常的低效

通過虛擬機器來增加資源利用率的方法在分散式系統裡面並不適用。運維人員通常建立單獨的Spark, Kafka, Cassandra等叢集。這樣做的原因是因為這些系統是分散式系統,它們有著自己彈性伸縮邏輯,所以運維人員會在不同的叢集裡面執行這些系統,從而來保證沒有資源上的衝突。

舉個例子來說,Spark會希望拿到儘可能多的資源來完成一個任務。Kafka可能需要能夠支援高吞吐量的磁碟資源。Cassandra則需要穩定的磁碟資源來儲存資料。顯而易見,在單獨叢集部署這些服務的後果就是資源的嚴重浪費。如果在叢集層面上使得這些服務能夠共享資源,這樣就可以很好的提高資源利用率。

公有云是出路麼?

很多公司正在往公有云(或者混合雲)遷移資料服務。往公有云遷移主要有以下兩個原因:

  1.  能過立馬獲得公有云平臺所提供的服務,比如很多分析工具和資料庫服務。像AWS和Azure這類的公有云通常會把這些服務做的非常容易安裝和運維。
  2. 公有云資料服務通常支援彈性伸縮和高可用。

在最近的一次調查中,只有不到三分之一的公司在私有云中部署資料流水線,其他的公司都在公有云中部署。 雖然公有云在資料服務上有著明顯的優勢,缺點也非常明顯。主要缺點是可能會被公有云提供商綁架。針對公有云服務開發的應用通常會和公有云提供的API繫結。當應用開發完成後,想要遷移基本沒有可能。

最近有個很好的例子:Snapchat上市前,在它們的公開招股書中提到了一些資料。從中不難發現,Snapchat其實已經被Google公有云綁架了。

在去年5億美金的虧損中,有80%是因為其在Google公有云上的花銷。在招股書中,Snapchat宣稱它們的應用非常針對Google公有云的服務,沒有其他公有云提供商可以提供備選。這樣導致的結果就是,除非Snapchat花很大的力氣去重新構建它們的應用,否則它們永遠地和Google公有云綁定了。

還有很多其他公司在盲目地往公有云裡面跳,導致的被繫結的風險大大的提高。你可能會問,有沒有公有云之外的選擇呢?

Mesosphere DC/OS:

簡化資料服務的部署和運維

Mesosphere致力於簡化現代化彈性分散式軟體的開發. Mesosphere DC/OS是市面上唯一一個在生產環境中被驗證的能夠同時執行容器和資料服務的平臺。 DC/OS 能夠提高很多資料服務的部署速度,並簡化它們的運維。這些資料服務包括資料庫,訊息佇列,大資料分析引擎等等。

DC/OS的核心是Apache Mesos™,一個分散式系統核心。 它擁有一個兩層資源排程機制,使得分散式系統之間能夠更好的分享叢集資源。正因為有了兩層排程機制,使得DC/OS能夠在和其他容器編排系統(Kubernetes,Docker Swarm)的對比中脫穎而出。它簡化了資料服務的部署和運維,並且大幅度提高了資源利用率。

  1.  一鍵部署: DC/OS中,你只需要一個命令,就可以安裝Spark, Cassandra, Kafka, ElasticSearch等資料服務。 DC/OS還極大的簡化了資料服務例項大小的配置和重新配置,以及新增更多的例項。 通過Mesosphere DC/OS, 運維人員可以輕鬆的實現線上伸縮。
  2.  簡化運維: DC/OS極大地節省了運維所需要的時間。 利用DC/OS,你可以輕鬆的進行軟體升級,軟體監控,以及 管理持久卷
  3. 彈性資料平臺: DC/OS能夠在一個叢集裡同時執行多個數據服務,容器應用,以及傳統的應用。這極大地提高了資源利用率。一些Mesos和DC/OS宣稱它們的叢集資源利用率達到了驚人的90%,節省了超過 60%的硬體開銷

資料服務

Mesosphere DC/OS:

部署資料服務最理想的平臺

文章來自微信公眾號:雲端計算開源產業聯盟