如何打造一個高逼格的雲營運平台?
導讀在標準化實施完以後,由於數目的增加,或者是一些營運情境的增多,我們會逐步的進行一些工具化和自動化,這個階段我們的營運的效率得到提升。但是眾多的工具以及自動化指令碼,會讓我們的管理過程中比較困難,隨著人員的變動或者是一些工具維護過程中的差錯,我們的自動化營運工具的受眾群體不太穩定。前言
大家做營運普遍經曆這樣的過程:
首先我們會把操作做一個標準化,這個階段是營運品質的提升的階段。
在標準化實施完以後,由於數目的增加,或者是一些營運情境的增多,我們會逐步的進行一些工具化和自動化,這個階段我們的營運的效率得到提升。
但是眾多的工具以及自動化指令碼,會讓我們的管理過程中比較困難,隨著人員的變動或者是一些工具維護過程中的差錯,我們的自動化營運工具的受眾群體不太穩定。
這個時候我們就需要一個平台將我們的營運工具以及營運過程中的一些經驗進行沉澱,藉助這個平台實現我們的智能化營運,於是我們從營運人員的需求和體驗出發出發進行了一個營運平台產品化的構建。
銀行卡組織雲營運平台的概況我給大家介紹一下我們IT體系建設的情況,差不多十年前我們以ITIL為基礎構建了流程平台,變更、事件、問題、服務等流程通過這個平台進行流轉。
在五年前我們從開放平台轉化為雲營運平台,在這個過程中,我也建立了IaaS虛擬化資源平台,同時我們也跟業界一樣構建了CMDB,用於同意管理營運資料。
但是在運轉下來以後,我們發現還有很多需求需要實現,主要三個方面:
軟硬體節點數目不斷增加,日常營運迫切需要一個適應各種營運情境的高效自動化平台,減少重複勞動。
需求是將營運人員的經驗需要在一個平台沉澱,形成一個智能化情境庫,將營運服務或能力的複用,從而提高整體營運品質和營運效率。
第三個需求是在傳統的流程化營運的基礎上,注入智能化情境,將營運工作從依靠人工判斷、流程決策,逐步轉為依靠機器智能分析判斷。
所以基於這三方面需要,我們建設了一個雲端運算環境下面向規模化營運的平台。
雲營運平台主要解決的是以下幾個痛點:
- 互連網業務在我所在的公司開展特別快,還會有一些營銷活動,這樣就需要營運有一個快速的響應。
- 我們的硬體數目有了一個幾何級的增長。
- 最近幾年頻繁的使用一些開源架構新興技術,對營運技術增加了要求。
- 營運工具散亂,缺乏同同一管理。
- 我們營運資料沒有一個同一的的展示
- 第六個是我們的人力增長目前比較緩慢,我們在審計過程中會有一些人工安全性方面的問題。
出於這些方面考慮,我們營運平台的願景,是營運的品質以及可營運裝置的數量不因我們的營運人員的數量或者是技能的變化改變,從而實現我們的營運的數量和品質都達到一個可控的。
銀行卡組織的雲營運平台是個怎樣的產品接下來給大家介紹一下我們營運平台這個產品,主要四個方面:
第一是資源統一調度,我們可以將資源整合,我們通過資源平台提供的API包括,包括Openstack、資料庫管理平台、容器管理平台、分布式儲存管理平台、網路管理平台、安全管理平台,將我們所常用的營運操作,都整合在我們這個營運平台中,將我們的營運流程盡量的簡化,實現自助化營運。
第二,我們希望藉助我們營運平台盡量實現自動化管理,減少我們手工操作,實現自動的資料收集、自動應用安裝、自動設定和更新、自動資料分析、自動擴充、自動備份恢複、自動鼓掌處理等。
第三是多維為可視化,讓各個角色有一個在平台上都有一個獨立的視角,以角色重定義營運。如網路管理檢視,系統管理視圖、監控視圖、報表視圖等。統一報表系統,統一全域資料並提供可自訂多維報表。
最後一個就是實現高效能,我們希望我們這個營運平台可以滿足萬級節點的並發收集、執行。
雲營運平台建設情境這個是我們營運平台的情境規劃圖,下面是我們一個核心的調動模組。包括執行、採集以及和其他流程的對接,中間是我們這個營運平台主要要做的事情,我們把這個叫做營運OS,圖表管理實現自動化拓撲和自訂報表,全生命週期管理是實現應用系統從上線到下線通過我們這個平台實現一個自動化的實施。
運行環境管理和營運工具給實際的營運人員提供一個比較便利的一個作業環境,包括備份比對,作業編排以及參數管理等,容量管理我們是希望通過我們這個平台將監控的資料進行一個匯總,實現對容量的管控。
高可用管理對我們各個應用系統,各個層面的組件的可用性進行一個統一的管理,可用性監控,自動化可用性演練。
重點情境一:生命週期管理第一個是生命週期管理,我們周圍在以前的一個部署過程中,通常是這樣的,開發人員寫一個是需求文檔通過內部流程給營運介面人,他會協調各資源管理員分配資源,形成部署方案,最後將這個部署方案通過人工構建變更的方式實施。
這裡面有兩個問題,一是傳遞過程中可能偏差,第是周期比較長,我們希望藉助我們的雲營運平台實現參數層級的電子化傳遞,以及自動化的部署。也就是使用者在我們平台上面選擇需要的組件,以及資源需求,由我們的管理員分配、確認實際的部署資源。
最後由平台進行一個自動化的部署,並在部署過程中自動進行各項規範標準的實施。
重要情境二:運行環境管理第二個情境是我們的運行環境管理,包括資源類的CPU、記憶體、IP、連接埠、訪問關係等,以及我們營運人員關注的,定時任務、備份策略、自啟動項目等。我們通過雲營運平台對運行環境進行管理,替代原有excel表格,並進行自動化設定。
重要情境三:持續部署管理第三個情境是持續部署管理,傳統部署方式我們會遇到一些問題,包括:應用版本通過版本伺服器多次人工傳遞,各應用的配置、維護指令碼沒有統一標準;通過表格人工維護各環境的參數差異,不同環境人工修改參數;應用的安裝過程視變更人員經驗,異常警示沒有統一標準,回退方式不統一等。
為此,我們做了一個持續發布的標準,而且將這些標準藉助這個平台可以實施,包括:統一版本傳遞路線,版本標準化;構建生產、測試、研發環境配置差異庫,平台根據所在環境自動生存對應參數;標準化應用部署過程,多節點安裝順序自由編排,按照編排順序進行安裝;標準異常警示;故障時按照編排順序逆向回退。
重要情境四:運行環境維護第四個情境是是常用營運工具整合,包括我們常用的應用重啟、健全狀態檢查、隔離、恢複工具,伺服器的一些物理測試,以及自動裝機後自動接入OpenStack或者是其它資源管理平台的自動對接,網路裝置的健全狀態檢查,還有一些週期性安全檢查,我們把這些工具整合在我們的雲營運平台上。
重要情境五:畫像情境第五個情境是我們應用為維度應用畫像,通常我們一個應用可能有很多的元素,大家想知道這些元素會比較困難,例如這個應用的架構是什麼樣的,可能只有在一些應用的開發設計人員,或者是一些骨乾的心中才能知道,也不一定特別的準確。
應用的參數可能有很多要到伺服器查。應用版本、參數變遷、維護記錄需要翻變更,應用各個層面的容量情況需要找各專業室查。應用的情況普遍說不清,要廢很大的力氣才知道是什麼樣。
我們在雲營運平台裡面,藉助我們之前提到的各種產品管理工具,容量管理和高可用管理,我們放在一個視圖的畫像裡面,根據變遷維護曆史以及應用的容量、高可用資訊,還可以計算出這個應用他的營運方面的成熟度等級。
雲營運平台技術方案在硬體資產層面我們通過一些snmp等工具擷取狀態及操作,虛擬資源層面我們目前藉助openstack及其它管理平台提供的介面進行管理,作業系統之上我們通過自主開發的核心調度系統對linux及應用進行管理。
我們整個平台是使用權的一個部署,除了下面的緩衝和MySQL其他所有的組件都是全容器的部署,前端使用apache、haproxy、keepalived;後端使用jboss、rabbitmq、ansible、zookeeper;資料存放區採用mysql、redis、ceph等;另外我們還有一個安全服務模組,檢查是否會有一些高危操作。
業務流技術是我們具體的一個商務程序,左邊是我們這個雲營運平台的介面,一個營運請求會被封裝為一個訊息會放到訊息佇列裡面,schedule模組接收到訊息後按照調度演算法,自動分配給ansible節點,ansible節點通過ssh到伺服器上執行,並將執行結果非同步返回給訊息佇列。
schedule的調度演算法與Ansible分布式架構schedule的調度演算法,是我們考慮到我們生產環境有很多的分區,我們會根據他的IP自動產生一個所屬地區的tag,schedule在發現這些訊息以後,他會針對你tag以及目標機器資料進行拆分,我們把這個詳細拆分幾個訊息,ansible去訂閱處理自己的訊息。
我們在ansible上進行一個改造,所有任務均有唯一的id,處理完成後返回訊息,從而實現多任務的並發非同步執行。
資料視覺效果我們在資料視覺效果方面,我們通過採集器採集資訊,通過同步器同步其它平台資訊,儲存在核心資料庫,通過閾值庫產生進行對比警示,通過分析函數庫進行效能分析,併產生一些我們營運需要的報表進行可視化管理。
銀行卡組織雲營運平台成果展示我們平台的建設結果,我們這個平台上面已經完全建設的一些部分,另外有一些功能我們在開發,這個是我們在實際中已經上線的平台,大概有幾千太的虛擬伺服器,我們首先看到這個資訊中心裏面有一個機房,我們看到一些機櫃,並且配置好每一個機櫃裡面對應的哪些伺服器。
這個交換器/F5-物理伺服器-虛擬伺服器自動拓撲的頁面,是我們根據snmp抓取交換器、F5資訊,通過anbible抓取物理機的資訊,通過openstack抓取虛擬機器的資訊,根據上述訊息自動產生拓撲。
資料同步可以自訂定時抓資料。
這是一個實際的備份管理的功能,我們可以用我們的這個平台選取相應的伺服器,通過平台自助定時、即時備份。
自助化啟動項管理。
自助化定時任務管理。
原文來自:http://os.51cto.com/art/201611/521652.htm
本文地址:http://www.linuxprobe.com/make-cloud-devops.html