自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

七種自動(dòng)化的基礎(chǔ)架構(gòu)即代碼工具

譯文
開發(fā) 開發(fā)工具 架構(gòu) 自動(dòng)化
自動(dòng)化是DevOps開發(fā)的重要標(biāo)志之一。本文介紹七種有助于企業(yè)自動(dòng)構(gòu)建業(yè)務(wù)流程與關(guān)鍵環(huán)境的IaC工具。

【51CTO.com快譯】自從十多年前被創(chuàng)建以來,基礎(chǔ)架構(gòu)即代碼(Infrastructure-as-Code,IaC)一直在改變著各個(gè)企業(yè)IT架構(gòu)的設(shè)置與管理方式。過去對(duì)于IT人員而言,構(gòu)建新的基礎(chǔ)架構(gòu),就意味著在某個(gè)功能強(qiáng)大的數(shù)據(jù)中心內(nèi)部,堆疊各種物理服務(wù)器、配置不同的網(wǎng)絡(luò)線纜、以及添置各類硬件設(shè)備。

如今單靠軟件配置,我們就可以創(chuàng)建出更高性能、更具成本效益、且更安全的基礎(chǔ)架構(gòu)了。此外,相對(duì)于過去需要幾天才能跑完的傳統(tǒng)變更管理流程,如今企業(yè)可以通過采用一致性的變更與配置流程,幫助其團(tuán)隊(duì)在幾分鐘之內(nèi),就能推出通過充分驗(yàn)證的、且無人值守的全新流程。

如今,IaC能夠從源代碼、而不是從手工配置的角度,為開發(fā)人員提供豐富的云端服務(wù)、以及IT基礎(chǔ)架構(gòu)的相關(guān)工具。在IaC中,我們可以將服務(wù)器、網(wǎng)絡(luò)和數(shù)據(jù)庫等云端元素視為不同的軟件資源,進(jìn)而實(shí)現(xiàn)完全自動(dòng)化的配置。

有了這種將基礎(chǔ)架構(gòu)視為軟件與數(shù)據(jù)的處理方式,企業(yè)開發(fā)團(tuán)隊(duì)便可以進(jìn)行一系列的DevOps與敏捷(Agile)實(shí)踐,并在技術(shù)價(jià)值流(technology value stream)中推動(dòng)快速且高質(zhì)量的工作流程。其中,我們可以參考和利用的實(shí)踐包括:持續(xù)集成(CI)、持續(xù)交付(CD)和測(cè)試驅(qū)動(dòng)開發(fā)(test-driven development,TDD)等。與此同時(shí),企業(yè)也可以通過優(yōu)化部署編排(orchestration)、自動(dòng)化測(cè)試庫、以及使用版本控制系統(tǒng)(version control systems,VCS),來增強(qiáng)其現(xiàn)有系統(tǒng)的統(tǒng)一性和容錯(cuò)能力。

可見,在不斷的實(shí)踐與快速發(fā)展中,IaC通過各種自動(dòng)化工具,讓企業(yè)的各種業(yè)務(wù)流程與關(guān)鍵環(huán)境更加容易實(shí)現(xiàn)與落地。下面,讓我們細(xì)數(shù)七種能夠提供此類自動(dòng)化工具的云端平臺(tái)吧。

[[262546]]

1.AWS CloudFormation

該集成式的AWS服務(wù)是專為那些在AWS云中工作的用戶而設(shè)計(jì)的。憑借著在云端環(huán)境中的市場(chǎng)占有率,AWS CloudFormation有著超過350,000名開發(fā)用戶。目前,它已經(jīng)成功配置了342種AWS資源類型。

CloudFormation允許用戶方便地在JSON(請(qǐng)參見https://s3-us-west-2.amazonaws.com/cloudformation-templates-us-west-2/WordPress_Single_Instance.template)或YAML(請(qǐng)參見https://s3-us-west-2.amazonaws.com/cloudformation-templates-us-west-2/WordPress_Single_Instance.yaml)模板文件中,通過它所提供的各種模板,來構(gòu)建不同復(fù)雜程度的安全基礎(chǔ)架構(gòu)模型。與此同時(shí),該服務(wù)也能通過自動(dòng)化的功能,以可重復(fù)、可管理的方式幫助用戶部署手頭上的各種資源。而且,您只需要對(duì)所使用的資源,而不是服務(wù)本身支付費(fèi)用。因此,您只需要根據(jù)自己的應(yīng)用規(guī)范,配置相應(yīng)的模板,CloudFormation就能為您處理其余的任務(wù)。

AWS CloudFormation的參考文檔鏈接為:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/GettingStarted.Walkthrough.html

[[262547]]

2.Azure Resource Manager

作為競(jìng)品,Microsoft為用戶提供的IaC工具是:Azure Resource Manager。用戶可以通過Azure Resource Manager(ARM)的不同模板,在無縫的周期內(nèi),配置出自己的基礎(chǔ)架構(gòu)、并處理各種依賴項(xiàng)。您既可以在模板中使用那些已在JSON中聲明描述了的資源,也可以在同一個(gè)ARM模板中聲明多個(gè)Azure資源,以構(gòu)建整體性的項(xiàng)目環(huán)境。

由于ARM模板具有冪等性(idempotent),因此您可以不限次數(shù)地重復(fù)使用相同的模板,并獲得相同的結(jié)果。同時(shí),您也可以使用VSTS(譯者注:Visual Studio Team System,Microsoft開發(fā)的一套生命周期開發(fā)工具)儀表板,以可視化的方式監(jiān)控所有的構(gòu)建與發(fā)布,并快速地了解到云端環(huán)境的整體運(yùn)行狀況與模板質(zhì)量。此外,Resource Manager還支持服務(wù)器的實(shí)例分組、以及對(duì)不同分組的統(tǒng)一管理。

Azure Resource Manager的參考文檔鏈接為:https://docs.microsoft.com/en-us/azure/azure-resource-manager/。

[[262548]]

3.Google Cloud Deployment Manager

顧名思義,Google Cloud Deployment Manager(CDM)是基于Google云平臺(tái)的配置文件(YAML)和模板(JINJA2或PYTHON)的一種自動(dòng)化執(zhí)行工具。它允許用戶自行定義和同步部署各種系統(tǒng)資源。在其Beta和Alpha版的特征中,用戶還可以使用到自動(dòng)擴(kuò)展與負(fù)載均衡等功能,來編寫所有的部署腳本。

同時(shí),Google CDM也支持預(yù)覽功能。這意味著:您在不直接提交更改的情況下,便可以直接了解到部署和變更所帶來的影響。該功能不僅可以幫助用戶避免出現(xiàn)人為的錯(cuò)誤,而且能夠起到加強(qiáng)與穩(wěn)定整體基礎(chǔ)架構(gòu)的作用。

GCDM的參考文檔鏈接為:https://cloud.google.com/deployment-manager/。

4.Terraform

上述三種IaC工具都是為特定的云環(huán)境所設(shè)計(jì)的,而Terraform并非如此。它不僅是冪等的,而且是多種云端環(huán)境中的“瑞士軍刀”。由HashiCorp開發(fā)的(該公司同樣開發(fā)出了Vault和Nomad)Terraform獨(dú)立于任何云端平臺(tái)。它能夠幫助用戶輕松地處理,那些具有復(fù)雜分布式應(yīng)用的大型基礎(chǔ)架構(gòu)。

憑借著其靈活性,Terraform的自動(dòng)化具有多種表現(xiàn)形式,并且主要服務(wù)于核心規(guī)劃與應(yīng)用周期。一些團(tuán)隊(duì)雖然選擇了在本地運(yùn)行Terraform,但是他們會(huì)使用各種包裝腳本(wrapper scripts)為Terraform的運(yùn)行設(shè)置一致性的工作目錄。而其他的開發(fā)團(tuán)隊(duì),則可能會(huì)在諸如Jenkins之類的備用編排工具中,去運(yùn)行Terraform。

與Google CDM類似,Terraform也支持對(duì)于變更和配置的預(yù)覽。同時(shí),用戶還能夠是用它來復(fù)制各種現(xiàn)有的部署、以及單個(gè)服務(wù)器的實(shí)例。此外,Terraform還深化了其版本控制和遠(yuǎn)程狀態(tài)管理服務(wù),能夠?yàn)檫h(yuǎn)程團(tuán)隊(duì)的協(xié)作,提供集中式的真實(shí)信息來源。

Terraform的參考文檔鏈接為:https://learn.hashicorp.com/terraform/

5.Chef

Chef是一款備受CI/CD人員歡迎的IaC工具。它的優(yōu)勢(shì)在于使用了基于Ruby的領(lǐng)域特定語言(Domain Specific Language,DSL)。它可以通過特有的Cookbook式版本控制,來維持用戶配置的一致性,從而保證了基礎(chǔ)架構(gòu)能夠跟上,其托管應(yīng)用的快速增長(zhǎng)。

Chef通過在其核心配置中封裝了各種模板與模板集合,以滿足用戶的開箱即用需求。其中,一個(gè)Cookbook(一種模板)僅對(duì)應(yīng)一種任務(wù)。它能夠基于所涉及到的資源,提供不同的服務(wù)器配置。例如,某個(gè)帶有數(shù)據(jù)庫的Web應(yīng)用程序可以擁有兩個(gè)recipes(另一種模板),它們共同實(shí)現(xiàn)存儲(chǔ)任務(wù)。由于支持那些為云平臺(tái)專配的API,因此Chef還能夠很好地與其他IaC工具(包括Terraform、以及其他多種云端環(huán)境)配合使用。

Chef的參考文檔鏈接為:https://docs.chef.io/quick_start.html。

6.Ansible

Chef雖然是大多數(shù)人的選擇,但是對(duì)于Red Hat環(huán)境中的用戶而言,他們更喜歡使用Ansible。以自動(dòng)化為設(shè)計(jì)初衷的Ansible,專注于提供極其簡(jiǎn)化的配置語言,以及在無需修改的情況下管理各種云端實(shí)例。不僅限于特定的配置管理,Ansible也能很好地執(zhí)行諸如零宕機(jī)(非中斷)滾動(dòng)式更新、以及熱補(bǔ)丁(hotfixes)之類的任意IT編排。您不必像過去那樣,將系統(tǒng)作為某系孤立的單元進(jìn)行管理,而只需要清楚地描述出組件與系統(tǒng)之間的相互關(guān)系,Ansible便可幫您打理其余的部分。

作為一款靈活的IaC工具,您不僅可以使用由Ansible提供的既有功能,還能夠通過開發(fā)屬于自己的模塊和規(guī)則,來滿足各種特定的需求。當(dāng)然,Ansible也能夠提供友好的GUI設(shè)置和監(jiān)控功能。

Ansible的參考文檔鏈接為:https://www.ansible.com/resources/get-started。

7.Puppet

Puppet采用了更為全面的IaC設(shè)置和自動(dòng)化方法。目前,它正在通過各種先進(jìn)的接口技術(shù),為Reddit、Dell和Google等大型公司的數(shù)據(jù)中心、以及各種操作系統(tǒng)的運(yùn)行提供支持。作為一款老牌的工具,Puppet使用基于Ruby的DSL,來定義基礎(chǔ)架構(gòu)最終狀態(tài)。Puppet通過監(jiān)控基礎(chǔ)架構(gòu),來判斷是否出現(xiàn)了偏離既定狀態(tài)的變更,進(jìn)而自動(dòng)予以修正。另外,由于擁有大量的企業(yè)用戶和社區(qū)支持,因此它非常適合于系統(tǒng)管理人員來進(jìn)行功能性的開發(fā)。

Puppet的參考文檔鏈接為:https://learn.puppet.com/?_ga=2.121922253.792795342.1550743099-1090453039.1547698716&_gac=1.146748870.1549008273.Cj0KCQiA-c_iBRChARIsAGCOpB1vRaPt-ltx4_GiXxqHX7AaW5SnqQs9U6wzndUPPqoxrRg-AjhSgJUaAqVGEALw_wcB。

總結(jié)

綜上所述,您需要根據(jù)自己的個(gè)人偏好和特定需求,來選擇合適的自動(dòng)化IaC工具。此外,由于您勢(shì)必會(huì)需要花費(fèi)一定的時(shí)間去定義相關(guān)的內(nèi)容,因此您在選擇時(shí)也需要考慮到自己團(tuán)隊(duì)所使用的編程語言、團(tuán)隊(duì)之間的溝通、以及云端環(huán)境的一致性等問題。如果您有興趣深入閱讀的話,請(qǐng)參考《IaC的安全挑戰(zhàn)以及克服方法》一文。

原文標(biāo)題:The Top 7 Infrastructure-As-Code Tools For Automation,作者:Narendar Nallamala 

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2022-08-12 15:47:17

工具基礎(chǔ)架構(gòu)IT

2021-03-30 09:00:00

工具自動(dòng)化開發(fā)

2021-03-23 08:00:00

工具開發(fā)審查

2019-12-04 08:00:00

IT基礎(chǔ)架構(gòu)自動(dòng)化工具

2022-09-09 12:27:57

工具基礎(chǔ)設(shè)施IaC

2021-03-09 09:00:00

Python開發(fā)工具

2018-04-27 09:00:00

代碼合并工具開源

2010-03-15 15:55:00

Python開發(fā)工具

2022-05-27 15:19:38

架構(gòu)師溝通認(rèn)知

2023-08-27 18:49:06

2017-10-09 17:52:57

MySQL自動(dòng)化測(cè)試GitHub

2025-01-22 10:24:27

2018-09-30 10:00:23

Python編程語言代碼質(zhì)量

2019-12-11 11:54:37

IT工具云計(jì)算

2014-07-09 17:31:22

桌面虛擬化

2019-05-30 08:00:00

2015-11-24 09:33:55

2020-06-18 08:52:37

基礎(chǔ)架構(gòu)即代碼

2022-05-10 08:08:01

find命令Linux

2020-01-14 08:00:00

.NET緩存編程語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)