天天看點

Terrform 基礎 工作流

Terrform 基礎 工作流

 terrform現在還不算是特别的成熟,後期發展起來肯定是非常強大的,terrform可以管理任何的基礎設施,其次可以對基礎設施的版本化進行管理,比如寫代碼将代碼存放在版本系統裡面,就是為了友善復原。

同樣可以将基礎設施作為代碼托管到版本系統裡面,然後進行跟蹤。

我們僅僅需要聲明我們所需要的資源,無需考慮底層邏輯,它會自動的幫我們去實作。

比如搭建web叢集,都會有域名,域名綁定的是IP,肯定要将ECS建立起來之後才會有IP,這個時候才會建立域名的DNS解析記錄,這裡面邏輯就不需要你去關心了,tf會會自動幫你生成。

多雲混合雲的部署。

Terrform 基礎 工作流

tf提供了工具,就是指令行,指令行有工作流,通過工作流來管理它所支援的雲服務。

對于我們來說,重點就是編寫聲明式的配置檔案,它有一套自己的文法。寫好配置檔案之後由tf去調用雲供應商的api接口來實作我們所定義的資源。

了解k8s的知道,我們會去寫一些yml類型的檔案,寫完yml之後,使用了kubectl這個工具去建立,其實這個工具調用的就是k8s的api,最後将我們的資源建立出來,它可能是個pod。

tf也是一樣,隻不過用它的格式來寫配置檔案,然後由tf去建立,tf其實調用的也是其api,最終生成資源,這可能是vm。

Terrform 基礎 工作流

tf工作流:首先是去寫配置檔案,然後去列一個計劃,然後去看部署計劃,先來進行review,最終應用到生産環境當中,去釋出。

Terrform 基礎 工作流

tf根據我們的配置檔案去操作provider,去操作每個雲的插件,每個雲的供應商都會提供對應的插件,比如aws可能就提供了aws插件,這個插件最後操作的就是雲的api。

是以tf是通過其api來在雲平台上面建立和管理資源。

provider就是一個可插拔的插件,隻要你有provider,tf都可以通過provider裡面所定義的api來通路建立這些服務。

Terrform 基礎 工作流

 tf核心工作流程,writer階段,就是我們去寫,去定義我們所需要的資源,這一塊其實就是讓我們去修改配置檔案,寫配置檔案就是我們需要什麼資源。

Terrform 基礎 工作流

當你寫好配置檔案,執行terrform plan這個指令的時候,這裡會列出來,根據你的配置檔案,建立以及其他更新的東西。 

Terrform 基礎 工作流

假設目前運作了ecs,然後配置檔案裡面又加入了ecs,那麼它拿目前一台ecs和你配置檔案裡面定義的兩台ecs去做對比,然後在計劃裡面就可以看出多的那一台,然後做增量的部署。

這些邏輯都是tf内置的,幫我們去實作了。

這個步驟挺重要的,寫完配置檔案最好都在這裡看一下,做哪些變更。這個就類似于代碼review一樣。

确定計劃沒有問題了,這個時候就可以去釋出了。

Terrform 基礎 工作流

當你執行apply去釋出的時候,會讓你輸入y,是否要執行。那麼tf就會按照之前的計劃去執行了,子啊各個雲供應商去建立資源。

順序,依賴關系是tf自動幫你處理的,不需要關心它,隻需要寫你需要哪些資源,後面都是它來幫你去做的。例如先建立vpc,再建立虛拟機。

總結

基礎設施發生了變化,因為企業都在上雲,都在使用雲計算,可能是自建的雲計算,有可能是雲供應商提供的這些服務,上雲之後解決了成本,維護問題。

雲定義了網絡,伺服器,存儲等等這些資源,雲的好處就是按需使用,根據業務的需求來動态的調整業務。

上了雲之後,都是通過雲供應商提供的控制台來操作的,來操作我們所有的資源,但是遇到了新的問題就是控制台雖然友善,當你建立很多套環境,對環境做了哪些變更,那麼就要依賴控制台,不能形成操作曆史的記錄,或者說是複用。