近年來軟體開發與維運的方法與技術日新月異,從專案管理 (Agile & Scrum)、版本管理(Git)、持續交付(自動建置、測試)、持續整合、安全測試左移、容器化、監控、警告、可觀測性到網站可靠性工程...等,技術人員所需要掌握的知識量與技術掌握程度與十年前比起來,是非常驚人的。除非為了學習、效能改校或迴避利益等情境下,多數情況下是不建議在某些成熟技術領域內重造輪子 (或重建管理方法),尤其是企業資訊管理 (Enterprise IT Managemet)。
過去在企業帶 DevOps 課程或進行顧問服務時,經常被客戶詢問哪一種工具好用? 哪一種管理流程最佳? 在不考慮公司政策或特殊需求,多數情況下我會推薦 All-in-one (或容易整合) DevOps Tool Chain 的產品,像 Azure DevOps (產品內建 Agile 與 Scrum Process) 或 GitHub (無痛整合多數 CI/CD/Secuity Tool)。並非當時任職公司關係而推薦這些產品,而是深知企業每次技術遷移 (Migration) 或數位轉型是非常勞師動眾且容易失敗的。在既有 IT 團隊視野不廣且經驗不足的情況下,依據喜好整合不同工具,對於大型企業 IT 是充滿風險的。
收到多數的回覆是 Continuous integration 與 Continuous delivery 這類自動化的內容;進階一點則是包含管理 (Agile, Scume, & Board) 與其心法;走在比較前面的企業會加上 回饋 (除了回饋進而改善流程意思,這裡也包含 Monitor 與 Alert)。至今,個人認為,應該是從員工手上 電腦 (開發環境) 開始,最終到 回饋 (監控與警告) 。無論真正答案是什麼,DevOps 與 Developer Experience 關係是需要被重視的。
首先,我們先來了解什麼是 DevOps 與 Developer Experience:
DevOps 是將開發 (Dev) 和維運 (Ops) 結合的實踐,旨在縮短系統開發生命週期並提供高品質的持續交付。這是一種強調溝通、協作、自動化和衡量的文化和組織轉型。
Developer Experience是專注於改善開發者整體體驗的原則和實踐。它包括開發人員使用的工具和技術、他們遵循的流程以及組織文化等因素。
DevOps 為開發人員提供提高工作效率所需的工具、技術、自動化任務與具協作性和工作平台,來幫助改善開發人員體驗。開發人員體驗可以讓開發人員更輕鬆地採用新實踐並減少團隊之間的摩擦,從而幫助改善 DevOps。個人遇到多數企業 IT 選擇 DevOps 工具時,開發者體驗幾乎是被忽略的,在工具導入中、後期間最常遇到問題是增加額外負擔 (包含工具整合、額外學習時間與維運負擔) 進而導致難以推廣,雖相較過去既有(Lengcy)流程有改善不少,稱不上是轉型失敗,但工程師必須承受這些繁瑣流程 (有人覺得的理所當然),即為忽略開發維運體驗所導致。
開發維運過程中要不停切換工具與視窗、需要多個登入位置、除錯時難以共享資訊...等。
GitHub Codespaces 是一種隨開即用、雲端式開發環境,以 Dev Container 方式來為開發者提供常見的語言、開發工具和公用程式進行開發;GitHub Copilot 則是世界上首個大規模 AI 開發人員工具,可協助開發人員用更少的精力更快地撰寫程式碼。這兩個從旁人眼光看來與 DevOps 無關的兩個工具,即為開發者體驗重要功能。對於多數企業來說,新進員工從報到到能開始提交程式,多數皆需要花費數個工作天,包含準備電腦、環境安裝、了解 DevOps Tool Chain、理解專案與程式碼...等,教育一個新人耗費相當大的成本,如果做不到幾個月離職,這一切全都浪費掉了。
Codespace 提供即時且一致的開發環境,新人無須花大量時間安裝設置環境;Copilot 協助開發人員理解專案目的、程式碼內容與開發維運流程,大幅縮短訓練時間。如同前文所提的,完善的開發者體驗讓開發人員更輕鬆地採用新實踐並減少團隊之間的摩擦。
如果你看過 Copilot Workspace 或 Copilot Extension 相關介紹,可能不意外有這個標題。首先,我們先簡單說明什麼是 Copilot Workspace 與 Copilot Extension。
Copilot Workspace 是一款以任務為中心的人工智慧助理; Copilot Extension 用於與 GitHub Copilot Chat 中的外部工具進行互動。
(圖片取自 Copilot Workspace)
身為 IT 人員,每天都會從一項任務開始,然後開始探索、理解、完善和完成該任務的旅程。從基本的 issue 與 alert 開始,會依據問題制定工作事項(規格)、什麼時候執行(計畫) 然後開始開發或修正問題(實作)。想像一下每當收到新的 issue 與 alert,Copilot 會寫出相對應的規格並協助實作,最終 IT 人員只需 review pull reqest 並進行修正即完成工作,大幅提升處理 DevOps 日常工作,是不是很吸引人?
本系列文章會以 GitHub Codespace/Copilot 功能與範例進行分享,中間會穿插一些 DevOps 觀念與經驗在其中,讓讀者以另一個角度看待 AI 對於既有 DevOps 有什麼影響。