溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Terraform主要特點(diǎn)有哪些

發(fā)布時(shí)間:2022-01-07 17:01:38 來源:億速云 閱讀:197 作者:iii 欄目:云計(jì)算

本文小編為大家詳細(xì)介紹“Terraform主要特點(diǎn)有哪些”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Terraform主要特點(diǎn)有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

Terraform 是什么

如果兩年前問 Terraform 是什么,國(guó)內(nèi)熟悉它的人可能并不是很多,畢竟它是2014年的新生兒,提到資源編排,大家能優(yōu)先想到的也是 AWS 的 CloudFormation,Azure 的 ARM 以及阿里云的 ROS。但是如果今天再問“Terraform 是什么”,相信很大一部分人對(duì)它不再陌生,并且一些公司或者感興趣的開發(fā)者已經(jīng)開始使用 Terraform 來管理他們的基礎(chǔ)設(shè)施。不論是 Hashicorp 的官方宣傳,還是阿里云云棲社區(qū)的布道;不論是 Devops的持續(xù)發(fā)展,還是云原生的火熱傳播;不論是國(guó)內(nèi)最初只有阿里云支持,還是后來國(guó)內(nèi)其他云廠商的陸續(xù)支持,Terraform 近兩年在國(guó)內(nèi)被越來越多的提及。

在此之前,不止一篇云棲文章介紹過Terraform是什么,本文將結(jié)合Terraform的官方文檔,對(duì)這些文章中的介紹做一個(gè)整理和總結(jié)。

2014年,Hashicorp 公司推出了一款產(chǎn)品 Terraform
Terraform主要特點(diǎn)有哪些

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.

總結(jié)起來,三句話:

  • Terraform 是一個(gè)可以安全、高效地建立,變更以及版本化管理基礎(chǔ)設(shè)施的工具,并可在主流的服務(wù)提供商上提供自定義的解決方案。

  • Terraform 以配置文件為驅(qū)動(dòng),在文件中定義所要管理的組件(基礎(chǔ)設(shè)施資源),以此生成一個(gè)可執(zhí)行的計(jì)劃(如果不可執(zhí)行,會(huì)提示報(bào)錯(cuò)),通過執(zhí)行這個(gè)計(jì)劃來完成所定義組件的創(chuàng)建,增量式的變更和持續(xù)的管理。

  • Terraform不僅可以管理IaaS層的資源,如計(jì)算實(shí)例,網(wǎng)絡(luò)實(shí)例,存儲(chǔ)實(shí)例等,也可以管理更上層的服務(wù),如DNS 域名和解析記錄,SaaS 應(yīng)用的功能等

更通俗的講,Terraform 就是運(yùn)行在客戶端的一個(gè)開源的,用于資源編排的自動(dòng)化運(yùn)維工具。以代碼的形式將所要管理的資源定義在模板中,通過解析并執(zhí)行模板來自動(dòng)化完成所定義資源的創(chuàng)建,變更和管理,進(jìn)而達(dá)到自動(dòng)化運(yùn)維的目標(biāo)。

Terraform 主要特點(diǎn)

Terraform 具備以下幾個(gè)主要特點(diǎn):

  • 基礎(chǔ)設(shè)施即代碼(IaC, Infrastructure as Code)
    Terraform 基于一種特定的配置語言(HCL, Hashicorp Configuration Language)來描述基礎(chǔ)設(shè)施資源。由此,可以像對(duì)待任何其他代碼一樣,實(shí)現(xiàn)對(duì)所描述的解決方案或者基礎(chǔ)架構(gòu)的版本控制和管理。同時(shí),通用的解決方案和基礎(chǔ)架構(gòu)可以以模板的形式進(jìn)行便捷的共享和重用。

resource "alicloud_instance">
  • 執(zhí)行計(jì)劃(Execution Plans)
    Terraform 在執(zhí)行模板前,運(yùn)行 terraform plan 命令會(huì)先通過解析模板生成一個(gè)可執(zhí)行的計(jì)劃,這個(gè)計(jì)劃展示了當(dāng)前模板所要?jiǎng)?chuàng)建或變更的資源及其屬性。操作人員可以預(yù)覽這個(gè)計(jì)劃,在確認(rèn)無誤后執(zhí)行 terraform apply 命令,即可完成對(duì)所定義資源的快速創(chuàng)建和變更,以免發(fā)生一些超預(yù)期的問題。

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.
  • 資源拓?fù)鋱D(Resource Graph)
    Terraform 會(huì)根據(jù)模板中的定義,構(gòu)建所有資源的圖形,并且以并行的方式創(chuàng)建和修改那些沒有任何依賴資源的資源,以保證執(zhí)行的高效性。對(duì)于有依賴資源的資源,被依賴的資源優(yōu)先執(zhí)行。

  • 自動(dòng)化變更(Change Automation)
    不論多復(fù)雜的資源,當(dāng)模板中定義的資源內(nèi)容發(fā)生變更時(shí),Terraform 都會(huì)基于新的資源拓?fù)鋱D將變更的內(nèi)容plan 出來,在確認(rèn)無誤后,只需一個(gè)命令即可完成數(shù)個(gè)變更操作,避免了人為操作帶來的錯(cuò)誤。

讀到這里,這篇“Terraform主要特點(diǎn)有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI