孟珍,王學志,謝志敏,胡良霖,陳之端,馬俊才,佟繼周,張艷玲,周園春*
1.中國科學院計算機網絡信息中心,北京 100190
2.中國科學院大學,北京 100049
3.海參軍事海洋環(huán)境建設辦公室,北京 100081
4.中國科學院植物研究所,北京 100093
5.中國科學院微生物研究所,北京 100101
6.中國科學院國家空間科學中心,北京 100190
7.中國煙草總公司鄭州煙草研究院,河南 鄭州 450001
隨著科學大數據技術的發(fā)展,問題導向的數據端分析成為常態(tài)。一方面在專業(yè)科學垂直領域,隨著傳感器布網的增多、采樣指標的擴展和采樣頻率的密集,數據端的數據量級也極具膨脹,數據遷移的時間和空間成本代價增大、存取效率亟待提高[1-2];另一方面科學數據挖掘分析所用的計算資源也隨著數據規(guī)模的擴大越來越多,并且這些數據和資源會隨著分析的不同有彈性的需求[3];再者,領域科學家在進行數據分析處理時,需要多樣的算法模型和工具庫,由此編程語言、算法環(huán)境、適配版本、資源調用等問題也往往是其不得不額外付出精力的多個方面[4-5]。
比如在生命健康領域,有來自國際HapMap項目[6]近十億個驗證的基因型,也有通過dbGap[7]提供的大量公共資助研究的數十億基因型和基因表達測量等,為涉及人類疾病基因組學方面的翻譯研究創(chuàng)造了巨大的機會,但也呈現(xiàn)出一些危機。雖然有許多有用和強大的注釋資源、數據管理和分析能夠與特定的可用數據一起運行,但它們往往也作為獨立的“孤島”存在;雖然領域正在投入大量資源來積累遺傳和基因組數據庫并在創(chuàng)建強大的社區(qū)支持的軟件中進行分析,但是現(xiàn)在可以將所有這些資源有效地納入日常研究實踐中的領域科學家的比例仍然相對較小。部分原因是數據以各自的數據格式存在,并不總是很好地擴展到大數據集合,且不在任何單一的集成框架中。用戶在研究工作中,需要將數據從一個數據存儲庫或應用程序輸出轉換為另外一個特定格式才能進一步處理。
再如在地學遙感領域,互聯(lián)網公開了大量觀測數據和處理軟件,分發(fā)免費數據和社區(qū)支持的分析軟件[8]。獲得適當信息技能的人員可以創(chuàng)建新的軟件基礎設施,以構建可重復的流程來轉換數據,并將所有這些豐富的資源整合到其工作中。然而,大多數領域科學家在獲得新的重要方法和數據方面受到限制,在基礎資源使用方面也受到制約。
由此,科研數據處理以云計算的形式讓分析跑在數據端,并提供安全的用戶訪問方式、可選的算法資源庫、高效的數據存取接口、便捷的用戶交互工具、有效擴展的計算和存儲資源,將有力提升科學家的數據分析探索。
在該背景下,不同的應用項目也正在逐步前行。SciServer[9]是由美國國家科學基金會(NSF)支持的項目,旨在建立一個集成網絡基礎設施系統(tǒng),能提供免費的科學數據發(fā)布平臺,以便從觀測和模擬中獲取大量數據集。系統(tǒng)提供了從天文學到基因組學等多個 pb級科學數據集的訪問,也提供了一組簡單但功能強大的基于瀏覽器的工具,用于可視化和分析這些數據集。Galaxy[10]是一個開放的基于網絡的基因組研究平臺,旨在解決隨著生命科學對計算方法的日益依賴,計算結果的可訪問性和可重復性的擔憂。Galaxy是基于web 交互式,為用戶提供了一種交互完整計算分析的媒介。Galaxy 自動跟蹤和管理數據來源,并為捕獲計算方法的流程提供支持。
本文基于科學數據分析在數據使用、算法環(huán)境、編程語言、適配版本、資源調用等方面的問題,提出一種基于容器技術的科學數據端云分析服務管理引擎設計并進行系統(tǒng)實現(xiàn),發(fā)布交互分析云服務系統(tǒng)V1.0,應用于多個國家科學數據中心、兩個領域公共平臺和若干重大項目。以下從IA 關鍵技術方法、應用及下一步發(fā)展幾個方面進行介紹。
本文提出一種基于容器技術的科學數據端云分析服務管理引擎設計,其資源節(jié)點以自動注冊的方式進行橫向擴展。資源節(jié)點可以是物理主機或虛擬主機;當在用資源達到閾值,管理節(jié)點通過接口啟動資源節(jié)點的注冊,同時資源入池;容器實例池的健康度在節(jié)點內部進行維護,根據用戶的最長使用時間、靜默時間等進行實例生命周期管理;內部資源池的容器實例有準備中、準備好、使用中、消亡中幾種狀態(tài),并始終維護資源池的固定大小。用戶認證訪問時,根據用戶的領域算法庫的選擇和資源池的使用率進行新用戶資源的接入,并通過代理配置提供唯一的標識入口以供用戶訪問;用戶以安全加密的網絡訪問方式訪問交互編程組件或交互工作流組件,即可使用數據端的數據資源和計算資源。每個交互組件均在獨立的容器實例中,可以進行有效的資源隔離。面向領域科學交互式大數據分析服務的方法流程設計如圖1所示。
一種基于容器技術的科學數據端云分析服務方法,其步驟為:
(1)創(chuàng)建主機節(jié)點池:科學數據端云分析系統(tǒng)中建立一組主機節(jié)點池;并初始化一組管理組件和一組容器資源池;所述主機節(jié)點池包括一個管理節(jié)點和若干資源節(jié)點,所述管理節(jié)點和資源節(jié)點可以是物理主機或虛擬主機;
(2)注冊資源節(jié)點:當資源利用達到閾值時,管理器啟動資源節(jié)點的注冊并記錄相關參數到緩存器;當任一項資源利用率的超閾值計數次數達到該項資源利用率的超閾值計數次數閾值,管理器啟動主機節(jié)點池中的資源節(jié)點進入備用狀態(tài)并記錄資源節(jié)點的創(chuàng)建時間、節(jié)點地址參數到緩存器;
(3)創(chuàng)建容器實例池片:啟動注冊的資源節(jié)點以分析算法庫為區(qū)分建立面向相應分析算法庫的容器實例池片,創(chuàng)建并啟動容器實例,并啟動每個容器實例內的服務,記錄容器實例池片相關參數和每個容器實例相關參數(即容器實例信息)到緩存器;并配置實例代理,代理器通過代理配置提供容器實例Web 訪問唯一標識供用戶訪問。
(4)啟動維護器對容器實例池片的維護:維護器定期讀取緩存器中該維護器所在的資源節(jié)點內部的容器實例池片相關參數進行維護。維護器定期讀取緩存器中的消亡列表中的待消亡容器實例個數和待消亡容器實例的實例名;刪除以上列表中每個待消亡容器實例;刪除緩存器中的以上步驟的消亡列表中的待消亡容器實例的實例名;每刪除一個容器實例,隨后啟動一個容器實例的創(chuàng)建并追加入緩存器中可用容器實例列表。
(5)接入用戶服務:根據用戶對分析算法庫的選擇,擇優(yōu)選擇對應容器實例;同時判斷是否需要加入新的后備容器實例池片入容器實例池,如果需要,則執(zhí)行步驟B。
IA 服務管理引擎的管理組件包含:緩存器、代理器、接入器、管理器、監(jiān)控器、鏡像倉庫和維護器。IA 管理引擎架構設計如圖2所示,其中:緩存器、代理器、接入器、管理器、監(jiān)控器、鏡像倉庫運行于管理節(jié)點上,維護器運行在資源節(jié)點上。
管理器進行資源節(jié)點的注冊和容器實例池的注冊,并可以修改容器實例池和容器實例的參數閾值并更新到緩存器。
監(jiān)控器啟動定時任務,監(jiān)控資源節(jié)點和節(jié)點上每個容器實例的性能指標寫入緩存器。
圖1 IA 方法流程設計Fig.1 IA method flow design
代理器配置代理每個容器實例以提供容器實例Web 訪問唯一標識,并獲取用戶的使用情況。
接入器計算最優(yōu)接入實例池片,并返回該最優(yōu)實例池片的一個容器實例的唯一標識以供用戶訪問;所述最優(yōu)的計算方式是對用戶選擇容器資源池的各個容器實例利用率進行計算,選擇容器實例利用率最低的進行接入。
緩存器存儲相關的資源節(jié)點信息、容器實例池信息、容器實例池片信息、容器實例信息。
所述的資源節(jié)點信息至少包括主機地址和定時監(jiān)測的性能指標等數據;所述的容器實例池信息至少包括容器實例池標識、算法庫模板名稱標識、容器實例池所含容器池片標識等數據;所述的容器實例池片信息至少包括該容器實例池片名稱標識,該容器實例池片容量閾值,該容器實例池片所含容器實例名稱標識、創(chuàng)建時刻、最新維護時刻等數據;所述的容器實例信息至少包括該容器實例名稱標識、容器實例參數(容器實例的創(chuàng)建時刻、最新接入時刻、最新活動時刻、最大存活時長、最大靜默時長)和定時監(jiān)測的性能等數據。
維護器定時從緩存器中讀取該資源節(jié)點的容器池片相關信息、容器實例相關信息、容器實例消亡列表等,在該資源節(jié)點內部進行維護以對進入容器實例消亡列表的容器實例進行停止和刪除,并進行新容器實例的生成和入容器實例池。
鏡像倉庫存儲以分析算法庫為區(qū)分的分析算法庫鏡像,以供資源節(jié)點上每個容器實例池片的創(chuàng)建和容器實例池片的內部實例維護。
在IA 服務管理引擎中,容器資源池由若干以分析算法庫為區(qū)分的容器實例池組成,即每一容器資源池包括多個容器實例池;每一分析算法庫對應一個容器實例池;所述容器實例池由分布在不同資源節(jié)點上的以相同的分析算法庫鏡像產生的容器實例池片組成;容器實例池片由一定數量的以相同的分析算法庫鏡像產生的容器實例組成;容器實例內部均有一個科學數據端服務;容器實例是共享宿主機的CPU、內存、存儲等。
圖2 IA 管理引擎架構設計Fig.2 IA platform architecture
圖3 IA 資源拓撲圖(資源節(jié)點-容器實例池-容器實例池片-容器實例-應用服務程序)Fig.3 Resource topology diagram for IA(resource node-container instance pool-container instance pool slice-container instance-application server)
所述每個資源節(jié)點可以支持建立多個分析算法庫的應用容器實例池片,即同一資源節(jié)點可以作為不同容器實例池中的容器實例池片。 資源節(jié)點、容器實例池、容器實例池片、容器實例和面向科學分析的Web 應用,其拓撲關系如圖3所示。每個資源節(jié)點(S)包括若干容器資源池片(AS);每個以分析算法庫區(qū)分的容器資源池(A)的容器資源池片可以分布在不同的資源節(jié)點上;每個容器實例(C)內含一個面向科學分析的Web 應用(W)。
目前,基于以上科學數據端云服務管理引擎已構建IA:交互分析云服務系統(tǒng)V1.0,實現(xiàn)科學數據端云分析資源的統(tǒng)一管理服務,可以通過IA的服務門戶進行直接面向終端科學家試用,也可以通過API接口以docker 容器交付的方式給其它現(xiàn)有數據系統(tǒng)調用。系統(tǒng)支持中英文操作界面如圖4-5所示。
圖4 IA:交互分析云服務系統(tǒng)V1.0(中文版)Fig.4 IA:Interactive Analysis Cloud Service System V1.0 (Chinese)
圖5 IA:交互分析云服務系統(tǒng)V1.0(英文版)Fig.5 IA:Interactive Analysis Cloud Service System V1.0 (English)
IA:交互分析云服務系統(tǒng)V1.0可以基于自有的基礎設施獨立部署,也可以通過構建在中國科學院計算機網絡信息中心基礎設施之上的云服務版本進行資源試用。此云服務版本提供R(https://www.r-project.org/)、TensorFlow[11]、Data Science、All Spark[12]等的常用工具服務,并面向領域提供定制服務,已逐步構建生命健康、生態(tài)環(huán)境、大氣科學、煙草行業(yè)等領域的基礎算法庫。用戶可以https的方式訪問交互編程組件(iJupyter)或交互應用組件(iWorkflow),即可使用數據端的數據資源和計算資源。
IA:交互分析云服務系統(tǒng)V1.0 以實際應用需求為牽引,逐漸為眾多重大項目提供工具和分析支撐服務:面向中國科學院戰(zhàn)略先導專項A“地球大數據工程”的“地面監(jiān)測數據資源匯聚和共享”,提供公眾調查類數據處理工具庫服務鳥類數據的匯聚處理;面向國家煙草專賣局重大專項“煙草科研大數據”的“煙葉質量大數據分析挖掘技術及應用研究”,提供煙葉質量工具庫服務煙葉質量的模型訓練與預測;面向中國科學院戰(zhàn)略先導專項B“大尺度區(qū)域生物多樣性格局與生命策略”的“亞熱帶森林群落多樣性格局與生命策略”課題,提供系統(tǒng)進化分析工具庫服務中國生命之樹構建和生物多樣性制圖等,并同時面向氣象水文、海洋分析、代謝組學分析等應用場景進行應用。
IA:交互分析云服務系統(tǒng)V1.0 應用于國家微生物科學數據中心,面向微生物領域云等6 大類20多個數據源、1 716 272 390 數據實體提供Metagenome Tools、Alignment、 Evolution Analysis 等90 余個模型分析服務。
在IA的功能基礎上,定制形成iSpace 并成功應用于國家空間科學數據中心。iSpace 打通了內部iWorkflow和iJupyter的交互通道,既能在iWorkflow里分析數據、構建工作流,同時能利用iJupyter 對工作流中的工具模塊進行編輯。構建Tsyganenko 磁場模型庫、地磁截止剛度計算等若干領域專業(yè)工具/模式庫,和支持戶自定義工具封裝與發(fā)布。
圖6 基于IA的iSpace(國家空間科學數據中心)Fig.6 iSpace based on IA
IA 通過API 面向GSCloud 地理空間數據云[13]提供應用服務,支持地理空間數據云9 大類105種數據資源、600TB 地理空間數據資源使用,支持遙感數據切割、地圖服務發(fā)布、植被指數模型運算等幾大類算法庫,面向34 萬注冊用戶提供科學數據端的在線交互分析。用戶以https的方式訪問交互編程組件(iJupyter)即可以使用。
圖7 基于IA的在線交互編程分析(GSCloud)Fig.7 Interactive programming analysis based on IA
IA 通過iWorkflow 面向DarwinTree 分子數據與應用環(huán)境[14],同步標記的序列數據200 007 147,覆蓋中國領域3114 屬級單元,提供130 余模型服務,支持中國維管植物系統(tǒng)發(fā)育大樹構建和挖掘、中國被子植物群的進化史分析等研究,支持研究團隊相關成果發(fā)表在《自然》獲得2018“中國生命科學十大進展”[15]。
科學數據的應用領域在不斷擴展,科學數據端分析需求也在不斷發(fā)展。緊跟科學領域的發(fā)展需要,構建針對不同應用場景的算法庫支持多樣的編程語言、算法環(huán)境和適配版本的資源池,并對具體性能問題結合領域方法進行調優(yōu),不斷豐富科學數據端的計算資源,將是一個不斷和領域科學家協(xié)同發(fā)展的過程。IA 將繼續(xù)以中國科學院重大專項和行業(yè)科學領域需求為牽引,以GSCloud、DarwinTree、中國科學數據云等平臺服務為依托,進一步完善面向地理空間、系統(tǒng)進化、國家基礎學科公共科學數據中心等的公共服務,并針對空間科學大數據、海洋科學大數據、煙草行業(yè)等特色領域需求進一步進行豐富發(fā)展,夯實打磨IA的服務場景和服務能力。
利益沖突聲明
所有作者聲明不存在利益沖突關系。