您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Terraform主要特點有哪些”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Terraform主要特點有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
如果兩年前問 Terraform 是什么,國內熟悉它的人可能并不是很多,畢竟它是2014年的新生兒,提到資源編排,大家能優先想到的也是 AWS 的 CloudFormation,Azure 的 ARM 以及阿里云的 ROS。但是如果今天再問“Terraform 是什么”,相信很大一部分人對它不再陌生,并且一些公司或者感興趣的開發者已經開始使用 Terraform 來管理他們的基礎設施。不論是 Hashicorp 的官方宣傳,還是阿里云云棲社區的布道;不論是 Devops的持續發展,還是云原生的火熱傳播;不論是國內最初只有阿里云支持,還是后來國內其他云廠商的陸續支持,Terraform 近兩年在國內被越來越多的提及。
在此之前,不止一篇云棲文章介紹過Terraform是什么,本文將結合Terraform的官方文檔,對這些文章中的介紹做一個整理和總結。
2014年,Hashicorp 公司推出了一款產品 Terraform
Terraform 官方的定義如下:
Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.
Configuration files describe to Terraform the components needed to run a single application or your entire datacenter. Terraform generates an execution plan describing what it will do to reach the desired state, and then executes it to build the described infrastructure. As the configuration changes, Terraform is able to determine what changed and create incremental execution plans which can be applied.
The infrastructure Terraform can manage includes low-level components such as compute instances, storage, and networking, as well as high-level components such as DNS entries, SaaS features, etc.
總結起來,三句話:
Terraform 是一個可以安全、高效地建立,變更以及版本化管理基礎設施的工具,并可在主流的服務提供商上提供自定義的解決方案。
Terraform 以配置文件為驅動,在文件中定義所要管理的組件(基礎設施資源),以此生成一個可執行的計劃(如果不可執行,會提示報錯),通過執行這個計劃來完成所定義組件的創建,增量式的變更和持續的管理。
Terraform不僅可以管理IaaS層的資源,如計算實例,網絡實例,存儲實例等,也可以管理更上層的服務,如DNS 域名和解析記錄,SaaS 應用的功能等
更通俗的講,Terraform 就是運行在客戶端的一個開源的,用于資源編排的自動化運維工具。以代碼的形式將所要管理的資源定義在模板中,通過解析并執行模板來自動化完成所定義資源的創建,變更和管理,進而達到自動化運維的目標。
Terraform 具備以下幾個主要特點:
基礎設施即代碼(IaC, Infrastructure as Code)
Terraform 基于一種特定的配置語言(HCL, Hashicorp Configuration Language)來描述基礎設施資源。由此,可以像對待任何其他代碼一樣,實現對所描述的解決方案或者基礎架構的版本控制和管理。同時,通用的解決方案和基礎架構可以以模板的形式進行便捷的共享和重用。
resource "alicloud_instance">
執行計劃(Execution Plans)
Terraform 在執行模板前,運行 terraform plan
命令會先通過解析模板生成一個可執行的計劃,這個計劃展示了當前模板所要創建或變更的資源及其屬性。操作人員可以預覽這個計劃,在確認無誤后執行 terraform apply
命令,即可完成對所定義資源的快速創建和變更,以免發生一些超預期的問題。
An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # alicloud_instance.instance[0] will be created + resource "alicloud_instance" "instance" { + availability_zone = (known after apply) + id = (known after apply) + image_id = "ubuntu_140405_64_40G_cloudinit_20161115.vhd" + instance_name = "my-first-tf-vm" + instance_type = "ecs.sn1ne.small" + security_groups = [ + "sg-abc12345", ] + tags = { + "from" = "terraform" } + vswitch_id = "vsw-abc12345" ... } # alicloud_instance.instance[1] will be created + resource "alicloud_instance" "instance" { ... } # alicloud_instance.instance[2] will be created + resource "alicloud_instance" "instance" { ... } ... Plan: 5 to add, 0 to change, 0 to destroy.
資源拓撲圖(Resource Graph)
Terraform 會根據模板中的定義,構建所有資源的圖形,并且以并行的方式創建和修改那些沒有任何依賴資源的資源,以保證執行的高效性。對于有依賴資源的資源,被依賴的資源優先執行。
自動化變更(Change Automation)
不論多復雜的資源,當模板中定義的資源內容發生變更時,Terraform 都會基于新的資源拓撲圖將變更的內容plan 出來,在確認無誤后,只需一個命令即可完成數個變更操作,避免了人為操作帶來的錯誤。
讀到這里,這篇“Terraform主要特點有哪些”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。