一、 自動化理念
做好自動化運維在我看來是有兩個重要抓手:流程和工具,做好這兩點基本就可以將自動化運維順暢跑起來。總結(jié)起來是:流程梳理好,工具是手段。
我們都知道羅馬不是一天建成的,所以我們在建設(shè)運維自動化平臺時也要遵循循序漸進的原則,但大方向要清楚,互聯(lián)網(wǎng)講究敏捷開發(fā),好產(chǎn)品是不斷迭代出來的。
放一張藍圖,朝著目標前進!
圖 1 運維自動化概貌
二、 自動化實踐
我挑選了幾個典型產(chǎn)品給大家做分享。
1. CMDB
1.1 CMDB的意義——降低運維管理成本
現(xiàn)在很多公司互聯(lián)網(wǎng)公司不惜投入重金建設(shè)自己的CMDB,那為什么要這樣做呢?早期的各個團隊維護自己的數(shù)據(jù)已經(jīng)很穩(wěn)定而且比較靈活,引入CMDB及ITIL的概念,不但會打破原有的操作習慣,而且在系統(tǒng)建設(shè)初期會有大量的數(shù)據(jù)導(dǎo)入和使用習慣切換成本。我覺得這其實是權(quán)衡現(xiàn)金系統(tǒng)理念的成本和收益問題。公司早期的各個團隊維護自己數(shù)據(jù),可以較好的滿足業(yè)務(wù)需求,但當數(shù)據(jù)量越來越大,業(yè)務(wù)越來越復(fù)雜,數(shù)據(jù)管理成本是急速上升的。這時候在使用傳統(tǒng)的運維數(shù)據(jù)管理方式,恐怕很難支持業(yè)務(wù)發(fā)展。
圖 2 數(shù)據(jù)管理成本
1.2 CMDB定位
國美云對CMDB的定位是數(shù)據(jù)中心運維數(shù)據(jù)庫。運維公共配置信息存放在CMDB,其他子系統(tǒng)維護特定業(yè)務(wù)數(shù)據(jù),但與CMDB信息有強關(guān)聯(lián)。
圖 3 國美云產(chǎn)品 1.3 CMDB建設(shè)
CMDB數(shù)據(jù)來源主要分兩種,人工錄入和自動發(fā)現(xiàn)。
圖 4 CMDB數(shù)據(jù)來源
從存儲數(shù)據(jù)來看,包括以下方面:
圖 5 CMDB存儲數(shù)據(jù)
主機數(shù)據(jù)建設(shè)
主機管理模塊,用戶可以通過綜合搜索功能快速快速查詢相關(guān)信息,具備服務(wù)器、網(wǎng)絡(luò)設(shè)備錄入和自動發(fā)現(xiàn)功能。
應(yīng)用數(shù)據(jù)建設(shè)
建立服務(wù)樹,確立人——應(yīng)用——機器的關(guān)系,將人和項目進行關(guān)聯(lián),項目與資源關(guān)聯(lián)。
資源數(shù)據(jù)建設(shè)
包括網(wǎng)段管理、機房管理、應(yīng)用管理、機型管理,從IDC、機柜到服務(wù)器、網(wǎng)絡(luò)設(shè)備等硬件信息再到網(wǎng)段、IP、操作系統(tǒng)等軟件層次都納入cmdb統(tǒng)一管理,以此作為云平臺的數(shù)據(jù)中心,做到數(shù)據(jù)一致性,并對外提供數(shù)據(jù)服務(wù) 。
IDC 機柜視圖:
圖 6 機柜視圖
1.4 數(shù)據(jù)消費
數(shù)據(jù)消費是CMDB最大的價值所在,CMDB的目的不是為了建立大而統(tǒng)一的數(shù)據(jù)倉庫,而是如何將收集來的數(shù)據(jù)進行消費,并在消費的過程中逐步完善數(shù)據(jù)。以下是一些實踐應(yīng)用:
1.與堡壘機聯(lián)動,應(yīng)用增加機器時自動對負責人授權(quán)
2.與負載均衡系統(tǒng)聯(lián)動,實現(xiàn)灰度發(fā)布
3.與監(jiān)控系統(tǒng)聯(lián)動,通過修改機器狀態(tài)打開、關(guān)閉報警,方便維護或做變更,并通過匯聚監(jiān)控數(shù)據(jù)對應(yīng)用集群的資源利用率產(chǎn)生報表
1.5 問題與挑戰(zhàn)
1.5.1 數(shù)據(jù)準確性維護,數(shù)據(jù)的非正常變更 相信人or相信程序?
可以說數(shù)據(jù)準確性是CMDB的最大難題,如何提高數(shù)據(jù)的準確性呢?有效的方法就是通過自動檢測和人工審核,另外還需要建立一些標準,比如運維標準來禁止非標操作。
對于很容易判斷對錯的數(shù)據(jù)來說,檢測腳本可以自動訂正數(shù)據(jù),比如宿主機上資源剩余量。有些則需要人工確認后才可以更改的,比如IP的探測,有些IP被不守規(guī)矩的人配置了但沒在CMDB標志,探測到IP通后需要人工介入才知道具體是哪個應(yīng)用使用。
1.5.2 性能挑戰(zhàn)
作為一個數(shù)據(jù)中心,應(yīng)對各種各樣數(shù)據(jù)請求是基本功,有些請求比較簡單,有些查詢要求比較高,比如監(jiān)控系統(tǒng),當CMDB中的應(yīng)用和機器變化都要及時推送給監(jiān)控系統(tǒng),還有一些經(jīng)常查詢的數(shù)據(jù),可以放到Redis中以減輕CMDB的壓力。
CMDB作為數(shù)據(jù)中心,除了提供查詢數(shù)據(jù)還有分配數(shù)據(jù)的能力,比如IP地址的分配,這時要充分考慮高并發(fā)的情況。對此我們采用了樂觀鎖的方式解決這個問題,防止IP地址被重復(fù)分配。
1.5.3 其他數(shù)據(jù)處理方式