iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 24
0
Everything on Azure

玩轉 Azure 於指尖隨心所欲系列 第 24

計算資源負載爆量只能人工介入嗎?其實自動化 Runbook 可以幫上你

平時我們的雲端計算資源作為對外營運的電商網站服務,每當遇到活動檔期時都很怕他的主機資源爆量導致資源不敷使用大大影響了服務品質而影響了公司銷售業績的成長.
這還不打緊,最怕的是在晚上夜間或是假日沒人固守的情況下更為擔心,但一次擴增的最大又怕其實流量不如預期導致支援閒置增加了更多不必要的成本.
其實關於這類的情境比較好的作法有二:

  • 網站本身就透過VM AutoScaling當條件觸發後相同規格做橫向擴展1->2,2->3以此類推,反之負載量降低觸發縮減則3->2,2->1
  • 另外一種可以是前端掛負載平衡後端綁兩台以上的網站但個別VM均透過自動化來做垂直擴展,而又避免只有單一台再重開置換規格的同時造成服務中斷的狀況.

不過今天的主角是主機透過自動化觸發Runbook讓VM做ScaleUp的動作而無需人工介入,這次就來做簡單的示範

這台familyweb1等會就透過自動化機制不做人工介入來讓規格Up Up
https://ithelp.ithome.com.tw/upload/images/20181024/20025481CNgCS7zFYK.png

新增資源搜尋自動化(中英文皆可)
https://ithelp.ithome.com.tw/upload/images/20181024/20025481eyM4hcHhYf.png

自動化建立
https://ithelp.ithome.com.tw/upload/images/20181024/20025481ZkNMmvC48j.png

自訂名稱並選擇東南亞地區(因為我的VM也在東南亞)
https://ithelp.ithome.com.tw/upload/images/20181024/20025481Be2pbZowfL.png

自動化服務建立完成
https://ithelp.ithome.com.tw/upload/images/20181024/20025481fvqQbdWaRG.png

記得基本建立好還要來更新模組因為大多都不一定會同步預設最新版模組,常有遇到異常問題,所以直接先來更新一下
https://ithelp.ithome.com.tw/upload/images/20181024/200254811Fr3iTPGAJ.png

執行更新確認
https://ithelp.ithome.com.tw/upload/images/20181024/20025481r52sLcQDcz.png

它就會開始自動匯入模組來做覆蓋更新作業(需要十多分鐘的等待時間)
https://ithelp.ithome.com.tw/upload/images/20181024/20025481tkfl7yaeR7.png

更新完成了
https://ithelp.ithome.com.tw/upload/images/20181024/200254818r11xdTRJX.png

回到我的示範主機找到警示功能
https://ithelp.ithome.com.tw/upload/images/20181024/20025481HByJT90a52.png

點進去警示選到檢視傳統警示
https://ithelp.ithome.com.tw/upload/images/20181024/20025481RXGNRuu8GD.png

新增指標性Metric Alert
https://ithelp.ithome.com.tw/upload/images/20181024/20025481MQGpVuk3YR.png

自訂名稱,重點是Metric Alert的觸發條件非常多,可以依您的需求來作為觸發條件,我用CPU%來做示範
https://ithelp.ithome.com.tw/upload/images/20181024/200254815w01WGkEjQ.png

條件當達到CPU 80%持續五分鐘的時候就觸發自動化條件啟動Runbook(依各個環境需求調整),我也設定條件觸發會發送通知信給我
https://ithelp.ithome.com.tw/upload/images/20181024/20025481dCwpbh58JI.png

下面有看到嗎?條件觸發後要讓Runbook執行甚麼動作本次需求是要做VMScaleUp
https://ithelp.ithome.com.tw/upload/images/20181024/20025481560lWqbKHq.png

最後是真正能執行整個流程需要一個自動化服務,就選擇剛剛剛建立的,如果沒有可以從這新增
https://ithelp.ithome.com.tw/upload/images/20181024/20025481OsFIUqXgFa.png

設定完成按下OK
https://ithelp.ithome.com.tw/upload/images/20181024/20025481pFnqL2yagE.png

建立好一條ScaleUp觸發條件了
https://ithelp.ithome.com.tw/upload/images/20181024/2002548124ptI4G1Ui.png

不過因為我這只是靜態網站要超到CPU 80%持續5分鐘真的滿難的....所以為了測試快速呈現直接動手腳把80%直接改成1%,至於持續時間都是標準最少是五分鐘
https://ithelp.ithome.com.tw/upload/images/20181024/20025481tBANoe2cbI.png

有了!收到觸發系統信內容如下顯示
https://ithelp.ithome.com.tw/upload/images/20181024/20025481SHF4IpqbNN.png

到自動化服務來看儀表板可以看到執行Job成功,失敗,連接等狀態的總和
https://ithelp.ithome.com.tw/upload/images/20181024/200254811TrMCUupE2.png

回到VM資訊頁面已經看到規格已經自動升級成D2v2
https://ithelp.ithome.com.tw/upload/images/20181024/20025481HUO4m7fr3b.png

從從自動化服務中Job紀錄來檢視剛剛是否成功與否,直接拉到最後D1v2-->D2v2已經成功
https://ithelp.ithome.com.tw/upload/images/20181024/20025481cBHTMaxQKI.png

補充一下:持續有觀察到條件持續觸發就會一階一階的往上提升D1v2-->D2v2-->D3v2以此類推,但不能跨到不同類型規格.
另外在Azure自動化中要觸發RunBook來執行你要的行為動作有以下方式:

  • DSC的互動式使用者介面
  • Windows PowerShell
  • Azure API
  • Webhook
  • Startup Runbook回應Azure警示(這是我們剛剛的使用範例方式)
  • 排程
  • 由Runbook A觸發到Runbook B

以上就先這樣先讓大家有個初步的用法,再會哩!81/images/emoticon/emoticon29.gif


上一篇
Azure VPN 走 BGP 最佳路由實記
下一篇
垂直擴展的好哥們,VM AutoScaleSet 也可以很簡單完成您的服務水平質量
系列文
玩轉 Azure 於指尖隨心所欲32

尚未有邦友留言

立即登入留言