微軟私有云自動化的完美演示

在微軟私有云解決方案裏,System Center是重要一環。System Center的各大組件類似於三權分立:SCSM是立法和審判機構(服務請求與審覈),SCOM是監察機構(監控數據中心的性能和事件),而Orchestrator則是執法機構(負責驅動底層的組件)。

在盆盆錄製的這段視頻裏,描述了這樣一段場景,分佈式應用的Web前端過載時,會觸發runbook新建變更請求;領導批准後,會觸發另一個runbook,或者新建結點以橫向擴展/或者啓動池中可用的節點,以應對業務系統訪問量暴漲。

其中最關鍵的地方就是Orchestrator的Runbook,它可以根據SCOM監控的性能警報自動執行復雜的操作,以下是視頻中所示的runbook。

2

由於視頻裏所示的demo相對複雜,需要引入SCSM,所以該runbook中的初始化數據更新RB活動這兩個Activity都和SCSM有關。

爲方便描述,我們將該runbook略作修改,如附圖所示:

3

該runbook可以實現的功能如下:

  • 從SCOM中獲取Web前端的報警
  • 根據SCOM警報中的源虛機名稱,得出其所在的計算機層的名稱
  • 在該計算機層中,尋找是否有未啓動的虛機
  • 如果有,則啓動該虛機
  • 如果沒有,則對該計算機層執行scale-out

這裏着重描述幾個關鍵的Activity(括號內是來自VMM IP中的實際Activity Name): 

獲取Web層信息(Get Tier) 

4

根據Member VM Instance Names來倒推計算機層的名稱,如附圖所示:

5

其中的Value採用了Orchestrator獨特的所謂databus的技術,我們可以右鍵單擊,選擇訂閱前幾個Activity所發佈的數據。在活動一欄,選擇第一個Activity(監控Web前端報警),然後選擇其所發佈的數據NetbiosComputerName。這表明我們根據SCOM警報中顯示的源計算機的名稱,來查詢其計算機層的名稱。這樣我們就無需在runbook裏採用硬編碼,而根據前面Activity發佈的動態數據作爲變量,十分方便。

6 

Web層有否未啓動VM(Get VM) 

查到該虛機所在Web層名稱,就可以查詢該計算機層中是否有未啓動的虛機。

7 

查詢參數有兩個:Comuter Tier和Status,表示所在的計算機層和運行狀態。返回同時滿足這兩個條件的虛機。 

其中Computer Tier的值可以訂閱前一個Activity(獲取Web層信息)發佈在Databus上的數據(Tier Name)。 

Status的值可以選擇正在運行(注意中文版的VMM,必須輸入正在運行,英文版的話,應該選擇running)。 

判斷分支 

如果實現後續的判斷分支?我們無需編寫代碼(儘管runbook可以直接使用powershell或者代碼)。我們別小看活動之間的連接線(smart link),這些連接線也可以進行自定義!

例如當Web層有否未啓動VM返回空值時(下方的分支),我們將連接線的屬性值配置爲返回對象數等於0。 

8 

包括部分,單擊添加,然後設置已發佈數據Number of Objects  

9  

設置條件表達式爲等於數據值可以填0 

同理設置上方的分支爲Number of Objects大於0 

10  

發送電子郵件   

Runbook執行成功後,會自動發送電子郵件,報告給指定的人員,告知哪臺虛機發生性能問題,並且已經執行了解決措施。 

更有意思的是,郵件正文裏涉及到的故障主機,也可以訂閱databus上的數據! 

11

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章