7月5日消息,據國外媒體報道,容器技術對數據驅動科學研究有很深的影響,開發人員越來越喜歡這種技術。而容器技術到底是什么呢?今天,我們一起來看看。
要了解容器,我們必須從Linux cgroups和命名空間開始,Linux內核功能可以在容器和主機上運行的其他進程之間創建墻壁。最初由IBM開發的Linux命名空間包裝了一套系統資源,并將它們呈現出一個流程,使其看起來像是專用于該進程。
最初由Google開發的Linux cgroup管理一組進程系統資源(如CPU和內存)的隔離和使用。例如,如果您的應用程序占用大量CPU周期和內存,科學計算應用程序則可以將這些應用程序放在cgroup中以限制其CPU和內存使用。
容器技術也叫做Docker,廣泛用于科學研究中。加州大學戴維斯分校生物信息學家 C. Titus Brown 介紹說,實驗室開發的工具極少能拿來就用,它們通常以必須接受處理和配置的腳本或者源代碼的形式存在。大多數軟件需要額外的工具和程序庫,但用戶可能并未安裝。即便用戶能獲得軟件并運行它,計算環境的不同也會無意中改變其性能并且影響可重復性。容器通過將運行所需軟件要求配置的計算環境的關鍵要素打包進一個輕量級的虛擬機,減少了這種復雜性。
像FreeBSD Jails和Solaris Zones一樣,Linux容器是獨立的執行環境,它們擁有獨立的CPU、內存塊I / O和網絡資源,共享主機操作系統的內核。結果像虛擬機那樣,擺脫了客戶操作系統的所有重量和啟動開銷。
加州伯克利國家能源研究科學計算機中心計算機專家 Deborah Bard 已幫助很多研究人員在實驗室的超級計算機上安裝了他們的軟件。她回憶說,安裝用于望遠鏡模擬和分析的復雜軟件通道之前需要三四天。利用容器則將這一時間縮減到幾個小時。在具有Web規模要求的應用程序環境中,與傳統服務器虛擬化相比,容器是一個吸引人的主張。