當前位置:
首頁 > 科技 > 不再受後台進程困擾的世界:Buildah 1.0正式開源!

不再受後台進程困擾的世界:Buildah 1.0正式開源!

作者簡介:Daniel Walsh是RedHat的諮詢軟體工程師

一年多前,我對我的工程團隊提出了挑戰,要求開發容器映像的「coreutils」,這實際上是一個實用工具,可與現有的容器主機工具(比如cp、make和yum等)結合使用,以構建開放式容器項目(OCI)和docker容器映像。然後,這些映像可以存儲在容器註冊中心中,由眾多容器運行時環境使用。我告訴團隊,OCI映像只不過是針對特定容器的相關文件組成的壓縮包,於是問道:為什麼我們不能開發一款簡單的工具來構建容器映像,不必運行容器後台進程(daemon)?工程師們問我取個怎樣的名字,我回答:「就叫它builder吧。」工程師們聽到我的波士頓口音後,「Buildah」就這樣問世了。我很高興地宣布,我們覺得Buildah已很成熟且穩定,完全可以宣布1.0版本,旨在將來不斷增加創新技術和功能特性。

Linux容器現成為現代企業IT環境的一個主流部分,這其實不是什麼秘密;市場研究機構Gartner甚至預測:「……到2020年,50%以上的跨國組織將在生產環境中運行容器化應用程序,今天這個比例不到20%。」這意味著開發人員需要能夠更快速更輕鬆地創建容器化應用程序。Buildah項目(以及發布的版本1.0)正是旨在為容器開發領域帶來新的創新,從而克服這個挑戰。

雖然Linux容器本身為數字化轉型提供了一條途徑,但這些容器的實際構建並不是那麼清楚。通常,構建Linux容器映像需要使用一大批的工具和後台進程(可以說是容器引擎)。按照容器的標準來看,現有工具龐大而笨拙,我認為這方面顯然缺少創新。IT團隊可能希望構建系統運行最基本的流程和工具,不然可能會帶來額外的複雜性,從而導致系統缺乏穩定性,甚至安全風險。複雜性是架構和安全方面的一個艱巨挑戰。

這時候Buildah應運而生。作為一種命令行實用工具,Buildah只滿足創建或修改Linux容器映像所需要的基本要求,因而更容易整合到現有的應用程序構建流水線中。

因此生成的容器映像也不是什麼雪花;它們符合OCI標準,甚至可以用Dockerfiles來構建。Buildah將容器開發提升到了滿足基本需求的層面,旨在幫助IT團隊限制關鍵系統方面的複雜性,並簡化所有權和安全工作流程。

我們所說的「基本需求」,就是指Buildah。Buildah便於從頭開始實時創建容器,它就好比是個空盒子。比如說,Buildah可以組裝省略軟體包管理器(DNF/YUM)等組件,最終映像又不需要的容器。因此,Buildah不僅能夠以一種不太複雜、更加安全的方式來構建這些容器,還能消除臃腫現象(因此減小映像大小),並對雲原生應用程序中所需的部分進行定製。

由於Buildah用不著後台進程,因此更容易在容器裡面運行它,無需在主機上安裝特殊的基礎架構,也不會將主機套接字「泄漏」到容器。你可以在Kubernetes(或RedHat OpenShift之類的企業Kubernetes)集群裡面運行Buildah。

Buildah 1.0有何特別之處?

我們前面已談論了Buildah,尤其在RedHat Enterprise Linux 7.5中對它提供全面的產品級支持。現在1.0版本已進入社區,Buildah的幾項顯著特性讓它備受矚目:

Buildah在構建期間添加了外部讀/寫卷,這使用戶能夠構建在構建時引用外部卷的容器映像,但又不必將那些外部卷裝載到完成的映像中。這有助於簡化映像創建,又不會因生產環境中不必要和不需要的組件而使那些映像很臃腫。

為了增強安全性,Buildah可以幫助因而生成的映像更好地符合聯邦信息處理標準(FIPS),這是美國聯邦政府要求非軍事政府部門符合的計算機系統標準,並支持FIPS模式。主機在FIPS模式下運行時,Buildah也可以在FIPS模式下構建和運行容器;這樣一來,在FIPS模式下運行的主機上的容器更容易符合標準。

Buildah現在還提供多階段構建、多種用於拉取和推送映像的容器傳輸方法及更多特性。由於一心專註於構建和處理容器映像,Buildah是一種對處理Linux容器的任何人來說都很有用的工具。無論你是本地測試映像的開發人員,還是為生產級工具鏈尋找獨立映像構建工具的開發人員,Buildah都是值得添加到容器工具箱中的工具。

想開始自行用Buildah來構建?

不妨輸入「yum -y install buildah」,也可以到項目網站https://github.com/projectatomic/buildah了解更多、貢獻代碼。

你還可以在https://www.projectatomic.io/blog/2018/03/building-buildah-container-image-for-kubernetes/查看一個更詳細的實例。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲頭條 的精彩文章:

UCloud 擬投入 18 億元建設數據中心,承載伺服器約 20 萬台
9 行代碼招致 8800000000 美元的賠償……

TAG:雲頭條 |