自動化介紹mysql
和大數據、雲計算一塊兒熱火朝天的就是自動化運維了,而後就有了如今很火的職位DevOps。各個培訓機構雨後春筍般,推出了Python自動化運維培訓。不知道培訓的效果怎樣。可是感受有點誤導的意味。linux
有個朋友參加了某培訓機構的Python自動化運維培訓,培訓完後就給我說他要作自動化運維。當時我就懵圈了,在想他都沒作過運維就培訓了下Python,而後直接能夠實現自動化運維了。仔細聊瞭如下,原來是他想多了,他所說的只是實現了自動化最後的一步——平臺化。nginx
所謂運維自動化就是將平常運維中大量的重複性工做(小到簡單的平常檢查、配置管理和軟件安裝,大到整個變動流程的組織調度)由過去的手動執行轉化爲自動化操做。好比,某個服務須要更改某個配置,在流程中提交,而後通過各個負責人確認,到最後,該服務的全部機器的該配置文件都修改成想要的結果,除了審覈不須要人工干預。web
從上面可知,並非朋友所認爲的會Python,就意味着會自動化運維了。若是這樣認爲,那麼會PHP、Java、Go等都會運維自動化,市場上就有大量的運維自動化人才可用。sql
標準化數據庫
實現自動化運維,第一個要實現的就是要實現標準化,若是沒有實現標準化,實現自動化就是空談了。如下是要實現標準化的幾個方面。api
系統安裝標準化安全
我的認爲系統的安裝是整個運維工做的基礎,若是在這個層面沒有作到標準化,之後擴容、安裝等的批量化管理將遇到各類困難。能夠按照下面的步驟來實現標準化,固然也不盡然,能夠根據具體實際來進行。服務器
1、使用磁盤的標準化架構
在安裝系統時,要把這項考慮進去,由於這涉及到最基礎的磁盤問題。在改項中要考
慮磁盤的大小、系統盤和數據盤是否要分開、是否要使用RAID、使用哪一種RAID方案、
之後磁盤擴容須要什麼方案進行擴容等。
2、分區的標準化
分區要考慮這些問題:怎麼去分區、每一個分區的大小是多少。
3、安裝包的標準化
在安裝系統的後,首先進行的就是初始化步驟,因此安裝包的選擇也是須要考慮的。
在生產環境中,使用PXE、cobbler等批量安裝系統已不在少數,能夠根據業務、應用等製做相應的模版來進行批量安裝。
主機名標準化
對於作運維的同窗來講,主機名的重要性應該最清楚不過了。經過主機名能夠知道這臺服務器提供的業務、運行的服務等。
主機名的標準化對於實現自動化很是重要,若是主機名都沒實現了標準化,接下來的自動化工做會困難重重。
主機名的標準化,也即主機名的規劃化,已某個標準(以所在公司爲準)來對主機名進行命名。能夠根據機房、業務、服務等來進行命名。
對於大規模的服務器的公司,應該都實現了SOA(面向服務的體系架構),能夠這樣命名:機房-業務-服務-主應用序號等這樣的方式來命名,好比用於對於商品介紹的服務器能夠這樣命名:bjjxq-item-nginx00x;提供商品介紹服務接口的服務能夠這樣命名:bjjxq-item-api-nginx00x等等。
對於小規模的服務器的集羣,可能沒有實現SOA的條件,各個服務之間並無劃分的很細。這樣仍能夠按照上面的第一個方式來實現主機名的標準化,好比對於提供web服務的服務器:bjjxq-web-nginx00x,對於用MySQL提供數據庫服務的服務器:bjjxq-db-mysql00x等。
目錄標準化
目錄標準化是批量配置管理的關鍵一步,若是同一業務的各個服務器的應用、日誌、代碼等都不具備相同的路徑,那麼批量配置管理、代碼上線將沒法實現,這樣很難想象幾百臺服務器一個個手工配置、手工代碼上線是什麼景象了。
安裝目錄標準化
安裝目錄標準化,就是將應用安裝在統一路徑下,包括各個配置文件。
安裝目錄實現標準化,對於自動化的批量部署,批量修改配置文件等等都有很大的幫助。好比肯定源碼文件能夠臨時存放在/softs目錄下,安裝能夠安裝在/app目錄。
日誌存放標準化
日誌的存放的標準化能夠從存放路徑、存放時長、存放名三個方面入手。好比nginx服務,存放路徑能夠統一存放在/logs的目錄下,訪問日誌能夠存放爲/logs/nginx/nginx_access.log,錯誤日誌能夠存放爲/logs/nginx/nginx_error.log。進行日誌切割後的日誌能夠加上時間,好比/logs/nginx/nignx_access_20160717.log,/logs/nginx/nginx_error_20160717.log。對於存放時間,須要根據公司的需求,好比須要在服務器本地存放多久的日誌,在日誌收集的服務器上要保留多久的日誌等等。
代碼目錄標準化
實現代碼目錄標準化的目的就是爲了實現可以批量上線、批量修改某個代碼文件的某個地方等等。若是實現了代碼目錄的標準化。
文件格式的標準化
文件處理大部分都是在日誌文件和應用的配置文件。日誌文件種類就比較多了,好比錯誤日誌、訪問日誌、MySQL或PHP的慢查詢日誌等等。在生產中,接觸比較多的就是修改配置文件,所以配置文件的格式實現統一標準的重要性都比較清楚。日誌文件格式化也是很重要的,由於經過日誌文件能夠獲取QPS、訪問延遲、PV、IP等等指標。
用戶標準化
用戶的標準化應該是一個重點。用戶的標準化包括兩個方面:用戶名的標準化和用戶權限的標準化。
用戶名標準化
用戶包括業務用戶、OP用戶、RD用戶、應用等等。將用戶名的命名使用統一標準來進行,能夠根據業務或應用來進行命名,好比dbrd、pmrd等。應用用戶能夠和業務用戶使用相同的用戶,即爲某個業務提供服務的全部用戶使用統一的業務用戶。
用戶權限標準化
用戶權限是重中之重了。用戶權限實現標準化,不管是線上環境仍是測試環境,能夠避免某些安全問題。能夠設定某些用戶的只是爲了登陸,想要操做必須使用業務帳戶或應用帳戶。具體的設置能夠根據所在公司的規範標準設置。
對於要實現標準化的地方還有不少,好比服務端口的標準化、腳本存放的標準化等等。不管是哪方面的標準化,對實現自動化都是不可缺乏的,由於實現了標準化,實現自動化才成爲可能。
以上是筆者的拙見,有不足之處還請斧正。
因爲我的技術所限有不足之處還請各位指出。能夠經過以下方式聯繫到筆者:
Linux運維開發羣 298324302
北京linux運維求職招聘 153677549