国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Terraform 改善基礎架構的十個最佳實踐

這篇具有很好參考價值的文章主要介紹了Terraform 改善基礎架構的十個最佳實踐。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Terraform 是一種非常流行的開源 IaC(基礎設施即代碼)工具,用于定義和提供完整的基礎設施。Terraform 于 2014 年推出,其采用率已在全球范圍內快速增長,越來越多的開發(fā)人員正在學習 Terraform 并嘗試在其組織中部署基礎設施。
?

如果您已經開始使用 Terraform,則必須采用最佳實踐來更好地配置生產基礎設施。本文章將總結10個關于 Terraform 改善基礎架構的最佳實踐。
?

結構化

當您使用 Terraform 處理大型生產基礎設施項目時,需要遵循適當?shù)哪夸浗Y構來應對項目中可能出現(xiàn)的復雜性。建議為不同目的建立單獨的目錄。如果您在開發(fā)、暫存和生產環(huán)境中使用 Terraform,請為每個環(huán)境設置單獨的目錄。
?

Terraform 配置也應該是分開的,因為經過一段時間后,不斷增長的基礎設施的配置將變得更加復雜。
?

geekflare@geekflare:~$ tree terraform_project/
terraform_project/
├── dev
│ ├── main.tf
│ ├── outputs.tf
│ └── variables.tf
├── modules
│ ├── ec2
│ │ ├── ec2.tf
│ │ └── main.tf
│ └── vpc
│ ├── main.tf
│ └── vpc.tf
├── prod
│ ├── main.tf
│ ├── outputs.tf
│ └── variables.tf
└── stg
├── main.tf
├── outputs.tf
└── variables.tf

6 directories, 13 files

?

您可以在文件 main.tf 本身內編寫所有的 Terraform 代碼(模塊、資源、變量、輸出),同時為變量和輸出設置單獨的 Terraform 代碼使其更具可讀性和易于理解。
?

命名規(guī)則

Terraform 中使用命名規(guī)則讓資源易于理解、一目了然。
?

例如,假設您要為項目中的不同環(huán)境創(chuàng)建三個不同的工作區(qū)。與其將環(huán)境命名為env1 、env2env3 ,不如嘗試使用dev、stage、prod 來命名。從名稱本身來看,很明顯每個環(huán)境都代表著不同的工作空間。資源、變量、模塊等的也遵循類似的規(guī)則。
?

Terraform 中的資源名稱應以相關資源名稱開頭,后跟下劃線和其他詳細信息。例如,用于在 AWS 中為 route table 創(chuàng)建 Terraform 對象的資源名稱為 aws_route_table
?

所以如果正確地遵循命名規(guī)則,即使是復雜的代碼也會更容易理解。
?

使用共享模塊

強烈建議使用可用的官方 Terraform 模塊。直接使用現(xiàn)有模塊,能夠有效節(jié)省時間和精力。Terraform registry 有很多現(xiàn)成可用的模塊,企業(yè)可以根據(jù)需要對現(xiàn)有模塊進行更改。
?

此外,每個模塊應該只專注于基礎設施的一個方面,比如創(chuàng)建 AWS EC2 實例、設置 MySQL 數(shù)據(jù)庫等。舉個例子,如果您想在 terraform 代碼中使用 AWS VPC,可以直接使用 -simple VPC。
?

module "vpc_example_simple-vpc" {
source
= "terraform-aws-modules/vpc/aws//examples/simple-vpc"
version = "2.48.0"
}

?

使用最新版本

Terraform 開發(fā)社區(qū)非常活躍,新功能發(fā)布頻繁。建議在發(fā)布新的主要版本時使用最新版本的 Terraform。您可以輕松升級到最新版本。如果跳過多個主要版本,升級將變得非常復雜。
?

運行terraform -v命令以檢查版本更新。

geekflare@geekflare:~$ terraform -v
Terraform v0.11.14
Your version of Terraform is out of date! The latest version
is 0.12.0. You can update by downloading from www.terraform.io/downloads.html

?

備份系統(tǒng)狀態(tài)

請始終備份 Terraform 的狀態(tài)文件,這些文件跟蹤基礎設施的元數(shù)據(jù)和資源。默認情況下,這些名為terraform.tfstate的文件本地存儲在工作區(qū)目錄中。
?

如果沒有這些文件,Terraform 將無法確定在基礎設施上部署了哪些資源。因此,必須備份狀態(tài)文件。默認情況下,terraform.tfstate.backup會被創(chuàng)建并用來保存狀態(tài)文件的備份。
?

geekflare@geekflare:~$ tree terraform_demo/
terraform_demo/
├── awsec2.tf
├── terraform.tfstate
└── terraform.tfstate.backup
0 directories, 3 files

如果要將備份狀態(tài)文件存儲到其他位置,在 terraform 命令中使用-backup標記并提供位置路徑。大部分情況下,一個項目會有多個開發(fā)人員參與。因此為了讓開發(fā)人員方便訪問狀態(tài)文件。應該使用terraform_remote_state數(shù)據(jù)源將其存儲在遠程位置。
?

以下示例將備份到 S3。
?

data "terraform_remote_state" "vpc" {
backend = "s3"
config = {
bucket = “s3-terraform-bucket”
key = “vpc/terraform.tfstate"
region = “us-east-1”
   }
}

?

鎖定狀態(tài)文件

可能有多個場景,其中不止一個開發(fā)人員試圖同時運行 Terraform 配置。這可能導致 terraform 狀態(tài)文件損壞甚至數(shù)據(jù)丟失。鎖定機制能夠有效防止此類情況發(fā)生,確保一次只有一個人在運行 terraform 配置,并且沒有沖突。
?

下面是使用 DynamoDB 鎖定位于遠程位置的狀態(tài)文件的示例。
?

resource “aws_dynamodb_table” “terraform_state_lock” {
name = “terraform-locking”
read_capacity = 3
write_capacity = 3
hash_key = “LockingID”

attribute {
name = “LockingID”
type = “S”
   }

}
terraform {
backend “s3” {
bucket = “s3-terraform-bucket”
key = “vpc/terraform.tfstate”
region = “us-east-2”
dynamodb_table = “terraform-locking”
   }
}

?
當多個用戶嘗試訪問狀態(tài)文件時,DynamoDB 數(shù)據(jù)庫名稱和主鍵將用于狀態(tài)鎖定并保持一致性。注意:并非所有后端都支持鎖定。
?

使用自變量

self變量是一種特殊的變量,當您在部署基礎設施之前不知道變量的值時可以使用它。假設您要使用僅在 terraform apply 命令后部署的實例的 IP 地址,也就是在它啟動并運行之前您是不知道 IP 地址的。
?

在這種情況下,您可以使用自變量self.ATTRIBUTE。在這個例子中,您可以使用self.ipv4_address作為自變量來獲取實例的 IP 地址。這些變量只允許在 terraform 配置的連接和配置塊上使用。
?

connection {
host = self.ipv4_address
type = "ssh"
user = var.users[2]
private_key = file(var.private_key_path)
}

?

最小化爆炸半徑

爆炸半徑(Blast Radius)是衡量如果流程沒有按計劃進行時可能發(fā)生的損害的量度。
?

例如,如果您在基礎設施上部署了一些 Terraform 配置,但配置沒有得到正確應用,那么對基礎設施造成的損害會有多大。因此,為了盡量減少故障影響范圍,建議每次配置的基礎設施數(shù)量不宜過多。即便出現(xiàn)問題,對基礎設施的損害也能控制在較小范圍,并且可以迅速得到糾正。一次性配置大量基礎設施是非常危險的。
?

使用 var 文件

在 terraform 中,您可以創(chuàng)建一個帶有擴展名的文件<em>.</em>tfvars,并使用-var-file此文件傳遞給 terraform apply 命令。這個方式可以幫助您傳遞那些您不想放入 terraform 配置代碼中的變量。
?

始終建議通過-var-file在本地傳遞密碼、密鑰等變量,而不是將其保存在 terraform 配置或遠程位置版本控制系統(tǒng)中。
?

例如,如果您想使用 terraform 啟動 ec2 實例,您可以使用-var-file傳遞訪問密鑰和其他機密信息。創(chuàng)建文件 terraform.tfvars 并將密鑰放入此文件中。
?

geekflare@geekflare:~$ gedit terraform.tfvars

access_key = "AKIATYWSDFYU5DUDJI5F"
secret_key = "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"

?
然后在 terraform 命令中使用這個 var 文件。
?

geekflare@geekflare:~$ terraform apply -var-file=/home/geekflare/terraform.tfvars

?

使用 Docker

當您運行 CI/CD 流水線構建作業(yè)時,建議使用 docker 容器。Terraform 提供了可以直接使用的官方 Docker 容器。如果需要更改 CI/CD 服務器,您可以輕松地在容器內傳遞基礎設施。
?

在生產環(huán)境上部署基礎設施之前,您還可以在 docker 容器上測試基礎設施,非常容易部署。通過結合 Terraform 和 Docker,您可以獲得可移植、可重用、可重復的基礎設施。
?

參考鏈接:
https://geekflare.com/terraform-best-practices/文章來源地址http://www.zghlxwxcb.cn/news/detail-476673.html

到了這里,關于Terraform 改善基礎架構的十個最佳實踐的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 云計算:從基礎架構原理到最佳實踐之:云計算架構設計與規(guī)劃

    作者:禪與計算機程序設計藝術 云計算是指利用網絡將地理分布的計算機系統(tǒng)、存儲設備、應用服務等資源集合起來,通過軟件控制其自動化執(zhí)行,并按需提供所需的計算能力、存儲空間及其他資源,實現(xiàn)信息的高速、低成本、彈性可靠地流動和共享。云計算的核心技術包括

    2024年02月08日
    瀏覽(30)
  • 云計算:從基礎架構原理到最佳實踐之:云計算監(jiān)控與優(yōu)化

    作者:禪與計算機程序設計藝術 云計算(Cloud Computing)是一種利用互聯(lián)網平臺提供的網絡服務的模式,基于Internet的基礎設施,利用計算機、存儲、網絡等資源的動態(tài)組合,構建、管理和使用信息系統(tǒng)的能力,實現(xiàn)數(shù)據(jù)的自動處理、自動提取、自動分布式存儲、自動調配、自

    2024年02月07日
    瀏覽(21)
  • 云計算:從基礎架構原理到最佳實踐之:云計算網絡與存儲

    作者:禪與計算機程序設計藝術 云計算作為一種新型的服務方式,無疑將會成為下一個發(fā)展階段的計算模式。很多企業(yè)或個人都認為云計算將改變傳統(tǒng)IT的格局。傳統(tǒng)的IT環(huán)境主要面臨以下三個問題: 1.硬件成本高 云計算需要大量的服務器、存儲設備和帶寬等資源,因此價格

    2024年02月07日
    瀏覽(29)
  • 云計算:從基礎架構原理到最佳實踐之:云計算容量規(guī)劃與預測

    作者:禪與計算機程序設計藝術 云計算是當前IT領域的一個熱門詞匯,特別是在互聯(lián)網公司崛起、移動互聯(lián)網蓬勃發(fā)展的當下,云計算帶動了大數(shù)據(jù)、機器學習、人工智能等新興技術的迅速發(fā)展。隨著云計算的不斷發(fā)展,各種云產品的出現(xiàn)也促使越來越多的企業(yè)轉向或考慮云

    2024年02月08日
    瀏覽(35)
  • 云計算:從基礎架構原理到最佳實踐之:云計算容器編排與管理

    作者:禪與計算機程序設計藝術 云計算作為一種新型的信息技術服務已經得到越來越多人們的關注。云計算主要通過利用網絡將分布在不同地域的數(shù)據(jù)中心、服務器、存儲設備和應用資源集合起來,并提供給用戶高度可靠、高效的服務。云計算的概念從2006年由美國計算機科

    2024年02月04日
    瀏覽(26)
  • 云計算:從基礎架構原理到最佳實踐之:云計算備份與災難恢復

    作者:禪與計算機程序設計藝術 云計算正在快速發(fā)展,其帶來的新興模式、技術與工具層出不窮。隨著云計算平臺規(guī)模擴大,越來越多的公司開始采用云計算提供的服務,例如數(shù)據(jù)庫服務、容器服務等。這些云服務由底層的基礎設施提供支持,用戶只需關注業(yè)務邏輯開發(fā),就

    2024年02月08日
    瀏覽(28)
  • 云計算:從基礎架構原理到最佳實踐之:云計算服務模型與部署

    作者:禪與計算機程序設計藝術 云計算(Cloud Computing)是一種新興的基于網絡的計算服務方式,它利用廉價、靈活的服務器資源池,向用戶提供計算平臺、存儲、數(shù)據(jù)庫、應用開發(fā)等多種服務。云計算的出現(xiàn)使得服務提供商不再依賴于本地服務器,大幅度降低了成本、提升了

    2024年02月04日
    瀏覽(32)
  • 云計算:從基礎架構原理到最佳實踐之:云計算概述與發(fā)展歷程

    作者:禪與計算機程序設計藝術 隨著信息技術的不斷發(fā)展,在國際化進程中,越來越多的人們開始把注意力轉移到了云計算這個新興領域,而這一熱門技術也帶動了一些新的變化。由于云計算的快速發(fā)展和普及,使得許多IT企業(yè)和開發(fā)者都開始關注其背后的技術細節(jié)。因此,

    2024年02月08日
    瀏覽(33)
  • 云計算:從基礎架構原理到最佳實踐之:云計算數(shù)據(jù)隱私與合規(guī)

    作者:禪與計算機程序設計藝術 隨著互聯(lián)網的飛速發(fā)展,云計算技術成為服務業(yè)不可或缺的一部分?;谠朴嬎愕母黝悜靡殉蔀槠占暗默F(xiàn)象,并且在各行各業(yè)中廣泛流傳。作為行業(yè)內知名企業(yè)之一,國內外云服務平臺都紛紛推出了各自的解決方案。然而,安全、合規(guī)等方面

    2024年02月08日
    瀏覽(26)
  • TCP的十個核心機制

    TCP的十個核心機制

    TCP協(xié)議是傳輸層的重點協(xié)議, 負責將數(shù)據(jù)從發(fā)送端傳輸?shù)浇邮斩? TCP協(xié)議是傳輸控制協(xié)議, 顧名思義也就是對數(shù)據(jù)的傳輸進行控制的協(xié)議. TCP 協(xié)議有很多, 我們今天就介紹其最重要的十個核心機制, 即 : 確認應答 超時重傳 連接管理 滑動窗口 流量控制 擁塞控制 延遲應答 捎帶應

    2024年02月10日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包