0
本文作者: AI研習(xí)社-譯站 | 2020-09-30 14:15 |
字幕組雙語(yǔ)原文:什么是Terraform?終極指南來(lái)了!
英語(yǔ)原文:Intro to Terraform
翻譯:雷鋒字幕組(Icarus、)
世界上最先進(jìn)的基礎(chǔ)設(shè)施配置系統(tǒng)。
什么是Terraform?你可能已經(jīng)無(wú)數(shù)次聽(tīng)說(shuō)過(guò)這個(gè)服務(wù),它是所有企業(yè)基礎(chǔ)設(shè)施配置系統(tǒng)的一站式服務(wù)。它是一個(gè)云基礎(chǔ)設(shè)施管理器嗎?也許它是一個(gè)云配置API?在這本快速簡(jiǎn)單的指南中,您將了解到關(guān)于Terraform的所有知識(shí)。請(qǐng)欣賞!
Terraform是您和云提供商API之間的一層。它使您能夠?qū)⒆詣?dòng)云配置提升到新的高度。Terraform可以幫助您將云基礎(chǔ)設(shè)施寫(xiě)成代碼。這意味著您可以準(zhǔn)確地定義您的應(yīng)用程序需要什么,Terraform將在云中遠(yuǎn)程配置這些資源。
首先,您將創(chuàng)建一個(gè).tf文件,列出您的應(yīng)用程序在云中的需求和您的首選云提供商(AWS、Azure、GCP等)。比方說(shuō),你包括一個(gè)SQL數(shù)據(jù)庫(kù)、虛擬機(jī)和網(wǎng)絡(luò)實(shí)例。
在您配置好您的應(yīng)用需求后,Terraform會(huì)根據(jù)您現(xiàn)有的云存在和您的.tf文件中的配置來(lái)規(guī)劃您的選擇。Terraform是需要在你的虛擬機(jī)和SQL數(shù)據(jù)庫(kù)之上提供一個(gè)網(wǎng)絡(luò)實(shí)例,還是需要?jiǎng)?chuàng)建所有的資源?
根據(jù)這個(gè)計(jì)劃,Terraform將使用云提供商的API和您的API令牌 "旋轉(zhuǎn)這些資源"(Vennam)。
Terraform將通過(guò)向您提供云供應(yīng)的相關(guān)信息來(lái)完成這一過(guò)程。這包括應(yīng)用程序的URL、訪問(wèn)令牌等。
您的項(xiàng)目是否需要使用Terraform?以下是Terraform在測(cè)試和生產(chǎn)環(huán)境中最常用的一些使用案例。
測(cè)試環(huán)境:對(duì)于使用開(kāi)發(fā)環(huán)境測(cè)試代碼的開(kāi)發(fā)人員來(lái)說(shuō),Terraform是一個(gè)可靠的選擇。它還能很好地與利用持續(xù)集成/持續(xù)開(kāi)發(fā)方法進(jìn)行測(cè)試并將其代碼部署到生產(chǎn)服務(wù)器的團(tuán)隊(duì)進(jìn)行整合。Terraform可以根據(jù)部署和交付情況自動(dòng)配置云資源。
分布式應(yīng)用:使用分布式系統(tǒng)設(shè)計(jì)的應(yīng)用通常需要按需提供云資源。將云中的基礎(chǔ)設(shè)施配置過(guò)程編碼化,可以節(jié)省人工配置系統(tǒng)的時(shí)間和資源。
多云部署:通常情況下,企業(yè)會(huì)將其云資源分布在不同的云提供商上。這允許從任何特定提供商的停機(jī)時(shí)間進(jìn)行精細(xì)的恢復(fù)。由于只針對(duì)一個(gè)提供商的工具能力有限,資源協(xié)調(diào)可能極具挑戰(zhàn)性。Terraform允許開(kāi)發(fā)人員以簡(jiǎn)單有效的方式管理多云設(shè)置,幫助降低應(yīng)用程序的復(fù)雜性。
使用Terraform通過(guò)一個(gè)接入點(diǎn)路由云服務(wù),自然而然地降低了應(yīng)用的復(fù)雜性。Terraform服務(wù)是您的應(yīng)用和云提供商提供的資源管理API之間的抽象層。使用Terraform提供了一種簡(jiǎn)單而統(tǒng)一的方式與云資源的后端進(jìn)行交互,節(jié)省了原本需要手動(dòng)協(xié)調(diào)云環(huán)境的時(shí)間。
在閱讀完Terraform文檔后,我們可以看到,定義和配置云資源就像創(chuàng)建一個(gè).tf文件并運(yùn)行三個(gè)命令一樣簡(jiǎn)單:terraform init ,terraform plan ,和terraform apply !
第一步,terraform init ,將使用項(xiàng)目目錄下的Terraform配置文件來(lái)初始化你的應(yīng)用程序。這些配置文件包含了你項(xiàng)目的需求。這可能包括一個(gè)MySQL數(shù)據(jù)庫(kù)甚至一個(gè)虛擬機(jī)實(shí)例。
在你定義了你的.tf文件并運(yùn)行第一個(gè)命令后,你將運(yùn)行terraform plan 。該操作將把您項(xiàng)目當(dāng)前的云基礎(chǔ)設(shè)施與您的.tf文件中定義的基礎(chǔ)設(shè)施進(jìn)行比較。根據(jù)您使用的現(xiàn)有云技術(shù)的數(shù)量,Terraform將提供新的服務(wù)。
這個(gè)過(guò)程的最后一步是terraform apply 。這條命令將執(zhí)行所有的資源配置,并將輸出直接提供給你的控制臺(tái)窗口。有了這最后一條命令,你就完成了為你的應(yīng)用創(chuàng)建云資源的工作!
雖然Terraform可以極大地幫助你管理項(xiàng)目的云資源,但有幾個(gè)缺點(diǎn)需要注意。
控制臺(tái)輸出: Terraform基礎(chǔ)設(shè)施配置的規(guī)劃階段往往在控制臺(tái)輸出中充滿了不必要的信息。這些無(wú)關(guān)緊要的輸出大多降低了您查看Terraform是否能夠成功配置資源的可見(jiàn)性。雖然大多數(shù)人都會(huì)對(duì)Terraform的這個(gè)方面感到滿意,但有些人可能會(huì)覺(jué)得這很礙眼,很難管理。
回滾處理: 由于Terraform中沒(méi)有回滾功能,不成功的配置可能會(huì)導(dǎo)致你的項(xiàng)目云基礎(chǔ)設(shè)施的 "半成品工作"。例如,如果Terraform在應(yīng)用階段中途停止了供應(yīng),它不會(huì)回滾創(chuàng)建任何先前供應(yīng)的資源。這可能會(huì)造成一個(gè)尷尬的局面,你必須手動(dòng)刪除所有的云基礎(chǔ)設(shè)施,并重新啟動(dòng)整個(gè)過(guò)程。
錯(cuò)誤處理:Terraform的錯(cuò)誤處理過(guò)程可能是不穩(wěn)定的。很多時(shí)候,你會(huì)發(fā)現(xiàn)自己因?yàn)橥ㄓ玫腻e(cuò)誤聲明而難以解決供應(yīng)會(huì)話不成功的根本問(wèn)題。當(dāng)您的云存在分布在多個(gè)供應(yīng)商時(shí),這可能是一個(gè)痛苦。幸運(yùn)的是,Terraform社區(qū)已經(jīng)非常成熟,因此您的問(wèn)題很有可能得到其他開(kāi)發(fā)者的解答。
雖然Terraform有一些令人印象深刻的功能,但同樣也有需要考慮的缺點(diǎn)。使用Terraform配置云資源的三個(gè)簡(jiǎn)單步驟,你的項(xiàng)目將是金子般的存在! 你認(rèn)為自己會(huì)將Terraform集成到你的項(xiàng)目中嗎?
雷鋒字幕組是一個(gè)由AI愛(ài)好者組成的翻譯團(tuán)隊(duì),匯聚五五多位志愿者的力量,分享最新的海外AI資訊,交流關(guān)于人工智能技術(shù)領(lǐng)域的行業(yè)轉(zhuǎn)變與技術(shù)創(chuàng)新的見(jiàn)解。
團(tuán)隊(duì)成員有大數(shù)據(jù)專家,算法工程師,圖像處理工程師,產(chǎn)品經(jīng)理,產(chǎn)品運(yùn)營(yíng),IT咨詢?nèi)?,在校師生;志愿者們?lái)自IBM,AVL,Adobe,阿里,百度等知名企業(yè),北大,清華,港大,中科院,南卡羅萊納大學(xué),早稻田大學(xué)等海內(nèi)外高校研究所。
如果,你也是位熱愛(ài)分享的AI愛(ài)好者。歡迎與雷鋒字幕組一起,學(xué)習(xí)新知,分享成長(zhǎng)。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。