AWS推出專門為容器主機最佳化的Linux作業系統Bottlerocket,包含容器主機所需要的元件,並且整合了現有容器調度工具,支援Docker映像檔以及OCI(Open Container Initiative)格式的映像檔。

不少企業以容器打包應用程式,讓各種應用程式在不同的計算基礎設施中運作,且不需要變更其底層程式碼,AWS提到,以容器打包和擴展應用程式,已經是公認在雲端執行應用程式的首選方法,因為以容器為基礎的環境,能使得應用程式擴展變得簡單,客戶可以在主機環境執行數百甚至是數千個執行個體。

不過,不少應用程式容器所使用的主機作業系統,皆非為託管容器設計,因此這也出現了一些挑戰,大多數的系統都是以套件為單位更新,這在安全性、更新、額外資源支出以及系統偏移上,都會出現問題,也使得自動化成為一項困難的工作。

AWS認為,這些挑戰主要來自於套件系統,除了簡單地安裝額外的套件來滿足相依性,會增加可攻擊面之外,傳統仰賴套件的更新系統,機制過於複雜容易產生錯誤,且相依項目也容易出現問題,而且多餘的套件會占用磁碟空間和CPU運算資源,增加啟動的時間,另外,不一致的套件和配置,也會因為時間發展,破壞叢集的完整性。

為此,AWS推出了自家的作業系統Bottlerocket,試圖解決這些問題。Bottlerocket由標準開源元件建構而成,具備執行容器所有需要的元件,AWS強調,Bottlerocket特別之處在於其更新以及API設計上,用戶可以利用呼叫API來調整配置,而不需要手動更改,並且這些更改還可以在更新時自動搬遷。

Bottlerocket不使用套件更新系統,而是使用基於映像檔的更新模型,這個模型在必要時可以快速且完整的回退,AWS表示,這消除了系統衝突和故障的機會,並使得調度工具可以更有心信地將更新應用到整個叢集。而且Bottlerocket中幾乎所有的地方元件,都是以Rust開發而成,而Rust能夠消除某些類型的記憶體安全性問題,並且使開發者以較安全的模式開發程式。

Bottlerocket的檔案系統主要為唯讀,並在啟動時經dm-verity檢查其完整性,AWS提到,並不建議用戶使用SSH存取,SSH存取僅在獨立管理者容器中提供,用戶可以根據需要啟用管理者容器,用來排除故障。


Advertisement

更多 iThome相關內容