詳解華為雲基因容器服務GCS

雲容器大師發表於2018-12-19

基因測序,作為“下一個能夠改變世界”的技術,已經由實驗室研究演變到臨床使用,為人類預測罹患多種疾病的可能性,提前預防和治療疾病提供了一套可靠的方法和手段。而基於基因測序在預防和治療疾病方面的準確和可靠,基因測序也因此成為了精準醫療的基礎。據預測,基因測序市場未來五年複合增長率在35%左右,2022年有望突破300億美元。

 

 

基因測序的難題

然而,雖然基因測序市場火爆異常,但實際上,對於基因測序廠商來說,目前面臨著很多的困難和挑戰,具體而言,最主要的就是成本高、效率低、門檻高。

 

成本高

所謂成本高,是指基因測序的基礎設施成本和運營成本高。不同於傳統的常規計算,基因計算,需要對海量的資料進行非常複雜的計算。測算一個人的基因,就需要對30億對的DNA進行測算,涉及的演算法包括對映、過濾、去重、排列、索引、壓縮、重校驗等等,以HiSeq X10測序儀產生的資料為例,一個人30x全基因組樣本資料FASTQ檔案就會達到200GB ,中間資料sam檔案大小將超過600GB。這無論對於伺服器的計算還是儲存能力都提出了很高的要求,從而導致IT基礎設施成本居高不下。同時,對這些IT基礎設施的維護,也會帶來大量的運維成本。

 

效率低

效率低首先是指計算的效率低,基因測序將會耗費大量的時間,據悉,人類歷史上的第一次的基因測序耗費了6個國家,10年的時間才最終完成,而即使在科技已經日新月異的今天,如果採用傳統的IT架構和計算框架,在基因資料的分析和解讀方面平均也會需要30+小時,這是一個很低的計算效率。其次,是指資源利用率低。基因測序業務有明顯淡旺季之分,通常旺季業務是淡季的數倍,這種業務的極度不平衡性,也造成了IT基礎設施的平均利用率的低下。

 

門檻高

基因測序沒有統一標準,生物資訊資料處理流程複雜,軟體選擇多,流程差異大,此外,針對不同測序訴求,需要構建不同的測序環境和流程,搭建過程複雜。因此,僅僅是軟體的部署和分發,對於基因測序廠商中的IT部門就是一個不小的困難和挑戰,更不用說基因測序流程的設計和編排了。

 

針對基因測序領域的這些困難和挑戰,華為雲創造性的推出了以Kubernetes為基礎的基因容器服務GCS(Gene Container Service)。GCS將基因測序和容器技術完美地結合在了一起,為廣大基因測序廠商提供了“更省、更快、更輕鬆”的雲科學計算平臺。GCS是一個三層架構,第一層是Docker層,這層主要解決基因測序相關軟體的安裝升級問題,中間層是Kubernetes層,主要解決在多臺節點上安裝Docker,執行Docker的問題,最上層是流程管理層,主要負責基因測序的流程控制。

 

 

為什麼會是容器

 

那麼,為什麼是Docker容器成為了華為雲基因測序解決方案的首選呢?這是因為,首先,在基因測序領域,資料處理流程複雜,單步驟就存在多種軟體可選,單軟體也有多版本可選。而在傳統虛機中執行基因測序相關軟體,不僅需要安裝多種軟體,還需要考慮軟體間版本相容性,同一軟體多例項間競爭影響等因素。這對於缺乏專業IT人才的基因測序企業來說,是一大痛苦。而容器技術具有使得不同軟體間執行無感知的特性,同一個軟體任意多例項執行也不會相互影響。而且Docker映象以軟體為單位, 獨立製作和更新都非常便捷,可以較好的克服多軟體多版本的安裝和配置問題。

 

其次,在基因測序的過程中,如果前期除錯流程出現錯誤,將會導致軟體配置改變或者環境異常,這樣就必須重新搭建和恢復環境,同時,軟體的分發和更新成本也很高。而通過Docker映象便捷分發,一次構建,隨處可執行的機制,使得本地驗證除錯非常簡便。環境的切換對Docker程式無影響,從而可以保證執行環境的一致性以及資料處理結果的可重複性,而這對於解決基因測序的除錯問題有非常大的幫助。

 

最後,按照傳統的基因測序方法,單樣本資料處理一般在單機上完成,所以目前普遍使用高規格機器來執行pipeline流程。但這樣的話,多機併發能力就會不足,如單獨開發任務排程框架,門檻成本和收益也不明顯。同時單機上多工併發能力也受限,無法很好的滿載利用計算資源。但如果採用容器技術,單虛機上就可以同時執行多個Docker容器,這使得多個任務可以同時在一個VM上執行。再加上Kubernetes的資源排程能力,可以使得多工按資源需求平均地在多VM上混合執行,這樣,就會最大化利用計算資源。

 

因此,有人說基因測序與容器是註定天生的一對,絕對不是誇大其詞。

 

基因測序利器

除了具有容器所帶來的天然優勢之外,GCS還具有諸多適合基因測序領域的特點,堪稱基因測序領域不可多得的利器。

 

便捷依賴定義

GCS的流程描述語言非常靈活,結合容器的特點,可以輕鬆執行基因測序流程的遷移、拷貝,同時,GCS還支援直接Shell方式的命令,因而,可以非常便捷的進行基因測序流程的控制。

 

迭代式併發

針對基因測序領域高併發的要求,GCS通過便捷的迭代組合式併發,可以輕鬆處理併發任務場景。例如,通過執行變數迭代,一條“echo $(1) $(2)"命令可以迭代出3*2=6個併發操作。同時,GCS的Shell語法,支援已有流程遷移,還支援用多種迭代描述方式,控制併發行為。

 

 

 

跨租戶共享儲存

GCS還支援跨租戶共享儲存,平臺可以為使用者提供參考組,資料庫等公共資料,並且這些資料還可以實現在各個租戶之間的共享,以便於不同使用者之間的協作。

 

親和性排程

通過GCS的親和排程功能,GCS可以把新任務優先投遞到可容納的節點,配合自動擴縮容,以達成最小的資源消耗。

 

叢集自動擴縮容

GCS還具有叢集自動擴縮容的能力,當叢集無法容納更多的新任務時,系統會自動新增節點,當節點長期空閒時,也會相應的刪除節點,從而既能使系統可以達到最小的資源消耗,又能輕鬆應對業務峰值。同時,由於容器執行密度高,因此可以充分利用其計算能力,做到運維零成本。

 

動態併發

GCS具有動態併發的功能,針對基因測序這樣複雜的任務,可以根據實際情況,動態的將複雜的任務切割成若干個簡單的小任務,分配到不同容器中去執行,最後再進行合併,從而大大提升了系統應對複雜業務流程的能力。

專業映象倉庫

在基因測序領域,涉及的工具超過5000多個,皆分佈在DockerHub上,為此,GCS支援直接對接全球最大的映象倉庫DockerHub,還為使用者提供了華為SWR映象倉庫,並支援對接私有倉庫,這將大大方便基因測序領域的使用者使用這些工具。

 

GPU

特別的,GCS還支援GPU混合叢集,除了支援GPU任務之外,還支援普通任務+GPU任務的混合排程,據瞭解,這是華為雲GCS特有的功能,而且這項功能也會在華為CCE、CCI中得到應用。

 

流程設計器

前面已經說過,基因測序流程的設計複雜而枯燥,為此,GCS為使用者提供了圖形化的流程設計器,僅需通過滑鼠的拖拽就可以輕鬆完成基因測序流程的設計,將基因測序人員從痛苦的流程設計過程中拉了出來。

 

多叢集管理

GCS還具有強大的多叢集管理功能,支援任務間資源隔離,可以輕鬆實現開發環境和生產環境的隔離,同時,在費用管理上也更便捷。

除此之外,GCS還支援單群集多使用者的隔離,從叢集到節點到任務的多維度監控,並具有豐富的介面,很方便的就可以進行整合。

而基於這些特點,GCS可以確保最小資源消耗、充分利用計算能力,實現零成本運維,並提供秒級擴容,萬級併發專屬叢集,零排隊等待時間,可以使全基因組測序(WGS)耗時降低3-5倍,從而實現軟體免安裝,環境一鍵式重建、標準流程(WDL/SJM/Snakemake)快速遷移、千節點計算叢集搭建由多天降低至半小時等。

 

不僅僅是

而基於GCS,華為雲還推出了KubeGene開源專案,把基因容器最核心的部分開源給廣大基因科學領域的企業和使用者。不僅僅希望通過這種方式能夠直接幫助廣大基因科學的使用者,也希望通過社群協作的方式來加速這個專案的發展,更好的促進基因科學領域的廠商能夠更好的聚焦在自己的業務創新上。更希望廣大廠商和使用者能夠將基因測試的流程互相分享,互相借鑑、共同進步,一起共建基因科學的容器生態。據華為雲介紹,KubeGene專案自從11月中旬在上海KubeCon宣佈以來,在GitHub上已經吸引到接近80多顆Star,接近20個Fork。

 

GCS僅僅是華為雲在容器開源領域貢獻的一個小小縮影,實際上,在容器開源領域,華為一直是重要的貢獻者和容器生態的領導者,在Kubernetes社群,華為貢獻國內第一,全球第三,在CNCF&Kubenetes社群,華為貢獻位列全球前四、國內第一,擁有Maintainer 12席,華為還是CNCF技術監督委員會九位委員之一,K8S社群技術指導委員會十三位委員之一,也是首批KSCP認證廠商。在OCI&Docker&其他社群,華為貢獻全球前三、國內第一,擁有Maintainer 7席。華為還是OCI初創成員,容器映象格式的規範和實現的主導者,Kata Container專案發起者之一,架構委員會5席位之一以及CNCF基金會的初創會員、白金會員和CNCF/Kubernetes TOC的成員。

 

華為雲“有技術、有未來、值得信賴”致力於做智慧世界的黑土地,基於華為30年技術積累,華為雲在容器和開源領域持續深耕,也許就是其能夠成為重要貢獻者和領導者的重要原因之一。 

相關文章