玉山銀行智能金融處根據開發者資料建立CI/CD可觀測性,使用者可以查看CI/CD流程在各個環境的部署失敗率。

玉山銀行智能金融處(簡稱玉山智金處)超過80名資料科學家,採用一套集中化的CI/CD流程,來將AI模型快速部署成服務。為了讓這群資料科學家專注模型開發,無須煩惱部署問題,玉山智金處另一個DevOps團隊負責統管這些CI/CD流程。但是,維護這套集中式CI/CD不是一件容易的事,DevOps團隊之一的玉山銀行智能金融處副主任工程師吳明倫,在今年DevOpsDays Taipei活動上揭露了他們所面臨的種種挑戰。

首先,所有資料科學家各自用的CI/CD邏輯集中到單一平臺,DevOps人員只要有一處出錯,就可能導致組織內CI/CD流程全部下線,DevOps團隊得承擔很高的變更風險。

不只如此,有時基礎設施團隊執行系統變更,導致資料科學家原有CI/CD流程失效,DevOps團隊得盡快掌握狀態,扮演基礎設施團隊和資料科學家團隊間的溝通角色。可是,適合觀測CI/CD流程的商用工具不多,導致DevOps團隊難以識別問題和評估優化方向。

問題遲遲無法解決,資料科學家會因自動部署屢屢失敗,對CI/CD流程逐漸失去信任,進而導致DevOps團隊也漸漸對自己提供的服務失去信心,形成了惡性循環。

為了突破現況,玉山智金處DevOps團隊今年開始用開發者資料建立CI/CD可觀測性,除了提供量化指標,協助主管層級的決策者和資料科學家掌握CI/CD流程具體狀態,DevOps人員也開始能識別明確的問題出處,進行對應處理。

三階段建立CI/CD可觀測性

玉山智金處建立CI/CD觀測性的第一步,是設定目標,確認需要的數據。吳明倫表示,團隊列出了三類重要數據,分別是開發者數據、CI/CD執行狀態,和CI/CD執行內容。其中,開發者數據包含資料科學家團隊資訊、使用CI/CD的習慣和開發習慣,CI/CD執行狀態則包含執行成功與否、執行時間與觸發機制。最後,CI/CD執行內容則來自CI/CD記錄檔,協助DevOps團隊了解執行CI/CD流程當下情形。

第二步,是尋找資料來源並收集資料。吳明倫表示,雖然CI/CD平臺已包含所需資料,但DevOps團隊並沒有使用平臺內建的視覺化工具,而是自行收集相關資料。

吳明倫解釋,現有視覺化工具大多要求依循一套既定開發流程,才能收集資料,這麼一來,「你的開發體系就會受到限縮。」再來,既有工具能收集的指標數量有限,會讓DevOps團隊失去分析彈性。尤其是,這些工具大多以單一項目和團隊為單位,無法適用於玉山跨多個資料科學家團隊的CI/CD架構。

決定自行開發資料收集架構後,玉山智金處的DevOps團隊採用Apache Airflow作為排程工具,通過 Python API Wrapper呼叫CI/CD平臺的API來獲取資料,最後再儲存至資料庫。

最後一步,是定義資料分析需求的使用者,再進行資料分析。吳明倫表示,玉山定出三種資料分析需求的使用者,分別是主管層級的決策者、DevOps工程師和資料科學家。DevOps團隊依據三類使用者的特性,條列出各類使用者需要掌握的資料,針對各類使用者產出不同報表。

玉山銀行智能金融處的DevOps團隊根據不同類型的使用者,提供不同資料。以資料科學家為例,DevOps團隊提供了開發者查看所屬團隊的開發指標,並且,資料科學家也能看到所屬團隊與其他資料科學家團隊的差異,作為優化開發的依據。最後,DevOps團隊也提供開發者資料分析資訊,提供資料科學家團隊判斷導入新工具的效益。

DevOps團隊提供主管層級的決策者觀看CI/CD流程狀態,包括流程部署次數和成功率,以評估發布效率和穩定性。另外,決策者也能查看組織長期的生產力和部署趨勢,了解組織整體發展。

DevOps團隊提供內部成員CI/CD流程各階段成功和失敗率、運作時間等,協助成員識別問題點。並且,成員也能從Log分析開發者遇到的痛點,進一步協助解決問題。

建立CI/CD可觀測性的三大好處

建立CI/CD觀測性後,吳明倫表示,對DevOps團隊帶來了不少好處。首先,DevOps團隊開始能根據量化數據評估CI/CD狀態,不像過去得等待使用者反應,才能衡量CI/CD流程表現。再來,DevOps團隊開始能識別問題層級,排定問題處理順序。例如,藉由根因分析,了解部分問題屬於Blueprint語法異常,需要優先修正,若屬於原始碼檢測工具服務異常,則優先轉送基礎設施團隊處理。

再來,蒐集CI/CD資料也有助DevOps團隊和資料科學家進行有效溝通,例如雙方能根據量化指標,討論流程優化方向。當資料科學家要希望導入新工具時,也能根據使用資料來進行量化評估。

甚至,DevOps團隊可以協助資料科學家團隊改善CI/CD的作法。吳明倫回憶,DevOps團隊有次觀察到單元測試錯誤率提高,發現原因開發團隊增加了許多新人,他們不熟悉自動化測試。因此,DevOps團隊開始在內部舉辦工作坊,分享自動化測試的理念和概念,協助提升CI/CD流程的使用效率。

最後,吳明倫提醒,每個組織的開發流程和維運流程不同,「適合每個組織的CI/CD可觀測性都不一樣。」因此,他建議,初期要先了解各種有資料分析需求的使用者痛點,產出一些報告後,再和特定種類使用者討論報告內容。若該類使用者認可這些報告,就可以進一步發展定期報表或批次更新的儀表板,甚至最後也能發展成即時更新的儀表板,一步一步建構CI/CD可觀測性。

熱門新聞

Advertisement