iT邦幫忙

2024 iThome 鐵人賽

DAY 22
1
DevOps

就是工商,為什麼要使用付費版 GitLab?系列 第 22

Day 22:GitLab 的 Incident management 功能

  • 分享至 

  • xImage
  •  

今天我們來認識比較偏 Ops 端的功能——Incident management

GitLab 作為包含整個 DevOps Lifecycle 的產品,大約在 13.x 的時候,開始引入 Incident management 的相關功能,讓團隊除了可以用 Issues 管理既有的 Dev 端的開發需求,同時也能管理 Ops 端遇到的意外事故。

如下圖,Incident 也是一種 Issue,可以在 Issues 功能內 Create Incident。
https://ithelp.ithome.com.tw/upload/images/20241006/20120986TbaezPigrX.png

在 GitLab,目前是用多個功能來實現 Incident management。

  1. Alerts
    你可以將第三方的 Monitor 服務與 GitLab 整合,讓 Alerts 的資訊,也同步送一份至 GitLab 留存。Alerts 可以與 Incident 建立連結,讓團隊從接收告警、接手處理、解決問題、找出根本原因⋯⋯整個過程中的每一段資訊都可以在 GitLab 上串連在一起。
    免費的使用者,在 Alerts 這裡只能做有限度的整合,也無法盡情客製要傳入的資訊。但如果是付費等級,就可以有更彈性的整合方式,可以自訂 GitLab 與 Monitor 服務之間的 Alert key 對應關係,也能設定 Alert 發生就自動建立對應的 Incident,免去手動建立兩者的關聯。
    https://ithelp.ithome.com.tw/upload/images/20241006/20120986iE3SIngKN8.png
  2. Incidents
    這裡會條列出所有的 Incidents,也會標示優先級或嚴重程度。
    付費等級,GitLab 還能幫你自動計算依據 SLA 你還剩下多少時間可用(謎之音:逼死人了!)
    https://ithelp.ithome.com.tw/upload/images/20241006/20120986inFWeuMwpL.png
    (一覽目前發生的事故!)
    https://ithelp.ithome.com.tw/upload/images/20241006/20120986TiSiBSrZsP.png
    (處理太慢,超過 SLA 的時間啦!)
  3. On-call schedules & Escalation policies
    有監控,當然也需要人待命值班。在 GitLab 中 On-call schedules 與 Escalation policies 屬於付費功能。在 On-call schedules 你可以設定團隊成員要怎麼輪值待命,而 Escalation policies 則是設定當事故發生時,如果遲遲沒人處理或處理不來,在什麼條件下要繼續通知下一個層級的人員,讓他們知道事情嚴重了!這兩個功能與 Incidents 一起搭配使用,即可做到當事故發生時,自動通知該時段的 on-call 人員與相關人士。
    https://ithelp.ithome.com.tw/upload/images/20241006/20120986hrFE4MmMnM.png
    (排定輪值代表班表。)
    https://ithelp.ithome.com.tw/upload/images/20241006/201209861Mll0b0MPM.png
    (設定條件,自動通知下一個層級的相關人士。)
    https://ithelp.ithome.com.tw/upload/images/20241006/20120986uWrPotzGCu.png
    (收到通知信件,有事故發生沒人處理。)
    https://ithelp.ithome.com.tw/upload/images/20241006/20120986aTSeqGH76z.png
    (在 Incident 的 Activity 中,會詳細的紀錄事故處理的狀態與時間。)
  4. Status Page
    最後是大家經常在別人的服務掛掉時,會去查看的 Status Page,這是 Ultimate 的付費功能。
    原廠很貼心的設計了一個可以讓 Incidents 與靜態網頁關聯的架構。該功能會幫你將 Status Page 做成靜態網頁部署在 AWS S3 上;當事故發生時,就會更新該靜態網頁背後的 JSON 檔案,讓 Status Page 顯示服務異常,以及你想要讓顧客知道的資訊。
    https://ithelp.ithome.com.tw/upload/images/20241006/20120986unax9GdcN7.png
    (擷圖來源:https://docs.gitlab.com/ee/operations/incident_management/status_page.html)

上面就是 GitLab 提供的 Incident management 各功能,是不是依然是一種可以免費使用,但如果想要使用的更順暢、更自動省力,那就需要付費才行。

最後簡單提一下,如果你想要用免費的方式來處理,大致上你會需要解決幾個問題:

  1. 讓 GitLab 與告警系統整合時,由於你無法在 GitLab 這邊彈性的控制 Alert key 的對應關係,所以你就只能想辦法調整告警系統送出來的 Alert 格式與內容。
  2. 續上,另外因為沒付錢,所以就算你把 Alert 資訊送進 GitLab 儲存,你也無法自動創建 Incident,所以你會需要自己另外建立一個機制,也許是另一個 Webhook 讓告警系統同步去觸發它,當這個 Webhook 收到資訊時,會自動去戳 GitLab 的 API 把 Incident 建起來,同時將它與 Alert 建立關聯性。
  3. 同樣,因為沒付錢所以你在 GitLab 上也沒有 On-call schedules & Escalation policies 可以使用,但通常告警系統或監控系統那邊也會有這兩個功能,所以你也只能讓團隊要跨系統的處理事故了。
  4. 最後,沒付錢,所以只好自己搭建 Status Page,你可以參考上面那張 GitLab 的流程圖,自己復刻一個類似的機制。例如利用 GitLab Pages 搭建一個靜態網頁,然後搭配一個 CI/CD Pipeline 去做自動化,當 Incident 發生時,就去戳 GitLab API 執行 Pipeline,然後該 Pipeline 會去特定的地方抓取 Incident 資料,然後更新你的靜態網頁。

好了,關於 GitLab 的 Incident management 功能介紹,就到此告一個段落,明天我們再繼續看看其他的付費功能。

https://ithelp.ithome.com.tw/upload/images/20241006/20120986ldI5q47m4x.png
圖片來源 - 吉卜力工作室 https://www.ghibli.jp/works/howl/#&gid=1&pid=30


上一篇
Day 21:GitLab 的 AI 功能 Duo
下一篇
Day 23:GitLab 的 Portfolio Management 功能
系列文
就是工商,為什麼要使用付費版 GitLab?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言