最近大多數大數據應用都部署在裸設備上,這意味著Hadoop大多數部署在非虛擬化服務器上。隨著容器和微服務對應用開發圈產生影響,這種情況在發生改變。
容器和微服務都把整個應用程序的代碼細分成更小粒度的片段。這樣不僅簡化了開發,而且更容易測試,這也是設計更靈活應用程序部署方案和代碼復用的關鍵。
早期的時候,這種技術就應用于大數據領域,但是現在看起來在數據流處理、微服務這類領域應用也很有前途。歐洲某頂級電子商務公司的一位技術經理認為,微服務方法簡化了開發工作,增強了代碼復用能力。
Otto GmbH公司是一家多渠道零售商(產品包括高級鑄件以及熔鑄設備和半成品工業設備),總部位于德國漢堡。Rupert Steffner是該公司商業智能系統首席平臺架構師,他說:“使用微服務方法是非常經濟的做法。對于有些類型的應用,忽略微服務的方式是不明智的。你會一遍又一遍地開發相同的功能。”
Steffner談到的這種類型應用是許多人工智能機器人在公司在線零售網站上運行著各種實時分析任務。Otto使用了微服務整合Docker容器和流處理技術來增強這些AI機器人的功能。
容器和微服務云計算是推動Hadoop、Spark和其它大數據技術走向虛擬化的主要力量。不過仍然有很多基礎設施在云之外構建,各公司都在努力用技術緩解這種演變。
Tom Phelan是BluData軟件公司聯合創始人和首席架構師,該公司設計的平臺可以自動配置Hadoop或Spark集群。他說:“Hadoop大多數運行在裸設備上,不過它也可以運行在虛擬機上。例如,Amazon云和Azure云都使用了OpenStack。現在Hadoop要轉向容器了。”
他說:“以前認為Hadoop集群部署在裸設備上性能更優,但現在看來不一定了。”容器需要變得更成熟,而且Hadoop本身設計并不是針對微服務風格的架構。BlueData公司最近更新軟件提升了對容器的支持,推出了自動Kerberos配置Hadoop集群和Linux特權訪問管理工具。
Hadoop發行版供應商MapR技術公司一位經理表示,敏捷性和流處理也是微服務獲益的驅動力。Jack Norris是MapR公司數據和應用高級副總裁,他說客戶構建機器人需要有快速適應數據的能力并具備機器學習模型。
他表示,在“事件驅動”架構的應用程序中這一點尤為明顯。這種架構越來越多的包含了數據流處理組件。
Norris說,Hadoop和Spark應用流變得越來越復雜,他們變得更難升級了。但是,他認為微服務只是關注數據管道中的事件,這會給這種開發帶來更多靈活性。這是與原始Hadoop開發風格相比最根本的變化。
Norris說:“我們看到了開放更寬泛應用程序集的需求。”與此同時,他承諾MapR公司將繼續支持現有整塊應用程序的風格。
上個月,MapR公司對于大數據應用微服務做了深入實踐,為應用程序版本控制提供微服務專用卷,為機器學習模型AB測試設計專用微服務。另外,Norris表示,他們設計了新的參考架構用來指導開發人員利用微服務聚合流數據和實時分析應用。
AI機器人監視“只逛不買”的購物車隨著大數據處理任務變得更復雜,加上相關組件都支持精確的數據流,微系統方法的應用越來越廣泛了。Otto公司的Steffner認為,微系統提供了典型的“各個擊破”手段來滿足架構需求。
上個月在紐約舉辦的Strata+Hadoop 2016年世界大會上,Steffner表示,Otto公司數據架構中的每個AI機器人都處理特定任務。例如,一個AI機器人查找欺詐交易;另一個針對實時廣告位分析建模;還有一個檢查空的在線購物車,并對未購買任何商品就打算離開的客戶推送最后一輪促銷產品。
該公司通過基于Docker的微系統架構實現以上功能,該架構是2015年四月上線的,那時候該公司已經部署傳統大數據平臺兩年了,不過并沒有滿足全部需求。
Docker容器也非常適合機器人軟件。Otto公司在后臺安裝了混合開源流處理引擎,包括Storm、Spark流處理、Flink和Ignite。不過Steffner說,Ignite是內存數據組織技術,最初是由GridGain系統公司開發的,用來處理當前環境中的批量實時處理工作。