運維自動化要點——可運維性
1. 可運維性和業(yè)務架構(gòu)運維自動化是我們所追求的目標,但我們有時候過于強調(diào)自動化能力,卻忽略了影響自動化落地的一個關(guān)鍵因素,那就是業(yè)務架構(gòu)。對于運維團隊來說,最理想的微服務架構(gòu)首先應該具備良好的可運維
1. 可運維性和業(yè)務架構(gòu)
運維自動化是我們所追求的目標,但我們有時候過于強調(diào)自動化能力,卻忽略了影響自動化落地的一個關(guān)鍵因素,那就是業(yè)務架構(gòu)。對于運維團隊來說,最理想的微服務架構(gòu)首先應該具備良好的可運維性。沒有可運維性的應用或架構(gòu)不僅會給運維團隊帶來麻煩,還可能對他們的職業(yè)發(fā)展產(chǎn)生負面影響。因此,在追求自動化的同時,我們也需要重視業(yè)務架構(gòu)的可運維性。
2. 配置管理
在微服務架構(gòu)中,我們建議將應用的二進制文件與配置分離管理,以實現(xiàn)獨立部署的目標。被分離出來的應用配置可以通過三種方式進行管理:文件模式、配置項模式和分布式配置中心模式。不同的企業(yè)可以選擇最適合自己的配置管理方式,但關(guān)鍵是要求各個業(yè)務使用一致的方案,這樣運維人員就可以有針對性地建設(shè)工具和系統(tǒng)來管理配置。
3. 版本管理
在運維中,我們需要清晰地描述運維對象,比如包、配置、腳本等。與源代碼管理類似,運維也需要對這些對象進行版本控制和腳本化管理,以確保自動化操作的準確性和可靠性。將所有東西納入版本控制是運維管理的基本要求之一,只有這樣才能更好地管理運維對象。
4. 標準操作
運維日常工作中存在大量重復度高的操作,這些操作可能造成學習成本、無價值操作、重復建設(shè)的腳本或工具以及人工執(zhí)行風險等浪費。如果能夠在企業(yè)內(nèi)形成統(tǒng)一的運維操作規(guī)范,并將文件傳輸、遠程執(zhí)行、應用啟動停止等操作規(guī)范化、集中化、一鍵化,就能大大提高運維的效率和質(zhì)量。
5. 進程管理
進程管理涉及應用安裝路徑、目錄結(jié)構(gòu)、進程名、端口號、啟停方式和監(jiān)控方案等。做好進程管理的全局規(guī)劃,可以極大地提升自動化運維程度,減少計劃外任務的發(fā)生。
6. 空間管理
磁盤空間的良好管理可以確保業(yè)務數(shù)據(jù)有序存放,并有效降低計劃外任務的發(fā)生。為此,我們需要提前制定備份策略、存儲方案、容量預警和清理策略等,并配合有效的工具來實施這些任務,以減少對運維的困擾。
7. 日志管理
日志規(guī)范的推行需要開發(fā)和運維的密切配合。理想的日志規(guī)范應包含以下要求:將業(yè)務數(shù)據(jù)與日志分離、解耦日志與業(yè)務邏輯、統(tǒng)一日志格式、清晰定義返回碼和注釋、可獲取業(yè)務指標(如請求量、成功率和延時)、定義關(guān)鍵事件輸出級別、管理存放時長和壓縮備份等。只有在滿足以上要求的日志規(guī)范得以落地后,開發(fā)、運維和業(yè)務才能獲得更好的監(jiān)控和分析能力。
8. 集中管控
運維工作常常被切割成不同的部分,如發(fā)布變更、監(jiān)控分析、故障處理、項目支持和多云管理等。為了提高整體運維管控的效率和質(zhì)量,我們需要建立一站式的運維管理平臺,將所有工作信息銜接起來,傳遞經(jīng)驗,杜絕信息孤島和人工傳遞信息所帶來的運營風險。這樣,運維團隊可以更好地管理運維工作。
以上是關(guān)于運維自動化中可運維性的一些要點。通過重視業(yè)務架構(gòu)的可運維性、配置管理、版本管理、標準操作、進程管理、空間管理、日志管理和集中管控,我們可以提高運維的效率和質(zhì)量,實現(xiàn)更好的自動化運維。