Google宣布在其多個雲端服務中,提供雲端原生容器映像檔技術Buildpacks的支援,以加速容器化應用程式的採用,而Google也釋出了開放原始碼模板,讓用戶能夠簡單地在自家應用程式上,使用Buildpacks技術。

Google所提供的Buildpacks,源自於CNCF的開源Cloud Native Buildpacks專案。Buildpacks最一開始是由Heroku在2011年創建,並且被Cloud Foundry以及Google App Engine、Gitlab、Knative等其他PaaS採用,而Cloud Native Buildpacks專案,則是Pivotal和Heroku在2018年初發起,於10月加入Cloud Native沙盒,目標是要統一Buildpacks生態系。

Cloud Native Buildpacks讓開發者能夠將應用程式原始碼,轉換成為可在雲端執行的映像檔,而不需要使用Dockerfile。Buildpacks會被包在一個稱為Builder的OCI映像檔中,Builder擁有建置應用程式所需要的全部資訊,一個Builder可含有一個或是多個Buildpack。

而Google雲端發布的Buildpacks版本,則是一系列開源Buildpack以及Builder的集合,並且以CNCF Buildpacks v3規範作為基礎,能建構遵循最佳實踐的容器映像檔,在Google的容器平臺,像是Cloud Run、Anthos和GKE上執行。

Google強調,他們對Buildpacks的可重複使用性、安全性和執行速度進行最佳化,讓開發者可以將應用程式和函式,都打包成為容器映像檔,在建置函式時,會是使用Google雲端的開源Functions框架打包。Google Buildpacks使用Ubuntu 18.04基礎映像檔,該映像檔會定期執行安全漏洞檢查,所有被偵測到的漏洞,會自動更新修復,以確保開發者在以Buildpacks建置原始碼時,能確保其安全性。

Google的Buildpacks完全以程式語言Go編寫,而開發者不用以各種語言創建同個Buildpack,可以將較小且模組化的Buildpack結合在一起,像是以Node.js開發,能夠安裝節點的套件NPM Buildpack,也能被用在其他可以使用NPM套件的語言或是框架上。

Google在一系列產品支援Buildpack,包括使用者可以在Cloud Run的持續部署配置中使用Buildpack,而Buildpacks也是較新的App Engine Runtime,預設的程式碼部署機制,Cloud Code IDE可以直接以Buildpacks建置原始碼,並且部署到GKE中。而Skaffold也使用Buildpack提供即時開發體驗,當開發者編輯原始碼時,Buildpacks便會持續重建應用程式,讓開發者預覽程式碼的變更。


Advertisement

更多 iThome相關內容