提供DevOps即服務的Gruntwork宣布開源Terratest,這是一個以Go撰寫的基礎架構即程式碼(Infrastructure as Code,IaC)測試工具,Gruntwork認為,測試基礎架構並非易事,但值得投資努力。

Gruntwork提到,基礎架構即程式碼像是Terraform、Packer和Docker這類工具,可以自動執行完整的部署,並將基礎架構狀態以程式碼的方式儲存,另外還可以使用版本控制追蹤基礎架構的變化紀錄。

不過事情總是一體兩面,基礎架構即程式碼也有不少缺點,Gruntwork認為,多數基礎架構即程式碼的工具皆還不夠成熟,而且也因為現代服務架構複雜,即使程式碼僅有微小的變化,也可能造成伺服器、資料庫甚至整個資料中心被抹除的後果。Gruntwork表示,大部分的團隊都很害怕修改他們的基礎架構即程式碼。

而Terratest便是為此解決這個問題而生,這是一個用Go語言撰寫的函式庫,能夠讓維運團隊較輕鬆的對基礎架構即程式碼服務進行自動化測試。Gruntwork提到,即使使用Terratest進行測試也仍然談不上輕鬆,需要花一些時間編寫測試,才能讓他們正確運作,不過這些努力將值回票價,因為能讓維運團隊有信心的確定這些程式碼正確無誤。

要使用Terratest執行自動化測試,首先,使用者可以用Go內建套件來測試所編寫的測試,創建一個以_test.go結尾的檔案後,使用go test指令執行測試。第二步開始進入測試主要工作,使用者以Terratest來執行真正的基礎架構即程式碼工具,在像是AWS的真實雲端環境中部署真實的基礎設施。接下來,使用者便能使用Terratest的內建工具,發出HTTP請求、API呼叫或是SSH連接等指令,來驗證基礎架構在環境中是否正常運作。結束後把這些服務解除部署便完成測試工作。

Gruntwork表示,為了讓測試更容易,Terratest為基礎架構測試任務提供常用功能以及模式,像是測試Terraform程式碼、Packer模板、Docker映像檔,還有透過SSH執行伺服器上的指令,諸如HTTP請求或是AWS的API功能等。

Terratest專案包含了25萬行程式碼,為數百家企業合作的成果,現在以Apache 2.0授權開源,使用者可以在GitHub上找到專案


熱門新聞

Advertisement