在微軟私有云解決方案裏,System Center是重要一環。System Center的各大組件相似於三權分立:SCSM是立法和審判機構(服務請求與審覈),SCOM是監察機構(監控數據中心的性能和事件),而Orchestrator則是執法機構(負責驅動底層的組件)。html
在盆盆錄製的這段視頻裏,描述了這樣一段場景,分佈式應用的Web前端過載時,會觸發runbook新建變動請求;領導批准後,會觸發另外一個runbook,或者新建結點以橫向擴展/或者啓動池中可用的節點,以應對業務系統訪問量暴漲。前端
其中最關鍵的地方就是Orchestrator的Runbook,它能夠根據SCOM監控的性能警報自動執行復雜的操做,如下是視頻中所示的runbook。ios
因爲視頻裏所示的demo相對複雜,須要引入SCSM,因此該runbook中的初始化數據和更新RB活動這兩個Activity都和SCSM有關。shell
爲方便描述,咱們將該runbook略做修改,如附圖所示:分佈式
該runbook能夠實現的功能以下:ide
這裏着重描述幾個關鍵的Activity(括號內是來自VMM IP中的實際Activity Name): 性能
獲取Web層信息(Get Tier) 編碼
根據Member VM Instance Names來倒推計算機層的名稱,如附圖所示:spa
其中的Value採用了Orchestrator獨特的所謂databus的技術,咱們能夠右鍵單擊,選擇訂閱前幾個Activity所發佈的數據。在活動一欄,選擇第一個Activity(監控Web前端報警),而後選擇其所發佈的數據NetbiosComputerName。這代表咱們根據SCOM警報中顯示的源計算機的名稱,來查詢其計算機層的名稱。這樣咱們就無需在runbook裏採用硬編碼,而根據前面Activity發佈的動態數據做爲變量,十分方便。3d
Web層有否未啓動VM(Get VM)
查到該虛機所在Web層名稱,就能夠查詢該計算機層中是否有未啓動的虛機。
查詢參數有兩個:Comuter Tier和Status,表示所在的計算機層和運行狀態。返回同時知足這兩個條件的虛機。
其中Computer Tier的值能夠訂閱前一個Activity(獲取Web層信息)發佈在Databus上的數據(Tier Name)。
Status的值能夠選擇正在運行(注意中文版的VMM,必須輸入正在運行,英文版的話,應該選擇running)。
判斷分支
若是實現後續的判斷分支?咱們無需編寫代碼(儘管runbook能夠直接使用powershell或者代碼)。咱們別小看活動之間的鏈接線(smart link),這些鏈接線也能夠進行自定義!
例如當Web層有否未啓動VM返回空值時(下方的分支),咱們將鏈接線的屬性值配置爲返回對象數等於0。
在包括部分,單擊添加,而後設置已發佈數據爲Number of Objects。
設置條件表達式爲等於。數據值能夠填0。
同理設置上方的分支爲Number of Objects大於0
發送電子郵件
Runbook執行成功後,會自動發送電子郵件,報告給指定的人員,告知哪臺虛機發生性能問題,而且已經執行了解決措施。
更有意思的是,郵件正文裏涉及到的故障主機,也能夠訂閱databus上的數據!