轉(zhuǎn)帖|行業(yè)資訊|編輯:王香|2017-04-12 11:20:40.000|閱讀 1055 次
概述:私有云是一個(gè)由許多硬件和軟件組件組成的復(fù)雜系統(tǒng)。對(duì)于任何支持的企業(yè)組織,操作流程的自動(dòng)化和文檔記錄、規(guī)劃變更以及跟蹤應(yīng)用的更新都是強(qiáng)制性的要求。在可維護(hù)性,可靠性,效率和安全性方面,DevOps為私有云在改進(jìn)操作流程方面發(fā)揮著重要的作用。在這篇文章中,我們將在幾個(gè)類別中討論15個(gè)針對(duì)私有云的DevOps工具。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
配置管理工具(Configuration management tools)
Chef 的配置文件使用領(lǐng)域?qū)S谜Z(yǔ)言(DSL)的“配方”(以.rb 為文件擴(kuò)展名)。多個(gè)配方也可以整合到一個(gè)菜譜(cookbook)中。該配方定義了資源及其狀態(tài),例如:應(yīng)該安裝的軟件包,該文件應(yīng)存在,服務(wù)應(yīng)該運(yùn)行,等等。Chef驗(yàn)證所有定義的資源是否應(yīng)具有指定的狀態(tài),如果必要,任何資源的實(shí)際狀態(tài)如果與指定的狀態(tài)不同,那么則應(yīng)用更改。這允許你寫冪等的配方,意味著你可以多次應(yīng)用相同的配方,如果所有定義的資源都具有指定的狀態(tài),那么Chef 將不會(huì)更改任何內(nèi)容。Chef可以在 服務(wù)器/客戶端 模式中使用,也可在獨(dú)立的模式下運(yùn)行。在任何情況下,Chef 應(yīng)安裝要配置的節(jié)點(diǎn)或VM上。
Chef 客戶端是用Ruby語(yǔ)言編寫的,Chef 服務(wù)器是用Ruby 和Erlang語(yǔ)言編寫的。許可:2.7版本以后的使用 Apache License,之前版本使用 GNU General Public License。
Chef 菜譜的示例:
include_recipe "apt" package 'nginx' do action :install end service 'nginx' do action [ :enable, :start ] end
Puppet 的配置文件使用特殊的領(lǐng)域?qū)S谜Z(yǔ)言,它們被稱為Puppet 清單(以.pp 為文件擴(kuò)展名)。Puppet 可以使用獨(dú)立的模式或者 服務(wù)器/客戶端 模式。Puppet 客戶端(agent)應(yīng)該安裝要配置的每個(gè)節(jié)點(diǎn)或VM上。Puppet客戶端 通過(guò)一個(gè)名為Facter的工具收集Puppet服務(wù)器上的配置更改要求,并生成特定與服務(wù)器的目錄,其應(yīng)用的配置更改都會(huì)記錄下來(lái),Puppet 可以用來(lái)配置 類unix系統(tǒng)或 Windows節(jié)點(diǎn)/虛擬機(jī)。
Puppet 是用Ruby 語(yǔ)言編寫。許可:Apache License.
Puppet 清單 的示例:
service { 'nginx': ensure => running, enable => true, }
Absible 使用 模塊(Modules)來(lái)定義配置任務(wù)。模塊可以用標(biāo)準(zhǔn)腳本語(yǔ)言(Python,Bash,Ruby,等等)編寫,這是一個(gè)很好的做法,使每個(gè)模塊冪等。Ansible劇本(YAML語(yǔ)言編寫)角色映射到 節(jié)點(diǎn)/虛擬機(jī)上,以對(duì)這些節(jié)點(diǎn)/虛擬機(jī) 進(jìn)行編排有序的執(zhí)行。Ansible支持ad-hoc任務(wù):管理任務(wù)(不必冪等)以在多個(gè)節(jié)點(diǎn)/虛擬機(jī)上執(zhí)行。Ansible具有無(wú)代理架構(gòu):你不需要在配置的節(jié)點(diǎn)/虛擬機(jī)上安裝Ansible(然而,這些節(jié)點(diǎn)必須安裝python環(huán)境),Ansible 通過(guò)SSH或者通過(guò)PowerShell(Windows機(jī)器)從單個(gè)控制機(jī)器上配置管理節(jié)點(diǎn)/虛擬機(jī),并且能夠支持并行配置多個(gè)節(jié)點(diǎn)。Ansible 可以用來(lái)配置 類unix系統(tǒng)或 Windows節(jié)點(diǎn)/虛擬機(jī)。
Ansible 使用Python 語(yǔ)言編寫。許可:GNU General Public License.
Ansible playbook 示例:
- name: Install nginx yum: name=nginx state=present- name: restart nginx service: name=nginx state=restarted enabled=yes
Salt(又叫SaltStack)同時(shí)支持服務(wù)器/客戶端 和無(wú)代理模式。在后一種情況下,Salt 使用SSH連接到受管理的節(jié)點(diǎn)/虛擬機(jī)。Salt 使用以Python編寫的執(zhí)行模塊,其中包含函數(shù)以定義配置任務(wù)。另外 Salt 支持ad-hoc 命令。Salt 狀態(tài)文件(以.sls 為文件擴(kuò)展名)以YAML格式定義冪等任務(wù)。
Salt 使用Python 語(yǔ)言編寫。許可:Apache License.
Salt 狀態(tài)描述文件示例:
nginx: pkg.installed
裸機(jī)配置工具(Bare-metal provisioning tools)
Cobbler使用 DHCP服務(wù)器來(lái)處理引導(dǎo)服務(wù)器并將其引導(dǎo)到TFTP服務(wù)器,在那里它可以下載作為PXE引導(dǎo)文件和帶有操作系統(tǒng)的可引導(dǎo)映像。然后 Cobbler使用Linux的 Kickstart(用于基于Red Hat的操作系統(tǒng))或Pressed(用于基于Debian的操作系統(tǒng))安裝方法進(jìn)行無(wú)人值守的操作系統(tǒng)安裝和配置。由配置文件來(lái)自定義要配置的系統(tǒng),Cobbler支持多個(gè)配置文件。一旦節(jié)點(diǎn)被配置,Cobbler應(yīng)確保該節(jié)點(diǎn)被引導(dǎo)到預(yù)配置的操作系統(tǒng)而不是PXE。Cobbler包含 命令行客戶端和Web客戶端。
Cobbler 使用Python語(yǔ)言編寫。許可:GNU General Public License.
Ironic 是一個(gè)OpenStack項(xiàng)目,它使用PXE配置裸機(jī)服務(wù)器和 IPMI以打開(kāi)/關(guān)閉機(jī)器。Ironic 包含Ansible Playbooks(bifrost項(xiàng)目),以獨(dú)立模式安裝和運(yùn)行Ironic,無(wú)需其它OpenStack 組件。Ironic還包含命令行客戶端和Web客戶端。
Ironic 使用Python 語(yǔ)言編寫。License: GNU Affero General Public License
編排工具(Orchestration tools)
MCollective 是構(gòu)建服務(wù)器編排和并行工作執(zhí)行系統(tǒng)的框架,而不是一個(gè)工具。MCollective 支持分散庫(kù)存和自動(dòng)發(fā)現(xiàn)。MCollective 服務(wù)端 應(yīng)安裝在 被管理節(jié)點(diǎn)/虛擬機(jī),而MCollective 客戶端應(yīng)安裝在控制機(jī)上。MCollective使用代理插件來(lái)擴(kuò)展其功能。MCollective 服務(wù)器和客戶端不直接通信,而是在發(fā)布/訂閱模式中使用中間件系統(tǒng)(通常是RabbitMQ)。這允許MCollective客戶端向 MCollective 服務(wù)器發(fā)送廣播請(qǐng)求,也支持直接請(qǐng)求/回復(fù)。
MCollective 使用Ruby語(yǔ)言編寫. 許可: Apache License
Juju允許你將復(fù)雜的應(yīng)用程序部署到多個(gè)云平臺(tái)和裸機(jī)服務(wù)器上。Juju使用charms來(lái)定義代理的行為,charm hooks是要執(zhí)行的實(shí)際任務(wù)(如:安裝軟件,啟動(dòng)或停止服務(wù)等)。Charms 還定義了與其它c(diǎn)harms 的關(guān)系。Charm hooks 可以用任何語(yǔ)言來(lái)實(shí)現(xiàn)。還有配置管理工具,如Ansible,Chef,Puppet 可以在hook里面做服務(wù)器配置管理。Charm bundle 允許你將一組charms,它們的屬性和關(guān)系導(dǎo)出到Y(jié)AML文件中。然后,這個(gè) bundle可以導(dǎo)入到另一個(gè)Juju環(huán)境中,以準(zhǔn)確的部署已部署的應(yīng)用程序。Juju包含 命令行客戶端和web客戶端。
Juju 使用Go語(yǔ)言編寫。許可:GNU Affero General Public License, GNU Lesser General Public License.
Apache Brooklyn 允許你使用基于策略的自動(dòng)化來(lái)建模,監(jiān)控和管理應(yīng)用程序。對(duì)于建模,Apache Brooklyn 使用藍(lán)圖(blueprint)的概念,它根據(jù)組件、配置、關(guān)系和部署場(chǎng)景來(lái)定義應(yīng)用程序。藍(lán)圖使用YAML文件編寫。Apache Brooklyn支持許多應(yīng)用程序,開(kāi)箱即用。并具有Web UI來(lái)部署,監(jiān)視和管理應(yīng)用程序。此外,Apache Brooklyn支持許多位置部署,包括云平臺(tái)和現(xiàn)有節(jié)點(diǎn)。相同的藍(lán)圖可以用于將應(yīng)用程序部署到不同的位置。Policies 根據(jù)應(yīng)用程序傳感器的讀數(shù)定義對(duì)應(yīng)用程序的無(wú)人值守更改。
Apache Brooklyn 使用Java, Javascript, Groovy語(yǔ)言編寫. 許可: Apache License.
Cloudify 允許你在YAML文件中定義應(yīng)用程序配置、服務(wù)和依賴關(guān)系。這樣的文件稱為藍(lán)圖.Cloudify 采用藍(lán)圖作為輸入,可以部署和管理應(yīng)用程序。Cloudify 支持多種云計(jì)算平臺(tái)和虛擬化環(huán)境。藍(lán)圖還定義了應(yīng)用程序的生命周期。對(duì)于應(yīng)用程序部署階段,Cloudify支持配置管理工具,如Chef和Puppet。
Cloudify 使用Python 語(yǔ)言編寫。許可:Apache License.
Docker Machine 是一個(gè)工具,它允許你在提供的節(jié)點(diǎn)上安裝Docker(見(jiàn)下文),之后可以遠(yuǎn)程的管理這樣的節(jié)點(diǎn)。
Docker Machine 使用Go語(yǔ)言編寫。許可:Apache License.
持續(xù)集成工具 (Continuous integration tools)
Jenkins
Jenkins 是一個(gè)具有許多插件的自動(dòng)化服務(wù)器。用于構(gòu)建,測(cè)試和自動(dòng)化部署應(yīng)用程序。通常Jenkins用作軟件開(kāi)發(fā)的CI/CD工具。Jenkins 的作業(yè)(構(gòu)建)可以由各種觸發(fā)器啟動(dòng)。例如提交代碼到版本控制系統(tǒng),按計(jì)劃事件,通過(guò)訪問(wèn)特定URL構(gòu)建或者在完成其它構(gòu)建之后進(jìn)行觸發(fā)。
Jenkins 使用Java 語(yǔ)言編寫. 許可: MIT License.
Docker 允許你將具有所有依賴關(guān)系的應(yīng)用程序軟件打包到容器中,這可以很輕松的部署在基于Linux的平臺(tái)上。在非Linux 平臺(tái)上Docker使用一個(gè)虛擬機(jī)來(lái)運(yùn)行容器。
Docker 使用Go 語(yǔ)言編寫。 許可:Apache License 2.0
監(jiān)控和日志記錄(Monitoring and logging)
Zabbix
Zabbix是一個(gè)為應(yīng)用服務(wù),網(wǎng)絡(luò)服務(wù)和硬件監(jiān)控提供的解決方案。Zabbix 將收集的數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中,如MySQL,PostgreSQL等。Zabbix 允許你監(jiān)控簡(jiǎn)單的服務(wù),如HTTP服務(wù)。Zabbix agent端可以安裝在Windows和 類Unix服務(wù)器上,用來(lái)檢視系統(tǒng)參數(shù),如CPU 負(fù)載,內(nèi)存和磁盤利用率等。另外,agent可用于監(jiān)視標(biāo)準(zhǔn)服務(wù)和自定義應(yīng)用程序。Zabbix也支持通過(guò)SNMP、SSH等方式,無(wú)需在要監(jiān)視的服務(wù)器上安裝代理。
Zabbix 使用C, PHP,Java 語(yǔ)言編寫. 許可: GNU General Public License version 2.
ELK 是Elasticsearch,Logstash,Kibana軟件的組合,它是用于記錄,日志分析,日志搜索和可視化的完整工具。Elasticsearch是基于Apache Lucene的搜索工具。Logstash是用于收集,解析和存儲(chǔ)日志的工具,可以通過(guò)Elasticsearch對(duì)其進(jìn)行索引。Logstash 支持許多數(shù)據(jù)源,解析器和過(guò)濾器。Logstash通常與Lumberjack(一種工具)結(jié)合使用。該工具提供其 syslog實(shí)現(xiàn),并可將本地日志事件轉(zhuǎn)發(fā)到Logstash中。當(dāng)通過(guò)網(wǎng)絡(luò)發(fā)送日志時(shí),Lumberjack使用SSL對(duì)日志進(jìn)行加密。Logstash 和Elastcsearch都支持 HA配置,沒(méi)有單點(diǎn)故障,以確保所有日志都存儲(chǔ)在遠(yuǎn)程。Kibana 是Elasticsearch的可視化插件。
Elasticsearch, Logstash 使用Java 編寫. Kibana 使用JavaScript 編寫. Lumberjack 使用C語(yǔ)言編寫. License: Apache License 2.0.
以上就是今天給大家介紹的DevOps 開(kāi)源工具,鑒于強(qiáng)大的功能和貢獻(xiàn),DevOps正在更多地被人們關(guān)注,希望以上內(nèi)容能夠?qū)δ阌兴鶐椭?/p>
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn