『運維一體化 之 平臺一體化』---- 從標題看可以看到兩個一體化,分別是運維一體化與平臺一體化。運維一體化是數據中心的運營體系,包括:人員組織一體化、流程一體化、平臺一體化三方面,其中平臺一體化偏向于運維工具與自動化方面的建設。(平臺一體化涉及的內容比較多,本文以30分鐘來摘幾個重點來分享)
轉型
和目前大部份運維團隊一樣,我們的運維團隊也打著“救火”、“背鍋”、“低價值”等標簽,團隊的特點歸納下有四個特點:
● ?被動救火式,以被動保障業務系統運行,日常計劃性工作容易被打斷、擱置;
● ?問題驅動式,以系統可用性、可靠性、業務請求等問題驅動運維工作;
● ?操作運維,重復性、操作類點主要工作量的運維模式;
● ?經驗式運維,由人工經驗驅動的運維模式,尤其是一些經驗豐富的老員工的離職在短期內會對運維質量帶來一定的沖擊。
針對上面四個特點我們提出了四個轉型:
● ?分別是從被動救火式向主動精細化轉型,主動分析,主動優化,驅動開發,促進DevOps的落地;
● ?從問題驅動向價值驅動轉型,以業務體驗、服務滿意度、促進業務更好發展;
● ?從操作運維向運維開發轉型,通過為運維人員提供運維開發平臺,降低運維開發門檻,快速落地一些緊迫的運維工具,降低操作性、重復性的運維工作;
● ?從依靠經驗向智能化驅動運維轉型,結合數據分析、知識庫、機器學習技術促進運維智能化。
在現有人力維持不變,運維質量要求不斷提升的背景下,為實現上述面四個轉型目標,我們認為首先要解放生產力,因為沒有人什么都轉型都實現不了。解決生產力當前最主要的手段還需靠自動化,所以下面再說說我們自動化方面遇到的3個困難:
● ?如何更好:雖然運維體系比較完整,但工具主要以商業軟件為主,以煙囪式建設,信息無法互聯互通,無法實現1+1>2的效果;
● ?如何更快:運維工具拿來較多,自主研發少,無法快速滿足自身運維需求,還是存在較多人肉運維的工作;
● ?如何更重要:運維職業危機,傳統的運維操作為主的方式注定會成為歷史,取而代之的是精細化運營,如何既解決職業危機,又能創造更大的價值,是難題;
● ?針對上面提到的四個轉型目標,以及自動化目前遇到的困難,我們制定了相關的技術及管理的改進方案:運維一體化。
一體化
在講一體化思路前,我先講講促進一體化思路形成的一些思路來源:
《架構即未來》這本書里提到的組織、流程、架構的三位一體和我們運維一體化很吻合;
騰訊藍鯨、云霽科技在運維自動化方面的整體解決方案引導著我制定平臺一體化的方案;
googlesre高逼格的運維運營模式,促進我在運維開發方面的解決思路形成;
如上圖所示,我們的運維一體化的核心是組織、流程、工具三位一體,具體來講是以CMDB為基礎,結合運維統一門戶、運維分析平臺、云平臺、監控平臺、流程平臺、操作平臺、審計歸檔平臺,構建運維工具一體化(即平臺一體化),并在工具一體化的同時,結合流程一體化,最終構建組織、流程、工具三位一體的運營一體化的運營體系。運維一體化以運維向主動精細化運維、價值驅動、運維開發、智能化轉型為目標,為實現上述目標首要的工作是需要解放運維生產力,通過“監管控”運維自動化提高工作效率,通過自主的開發平臺實現敏捷的開發能力,通過運維分析實現運維智能化,輔助運維決策。
再重點講講分享的重點:平臺一體化,平臺一體化的思路是:6平臺 +1門戶+ 4原則。
● ?6平臺是:云平臺、監控平臺、歸檔審計平臺、流程平臺、操作平臺、分析平臺這6個平臺分別對標我們身體的骨、眼、神經系統、循環系統、手、腦。其中監控平臺、歸檔審計平臺、流程平臺、操作平臺又組成了我們常規講到的自動化中的“監、管、控”。這6個平臺中每一個平臺又組成相關技術體系,具體每個平臺包括的體系內容及技術架構這里因時間問題不做深入解釋。
● ?1門戶是:統一門戶是運維可視化的關鍵,它集成了工具的可視化層,提供多維用戶、多種展示形式、以運維場景驅動建設等作用。
● ?4原則是:自主化,工具化、服務化、可視化,這4個原則后面會進一步介紹。
通過歸納這個6平臺+1門戶+4原則的平臺一體化思路,并將這個思路推廣到數據中心工具建設團隊中,使我們能否快速達成共識,提高協作效率。
下面這張PPT是對平臺一體化的進一步細化,概括了目前平臺一體化中的主要內容,各位有興趣可以花時間看看。
建設原則
平臺一體化規劃重點解決各技術平臺間的信息互聯互通、統一展現和緊密聯動,對于各個平臺工具有著幾個原則“服務化、可視化、自主化、工具化”,即:
● ?自主化:構建運維開發平臺降低運維工具開發門檻,促進平臺工具開發更加自主可控,更加敏捷;
● ?工具化:在運維團隊中建設工具建設文化,促進運維開發文化建設;
● ?服務化:拒絕推倒重建,整合好存量自動化工具,引入新的工具,實現工具間的互聯互通,數據共享;
● ?可視化:通過更加統一、清晰的可視化建設促進平臺的效益的產生;
下面對這4個原則,結合我們目前工具建設階段性的成效來做進一步的分享。
原則1:自主化
自主化包括開發能力自主化與架構自主化。
● ?開發能力的自主化,我們主要是通過建立運維開發平臺,這個開發平臺具有所見即所得的開發能力,它們具備這些特點:
????????1、所見即所得的腳本開發能力:
? ? ? ? ?2、 腳本開發環境(含環境、測試、部署,以及日志、權限、代碼管理、腳本執行統計等一籃子解決方案);
????????3、標準組件化腳本可供調用,運維人員在開發過程中可以不寫具體的腳本,采用組件的方式在可視化界面上組合多個現成的腳本為一個腳本。
● ?所拖即所得的可視化開發能力:
????????1、實現運維工具的可視化展示(提供HTML5風格可視化運維工具控件的拖拉生成統一風格的代碼,運維開發人員無需關注HTML標簽代碼與CS風格S);
????????2、實現可視化工具流程的配置能力,即工具上事件所需要的頁面流;
????????3、設計標準組件提高可視化開發效率;
● ?運維一體化下的開發能力:
????????1、標準化腳本的服務化能力;
????????2、服務化腳本的接口注冊;
架構自主化,我們在平臺建設過程中引入了互聯網分布式的架構,開源的技術架構能讓我們對技術架構更有可控性。以集中監控系統為例,我們對原有的應用主備、數據庫主備的架構改造為分布式架構,現在這個系統采用WEB、應用分布式,通過MYCAT分布式數據庫中間件實現數據庫分布式,采用ZK實現數據庫主節點的選取,通過MYSQL實現讀寫分離,目前我們的數據庫由17臺MYSQL組成,數據存儲由原來了一個月,到現在的一年以上,支持多指標、多形式、多并發的監控、分析的運維場景需要。
整體的架構參見PPT這張圖。
原則2:工具化
我們將工具分為重量型工具和輕量型工具,大致以這個思路區分:
● ?重量型工具:包括監控類系統(集中監控、性能監控、基礎監控、網絡安全監控等)、自動化部署、日志系統、業務批次調度等等這些需要開發工作量比較大的系統;
● ?輕型工具:包括應用服務啟停工具、數據維護工具、數據查詢工具、業務運營活動實時報表等和運維日常操作工作結合比較緊密且相對簡單的工具;
● ?對于這兩類工具,我們綜合人員能力、投入產出等客觀因素求個平衡點,其中重量型工具以引入成熟系統進行二次開發為主,輕量型工具逐步以自主開發工具為主。
下面針對上面兩類工具分別舉例。
首先是重量型工具,以集中監控為例,監控架構見這張PPT。
集中監控的建設思路主要是以“不漏報、不誤報”加強“監”的能力,通過監控分析、學習能力補充自動化“控”的能力,實現智能化的主動預測、故障自愈、無人值守。目前我們的監控體系己覆蓋從基礎設施、服務器存儲、系統軟件(含虛擬化、容器、系統軟件等)、應用可用性、客戶體驗五個層次的對象,這些監控對像由不同的監控工具實現監控數據的采集與事件分析。在監控工具之上,由集中監控實現監控數據整合、事件整合、子系統接入、統一可視化、數據源采集、智能學習、智能基線、事件協同處理、事件聯動分析、新技術平臺監控等平臺能力。后續需要在平臺能力之上建立智能學習型監控,實現主動預測故障、故障自愈、無人值守。
● ?集中的可視化,具備多用戶視角、多系統整合展示、多形式展示(WEB端、大屏,以及目前在開發的手持端監控)
● ?體系化整合,整合存量系統(比如基礎監控、性能監控、應用監控等)、整合數據、整合事件等。
● ?將監控能力下探到分行,可以實現分行終端的的監控管理,模擬柜面終端的操作回放。
● ?深度關聯分析,相似事件統一匯總,比如我們在CMDB的基礎之上,建設應用配置庫,應用配置庫除了應用服務、版本、程序等CI項外,還將應用的縱向與橫向關系通過可視化拖拉的方式實現。
● ?利用好監控數據,比如將監控數據用于一鍵巡檢,業務運營活動自定義報表等。
● ?其它,比如這個事件豐富,我們將事件的信息展示,還將涉及的系統配置信息、關聯事件、事件具體數據、事件應急、工單情況、涉及OS的資源、性能、事件處理情況、事件應急工具等信息集中在一個視圖,以促進事件的快速定位與應急恢復。
講完重量型工具,現在舉例講講輕型工具,下面這張應用工廠的界面可以很好的解釋我們的建設思路。參考APPSTORE,在團隊中建立工具開發文化,管理員可以開發工具,并發布到應用工廠并供其它管理員使用,其它管理員可以對工具提建議或打分,這些打分可以作為該工具歡迎度進行獎勵。
以輕量型工具中的服務啟停為例,這個工具可以滿足關機維護、應用投產、故障應急等場景,支持單個或多個服務的環境保存、進程常規情況下的啟停、異常情況下啟停、啟停后多重形式的檢查方法。
這些小工具的建設一方面提高了團隊運維工作效率與標準化的落實,另一方面也有助于一些有想法、有能力的同事增加工作成就感。
原則3:服務化
服務化是為了實現工具間通訊的互聯互通,服務化一方面要求各工具對外提供API接口;另一方面是通過統一開發一個服務集成模塊實現工具監控API接口的注冊、發現、鑒權。
這個服務集成有2個主要功能:
● ?服務通訊總線,相當于一個輕量型的ESB,工具間的通訊需要經過服務集成模塊;
● ?服務注冊與發現,提供可視化的界面為各個工具進行接口注冊,為調用起提供接口入參說明、調用說明等功能;
這個服務集成還提供多種通訊方式,RPC、MQ隊列等,可根據不同的通訊需要進行調用。
原則4: 可視化
可視化方面我們主要以統一門戶為載體,在技術上我們選擇了以H5加CSS3(為移動端化作準備),提供以下3個特性:
● ?提供指定服務:統一門戶提供所有工具菜單、生成訪問用TOKEN;
● ?頁面適應性改造:統一風格,并分步對存量工具進行風格改造
● ?訪問適應急改造:快速跳轉、多標簽單點登錄、瀏覽器兼容;
在功能上,我們提供多種用戶視角,專業團隊視圖、管理視圖、業務視圖,下在這張界面是我們統一門戶待辦的視圖,它將不同用戶角色所關心的指標集中在這個視圖,作為用戶控制臺。
接下來還將繼續做好自動化,解決工作上的痛點,解放生產力,后續再結合大數據去放眼智能運維。