過去在很長一段時(shí)間中,基礎(chǔ)架構(gòu)的安裝、配置、維護(hù)等相關(guān)的工作都需要手動(dòng)完成,需要IT團(tuán)隊(duì)中的許多人都參與其中,手工過程存在很大的人為錯(cuò)誤風(fēng)險(xiǎn),導(dǎo)致應(yīng)用程序可用性,安全性和性能不佳。隨著DevOps的崛起,讓基礎(chǔ)架構(gòu)的自動(dòng)化成為了可能?,F(xiàn)在,有多種工具可以執(zhí)行基礎(chǔ)結(jié)構(gòu)的創(chuàng)建、部署、管理任務(wù)。通過這些工具,IT團(tuán)隊(duì)可以在低人力的情況下自動(dòng)化整個(gè)基礎(chǔ)架構(gòu)。包括配置基礎(chǔ)結(jié)構(gòu)和應(yīng)用程序設(shè)置等復(fù)雜任務(wù)。
基礎(chǔ)架構(gòu)自動(dòng)化是使用IaC(基礎(chǔ)架構(gòu)即代碼)部署硬件/軟件組件,操作系統(tǒng),網(wǎng)絡(luò)組件,數(shù)據(jù)存儲(chǔ)組件的過程。這個(gè)過程中,只有但編寫需要的代碼時(shí)才需要人工干預(yù),這些代碼具有創(chuàng)建和部署必要組件的所有細(xì)節(jié)。那么,被業(yè)界廣泛使用的基礎(chǔ)架構(gòu)自動(dòng)化工具有哪些呢?
Ansible
Ansible是開源的無代理引擎,可自動(dòng)執(zhí)行應(yīng)用程序部署、配置管理和IT編排,用Python編寫。為了實(shí)現(xiàn)所有自動(dòng)化,Ansible使用了playbook,其中所有配置都以可讀的語言YAML編寫。
Ansible具有無代理架構(gòu),無需在所有服務(wù)器上單獨(dú)安裝任何軟件。它遵循基于推送的模型,在模型中,需要具有所有必需配置的本地系統(tǒng),并將這些配置推送到目標(biāo)服務(wù)器。
Ansible的功能包括:使用簡單易讀的語言進(jìn)行自動(dòng)化;無代理架構(gòu),可以通過簡單的SSH連接到服務(wù)器;推送模型將配置從你操作的本地計(jì)算機(jī)推送到服務(wù)器;基于Python構(gòu)建,因此它支持許多python庫和功能等等。
所以,Ansible技能對于系統(tǒng)管理員,開發(fā)者,基礎(chǔ)架構(gòu)工程師非常有用。
SaltStack
SaltStack可以快速執(zhí)行基礎(chǔ)架構(gòu)管理、配置和編排。與Chef和Puppet等其他類似工具相比,SaltStack的速度是它的最大優(yōu)勢。就像Ansible一樣,它也是用Python編寫的。
它具有主從結(jié)構(gòu),其中Salt Master是管理所有內(nèi)容的主守護(hù)程序,Salt Minions是安裝在每個(gè)受管系統(tǒng)上以執(zhí)行Salt Master發(fā)送的指令的從守護(hù)程序。Salt Master將必要的配置和命令發(fā)送到Salt Minions,Salt Minions在其計(jì)算機(jī)上執(zhí)行它們以應(yīng)用所有IT自動(dòng)化。
SaltStack功能包括:專為規(guī)模和速度而設(shè)計(jì),每個(gè)master最多可以處理10000個(gè)minions;設(shè)置非常簡單,具有單個(gè)遠(yuǎn)程執(zhí)行體系架構(gòu);SaltStack中的配置文件支持各種語言;它可以在遠(yuǎn)程系統(tǒng)上并行執(zhí)行命令,這有助于快速應(yīng)用自動(dòng)化;提供使用Python API的簡單編程接口。
Chef
在生產(chǎn)環(huán)境中,有時(shí)故障的原因之一是應(yīng)用程序不一致或基礎(chǔ)設(shè)施配置不一致。而Chef能夠有效解決這類問題。
Chef是用于管理基礎(chǔ)架構(gòu)的配置管理工具。它是用Ruby編寫的。Chef作為基礎(chǔ)架構(gòu)管理產(chǎn)品使每個(gè)環(huán)境與基礎(chǔ)架構(gòu)中的相同配置保持一致。它提供各種工具,例如Chef Infra,Chef Automate,Chef Enterprise和Chef Community,用于基礎(chǔ)架構(gòu)管理。
Chef基礎(chǔ)架構(gòu)管理功能有:配置以YAML編寫,易于學(xué)習(xí);它帶有多種開發(fā)工具,用于編寫配置,測試和依賴性解析;企業(yè)版中的輕松協(xié)作功能可輕松處理復(fù)雜的環(huán)境;支持與數(shù)百種DevOps工具集成,例如GitHub,Jenkins等等。
Bolt
Bolt是Puppet的開源項(xiàng)目之一。它是用于IT自動(dòng)化的無代理編排工具。使用Bolt,可以自動(dòng)執(zhí)行所有手動(dòng)任務(wù)。如部署應(yīng)用程序,對服務(wù)器進(jìn)行故障排除,停止重新啟動(dòng)服務(wù),修補(bǔ)和更新系統(tǒng)等任務(wù)。
由于Bolt是無代理的,因此無需在遠(yuǎn)程目標(biāo)計(jì)算機(jī)上安裝任何代理軟件。需要在本地系統(tǒng)上安裝Bolt,然后才能使用SSH或WinRM連接遠(yuǎn)程目標(biāo)系統(tǒng)。
bolt功能包括:在YAML中編寫bolt計(jì)劃(命令,腳本和任務(wù)的組合),易于使用和學(xué)習(xí);Puppet Forge(模塊庫)提供了許多現(xiàn)有的計(jì)劃和工作流程;輕松將你的自動(dòng)化從Bolt遷移到Puppet Enterprise,以實(shí)現(xiàn)更好的可伸縮性。
Terraform
Terraform是一種開源基礎(chǔ)架構(gòu)調(diào)配工具,用于使用基礎(chǔ)架構(gòu)即代碼(IaC)創(chuàng)建和部署基礎(chǔ)架構(gòu)。
Terraform與AWS,Azure,GCP,阿里云等云提供商的配合非常好。你可以輕松使用Terraform在任何這些云提供商上部署和管理基礎(chǔ)架構(gòu)。當(dāng)前,terraform被許多組織廣泛用于管理其Kubernetes集群。
Terraform的優(yōu)勢包括:輕松管理不可變基礎(chǔ)架構(gòu)的配置;可以完成基礎(chǔ)架構(gòu)的完整編排,而不僅僅是配置管理;使用易于理解的HashiCorp配置語言(HCL);通過terraform注冊表為數(shù)百種工具和技術(shù)提供現(xiàn)成的模塊和提供程序。
結(jié)論
以上這5款工具適合中型企業(yè)實(shí)現(xiàn)基礎(chǔ)架構(gòu)的自動(dòng)化。如果要進(jìn)入DevOps,并希望自動(dòng)化基礎(chǔ)架構(gòu)以及其中涉及的單調(diào)任務(wù),那么選擇他們是開啟基礎(chǔ)架構(gòu)自動(dòng)化的良機(jī)。
責(zé)編AJX
-
自動(dòng)化
+關(guān)注
關(guān)注
29文章
5562瀏覽量
79239 -
企業(yè)
+關(guān)注
關(guān)注
0文章
215瀏覽量
22833 -
工具
+關(guān)注
關(guān)注
4文章
311瀏覽量
27770
發(fā)布評論請先 登錄
相關(guān)推薦
評論