# DevOps 與 GenAI:在人工智慧時代的未來之路 - 邱宏瑋 {%hackmd LeyMdnM3Q4ipfr57bkqpyA %} ## [📚 議程介紹](https://webconf.tw/agenda/day2-6-m) [TOC] ## ▼▼▼ 開始筆記 ▼▼▼ 主要是個人分享經驗 講者Blog [Link](https://www.hwchiu.com/about) ## Devops是什麼 每個人做法都不同,十個人就會有十一種答案 DevOps找工作每一間公司大概都有一點不同,但看起來大方向是相近的 每一個 ## DevOps 所以什麼是DevOps? 不可量化的工作文化 ### Best? 每個人都想把最佳解放到自己環境中 想找到tools 然後想找practice 也想找principle values mindset tools以下都是軟體 以上都是人的問題 ### 文化改變 - 文化改變的重點不是技術,也不是專案 - 是人 - Gen AI無能為力 - 不要拿問到的答案來背書,甚至當作指導棋 - 文化轉變只有親身體驗 這也是為什麼經驗很重要 - 如同scrum 10個團隊運行,會有11種意見跟走法 ### Devops工程師 * DevOps工程師到底要做什麼 * 職缺內容百百種 * 上天下地 * 從地端到雲端 * 包山包海 ### DevOps工程師 這些工作流程大抵可以分成 - 設計 - 設計各種工具規範安裝整合 - 導入新工具設計架構 - 開發 - 撰寫各種類型工具來程式化你的流程 - 維運 - 監控各種線上服務 - 問題排解,找出root cause並且預防 ### 系統維運 把問題丟進去AI後,AI給了很多概念包含: 可能是資源不足,設定檔案有問題 解法 透過dh, iostat, free, top去檢視各種資源狀況 檢查設定檔案是否正確 透過fsck檢查硬碟 上述所有指令應該要怎麼用?用什麼參數?怎樣解讀輸出 ### 系統問題OOM - 記憶體超量被砍掉了?誰是兇手? - Log怎樣解讀? - 其他名詞 -k8s - cgroups管理 - OOM_score:984 - 我們得到了什麼? - a.out的問題? - a.out是誰? - 什麼是oom_score? - 984高還是低? 系統維運層面 AI 只能給出比較 general 的資訊,後續 detail 的排查還是要細問才能知道,還是要吃人的經驗。 ### 開發 - k8s的世界裡面,我們要寫不同yaml描述application的狀態 - yaml - 語法跟語意都要正確 ### K8s Debug - AI說有問題 > 但是實務上可以正常運行 - 我們要怎樣看這件事情? - k8s的api寫法彈性,AI的說法是一知半解 - 問法?問法要修正嗎? - 可能原因? - k8s版本太廣會不會版本問題 - AI矯枉過正? ### k8s更新 - k8s最大問題,更新頻繁 - 一年更新3-4次 - API更動 - 不同使用者版本不同? - 發問補上版本可以嗎? - yaml寫法變動 - 但大部分進階功能也沒人知道 - 網路上也沒有文章討論功能 - 很多yaml也只是最基本的功能可運行,進階功能也沒有支援 #### 解法 - 閱讀官方文件 - 閱讀官方設計文件,從中找到蛛絲馬跡 - 太新的東西去問AI不會有精準的解答 - 你無法判別錯誤與否,就別花時間調整問法 - 直接找source code找到原始設計文件 AI是輔助學習不是拿來要答案 AI 有訓練上的知識時間 cut off 問題,可能沒辦法回答最新的知識變動。 ## 程式撰寫 AI 可以拿來協助 devops 的地方 寫工具類 bash script 但也不是不會出錯 出錯時如何處理: 觀看寫法是否符合預期? 輸出欄位跟他所想的不同。因為nestat在不同infra環境都不同(e.g. 不同Linux distribution)。但你要把那些必要資訊考量進去,因為結果可能未必適用於你的環境裡面。 ### 運行之後 東西可以運行之後看那些寫法有沒有我們可以學習的? - ss netsata - awk/uniq/sort/cut的用法跟組合技 - EUID的使用 ### 架構設計 沒有標準的東西,可能常常k8s裡面用GitOps裡面簡化部署 開發團隊撰寫app打包容器 可能透過GitOps ArgoCD部署 #### Source Code Source Code要放同一個Git Repo還是要分開? 分開要分兩階段完成 但一起是不是比較好管理 Git裡面很多,要分資料夾還是要分成Branch? AI 訓練的 source 包羅萬象,怎能保證他提供的資料一定是正確的?講者問 AI 問題,AI 拿講者以前的文章回答講者。 #### Git Repo設計 要by repo還是 By Branch 簡化CICD流程?怎樣叫做簡化? 針對一種範例給予實作細節。實作方式直觀 #### 學習 沒有辦法直接使用,但我可以用AI學習嗎? 獲得一個粗淺的框架,知道哪些東西可以比較 終究還是要透過POC來做評估 AI可以讓你濃縮資料,但不一定能給你答案 #### 結論 東西包山包海 - 設計 架構很難,網路上很多最佳實踐,但實踐上有很多環境差異跟不同特性 沒有一個萬用架構,AI能做的不是給我們答案,而是幫助我們找到答案 * 開發 * 針對自動化冠寫都能提高效率,但是還需要自己有走夠能力除錯 * 特別DevOps工程師很多時候被認為要整合很多不同工具,要撰寫很多不同型檔案 - 維運 分析各種系統log很好用 kernel Log相對尷尬,因為不常見,要好好去判斷AI寫的是否正確 --- ## 聊天室