google mysql 云计算 微软 apache wordpress centos Python php linux Firefox nginx Windows Ubuntu 开源 编程 shell 程序员 java Android

淺談開源工具自動化運維階段

前言

1
隨著各種業務對IT的依賴性漸重以及雲計算技術的普及,企業平均的IT基礎架構規模正不斷擴張。

 
3
有些Web 2.0企業可能會需要在兩個星期內增加上千臺服務器,因此對運維而言,通過手動來一個一個搭建的方法不僅麻煩、效率低下,而且非常不利於維護和擴展。
1
即使是在傳統的企業當中,日常的備份、服務器狀態監控和日誌,通過手動的方式來進行的效率也很低,是一種人力的浪費。因此,自動化早已是每個運維都必須掌握的看家本領。
1
在不同的企業中,自動化的規模、需求與實現方式都各不相同,因此在技術細節層面,運維之間很難將別的企業的方法整個套用過來。然而在很多情況下,自動化的思路是有共通之處的。
運維自動化前三階段

純手工階段:手工操作重復地進行軟件部署和運維;
腳本階段:通過編寫腳本、方便地進行軟件部署和運維;
工具階段:借助第三方工具高效、方便地進行軟件部署和運維。
1
這幾個階段是隨著運維知識、經驗、教訓不斷積累而不斷演進的。而且,第2個階段和第3個階段可以說是齊頭並進,Linux下的第三方工具雖說已經不少了,但是Linux下的腳本編寫對運維工作的促進作用是絕對不可以忽視的。
2
 
3
在DevOps出現之前,運維工作者在工作中還是以這兩種方式為主。
Linux下好用的開源工具

1、預備類工具:

Kickstart

1
kickstart安裝是redhat開創的按照你設計好的方式全自動安裝系統的方式。安裝方式可以分為光盤、硬盤、和網絡。
Cobbler

1
Cobbler是一個快速網絡安裝linux的服務,而且在經過調整也可以支持網絡安裝windows。該工具使用python開發,小巧輕便(才15k行代碼),使用簡單的命令即可完成PXE網絡安裝環境的配置,同時還可以管理DHCP,DNS,以及yum包鏡像。
OpenQRM

1
openQRM提供開放的插件管理架構,你可用很輕松的將現有的數據中心應用程序集成到其中,比如Nagios和VMware。openQRM的自動化數據中心操作不但可用幫助你提高可用性,同時還可以降低您企業級數據中心的管理費用。針對數據中心管理的開源平臺,針對設備的部署、監控等多個方面通過可插拔式架構實現自動化的目的,尤其面向雲計算/基於虛擬化的業務。
Spacewalk

1
Spacewalk可管理Fedora、紅帽、CentOS、SUSE與Debian Linux服務器。當你的數據中心擁有多臺Linux服務器時,手動管理將不再是一個好的選擇。Spacewalk就可以管理補丁、登錄、更新。
1
[b]在自動化運維和大數據雲計算時代實現預設自動化安裝服務器環境、應用環境等不僅可以提高運維效率,而且還能大大減少運維的工作任務及出錯概率。尤其是對於在服務器數量按幾百臺、幾千臺增加的公司而言,單單是裝系統,如果不通過自動化來完成,其工作量和周期不可想象。[/b]
2、配置管理類工具:

前浪:

Chef

1
Chef是一個系統集成框架,可以用Ruby等代碼完成服務器的管理配置並編寫自己的庫。
ControlTier

1
ControlTier是一個完全開放源碼系統的自動化服務管理活動的多個服務器和多個應用層(代碼,數據,配置和內容) 。共同使用的ControlTier包括部署應用程序,控制它們的狀態,並運行按需行政工作在多個服務器上。ControlTier是跨平臺和工程同樣的物理服務器,虛擬機,或雲計算基礎設施。
Func

1
Func是由紅帽子公司以Fedora統一網絡控制器Func,目的是為了解決這一系列統一管理監控問題而設計開發的系統管理基礎框架,它是一個能有效的簡化我們眾多服務器系統管理工作的工具,其具備容易學習,容易使用,更容易擴展;功能強大而且配置簡單等優點。
Puppet

1
puppet是一個開源的軟件自動化配置和部署工具,它使用簡單且功能強大,正得到了越來越多地關註,現在很多大型IT公司均在使用puppet對集群中的軟件進行管理和部署。
後浪

SaltStack

1
Salt一種全新的基礎設施管理方式,部署輕松,在幾分鐘內可運行起來,擴展性好,很容易管理上萬臺服務器,速度夠快,服務器之間秒級通訊。
Ansible

1
Ansible是新出現的運維工具是基於Python研發的糅合了眾多老牌運維工具的優點實現了批量操作系統配置、批量程序的部署、批量運行命令等功能。
1
[b]在進行大規模部署時,手工配置服務器環境是不現實的,這時必須借助於自動化部署工具。[/b]
3、監控類工具

Nagios

1
Nagios是一款免費的開源IT基礎設施監控系統,其功能強大,靈活性強,能有效監控 Windows 、Linux、VMware 和 Unix 主機狀態,交換機、路由器等網絡設置等。一旦主機或服務狀態出現異常時,會發出郵件或短信報警第一時間通知 IT 運營人員,在狀態恢復後發出正常的郵件或短信通知。
OpenNMS

1
OpenNMS是一個網絡管理應用平臺,可以自動識別網絡服務,事件管理與警報,性能測量等任務。
Cacti

1
Cacti是一套基於PHPmysql、SNMP及RRDTool開發的網絡流量監測圖形分析工具。它通過snmpget來獲取數據,使用 RRDtool繪畫圖形,它的界面非常漂亮,能讓你根本無需明白rrdtool的參數能輕易的繪出漂亮的圖形。而且你完全可以不需要了解RRDtool復雜的參數。它提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀結 構、host以及任何一張圖,還可以與LDAP結合進行用戶驗證,同時也能自己增加模板,讓你添加自己的snmp_query和script!功能非常強大完善,界面友好。
Zenoss Core

1
一個基於Zope應用服務器的應用/服務器/網絡管理平臺,提供了Web管理界面,可監控可用性、配置、性能和各種事件。
Zabbix

1
zabbix是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。用於監控網絡上的服務器/服務以及其他網絡設備狀態的網絡管理系統,後臺基於C,前臺由php編寫,可與多種數據庫搭配使用。提供各種實時報警機制。
Ganglia

1
Ganglia是一個針對高性能分布式系統(例如,集群、網格、雲計算等)所設計的可擴展監控系統。該系統基於一個分層的體系結構,並能夠支持2000個節點的集群。它允許用戶能夠遠程監控系統的實時或歷史統計數據,包括:CPU負載均衡、網絡利用率等。Ganglia依賴於一個基於組播的監聽/發布協議來監控集群的狀態。Ganglia系統的實現綜合了多種技術,包括:XML(數據描述)、XDR(緊湊便攜式數據傳輸)、RRDtool(數據存儲和可視化)等。
1
[b]數據監控和業務監控非常關鍵,及時發現問題,及時解決問題,監控系統主要包括:服務應用監控、主機監控、網絡設備監控、網絡連通性監控、網絡訪問質量監控、分布式系統監控、報警預設、監控圖形化與歷史數據等。[/b]
淺談開源工具自動化運維階段
自動化對運維的意義

1
自動化就是運維為了減少重復枯燥的工作而建立的流程方法,而除此之外,自動化還能夠帶來減少人為錯誤、及時報警與故障恢復、提高業務可用性等好處。
1
運維工作自動化確實包含上述2個方面,歸納總結來其實就是:把零碎的工作集中化,把復雜的工作簡單有序化,把流程規範化,最大化地解放生產力,也就是解放運維人員。
自動化的技能/意識對於運維工作至關重要。運維工作不是簡單的使用工具,這裏面還有很多技巧和意識。具體的技巧/意識包括:

如何駕馭這些琳瑯滿目的工具為己所用;
如何根據不同的應用環境來選用不同的工具;
如何根據應用來組合使用工具等等等等。
1
一定要記住一點:工具只是利用幫助人進行運維的,這中間還需要人的幹預和決策,工具不能完全代替全部運維工作。還需要結合實際業務邏輯和業務場景,就像架構一樣,並不是淘寶、百度等大公司的架構,一定適合任何公司和業務。
自動化運維範疇

安裝自動化
部署自動化
監控自動化
發布自動化
升級自動化
安全管控自動化
優化自動化
數據備份自動化
1
前階段在自動化管理和安全方面的技術實現,比如說HP和IBM出品的一些ITIL和ITSM產品等,比如HP Openview,IBM Tivoli等等。這些工具都有Linux的版本,與其他同類工具相比的優勢應該在於他們的商業應用成熟度,都是老品牌。
2
 
3
現階段有自動化的一些工具git、svn、Jenkins等等,一些開源的軟件!
工具選擇

1
針對不同規模的架構,一個小規模的網站,到百萬量級、千萬量級的網站,我們選擇的工具就有不同。
1
在選擇上對於百萬量級、千萬量級的網站,我們應該考慮選擇成熟的工具、性能高的工具、熟悉的工具。而對於小規模的網站,我們應該考慮選擇一些開源的、免費的工具。
1
這個原則就是以應用為導向,百萬量級、千萬量級的網站牽涉的面廣、要求高,不成熟的工具往往很難說服領導和公司使用,所以主要是在成熟度方面。
自動化運維規劃

1
自動化的實現不是單純學習幾個工具就能夠做好的,甚至於規劃不好的情況,自動化不僅沒有節省人力,反而帶來了更多的問題。
所以運維人員在考慮自動化流程的過程中應該考慮如下幾點原則:

根據應用選擇工具;
對於關鍵應用,選擇成熟度高的工具;
不能過分依賴一種工具,需要進行對比和分析;
對工具的特性做到精通;
是人駕馭工具,人要監督工具,而不是工具來駕馭人;
善於利用腳本實現定制化場景。
自動化經驗積累

經常逛逛一些不錯的IT媒體網站和看看這方面的文章,可以多多涉獵和學習;
針對公司業務場景,選擇一些自動化工具,登陸到官網學習和熟悉工作原理;
經常參加一些線下自動化運維的活動和媒體活動,多和一些自動化方面的大拿和資深人士交流。

延伸阅读

评论