01. 背景
1)運維轉型背景
藍鯨平臺從誕生之初,就一直在不遺余力地推動運維轉型,讓運維團隊可以通過一體化PaaS平臺,快速編寫腳本,編排流程,開發(fā)運維工具,從被動地提供運維支撐服務,轉型為主動地提供SRE增值服務。為了讓運維人員更快成長為“六邊形運維”(參考《在線跟騰訊工程師學習SaaS開發(fā)》,泛指運維界的六邊形戰(zhàn)士,特指掌握了運維開發(fā)技能的運維人群),降低運維開發(fā) SaaS 的難度,藍鯨不僅提供了藍鯨開發(fā)框架,通過集成身份驗證、API調用、模板渲染、UI組件庫等功能,大幅降低了運維開發(fā)SaaS的難度,而且配套了詳細的【開發(fā)指南文檔】和視頻課程。
然而,在實際操作中,我們觀察到運維人員的主要工作往往涉及與各種IT對象和環(huán)境進行交互。因此,盡管他們學習使用Python這類腳本型語言來進行后臺開發(fā)相對較為順暢,但當他們試圖設計并開發(fā)一個用戶體驗尚可的前端頁面時,卻面臨較高的入門難度。他們往往面臨兩種選擇:要么開發(fā)的頁面功能相對簡單、設計樸素,要么需要投入大量的時間和精力進行頁面布局和交互設計的打磨。
為了解決這個難題,我們進一步提供了運維開發(fā)平臺,使用低代碼技術,通過拖拽組件組裝頁面,讓開發(fā)工作可視化靈活組裝、所見即所得,并且針對復雜交互場景有很好的適應性,可以靈活地通過函數編碼實現。
2)大模型對運維開發(fā)帶來的挑戰(zhàn)和機遇
最近幾年,大模型的爆發(fā)式發(fā)展為開發(fā)和運維行業(yè)帶來新的變革,2021 年 7 月 1 日,由 GitHub 和 OpenAI 共同開發(fā)的人工智能編碼助手——Copilot正式發(fā)布,如同連環(huán)炸彈的連續(xù)迸發(fā),持續(xù)為開發(fā)者和整個軟件行業(yè)帶來震撼與驚喜。就在上個月,國內首個AI程序員入職了阿里云,這個叫“通義靈碼”的程序員具有扎實的編程基礎,能熟練使用200多種編程語言,具備生成詞級/行級/塊級/函數級/類級等代碼內容的能力,還能自動生成測試用例、代碼優(yōu)化、生成注釋等。而且,通義靈碼的工作節(jié)奏比996還要極致:7x24小時隨叫隨到......看起來,大模型的應用似乎要終結開發(fā)框架、低代碼這類腳手架開發(fā)工具。難道,運維不再需要開發(fā)轉型了?甚至“零運維”在AI的幫助下提前實現了?
不過在最近一段時間,我們團隊研究對比了多款國內外大模型,并且在知識查詢、開發(fā)問答、代碼補全、單元測試生成以及SaaS應用構建等多個維度進行了能力測試和驗證,事實表明,大模型現階段還不能完全替代開發(fā)者,在一些專業(yè)的運維開發(fā)領域,能夠成為運維人員的“開發(fā)副手”,加快運維組織的轉型。
02. 大模型的優(yōu)勢分析
首先,我們分析,大模型的主要能力體現在以下幾個方面:
1)語言理解
大模型通過訓練可以理解和解釋自然語言文本,能夠回答問題、提供解釋、理解指令和上下文含義等。
2)知識總結
大模型可以提取文本知識的關鍵信息,生成摘要,使得用戶能夠快速了解長篇文章或報告的主要內容。
3)語言創(chuàng)作
大模型能夠根據輸入的上下文信息生成連貫、流暢的文本,例如撰寫文章、生成對話、創(chuàng)作詩歌或故事等。
4)問答系統(tǒng)
大模型可用于構建問答系統(tǒng),與用戶進行自然語言交流,回答用戶提出的問題,如在線客服、智能助手等。
5)文本生成
大模型可以根據上下文生成各種類型的文本,如代碼注釋、代碼補全、單元測試等。
這些能力使得大模型在許多實際應用中具有廣泛的應用價值,如搜索引擎、推薦系統(tǒng)、知識庫、智能客服等。隨著技術的發(fā)展和模型的不斷優(yōu)化,大模型的性能和應用范圍還將進一步擴大。
而我們推動運維開發(fā)轉型的主要手段包含一體化運維平臺、基于PaaS架構的開發(fā)框架、基于低代碼技術的運維開發(fā)平臺,這些工具分別提供了開箱即用的產品功能、可以快速組裝的腳手架、所見即所得的圖形化界面等多層次的能力,規(guī)避運維人員不熟悉開發(fā)語言和軟件工程的短板,加速能力躍遷。
對比大模型的主流應用形態(tài)——AI對話交互和傳統(tǒng)的運維產品和工具——GUI交互,兩者各有優(yōu)勢。大模型更適合通過對話解決信息查詢、上下文檢索等問題,并且適合移動或小屏幕設備,在個性化、長尾需求場景里也能較好適配。而傳統(tǒng)的GUI交互,在數據處理、高精度任務、快速導航上還保持著優(yōu)勢地位,并且提供了直觀的操作體驗。
03. 大模型在運維開發(fā)上的應用
從大模型的原理上看,模型經過海量的數據訓練
,在開發(fā)領域,很多大模型學習了幾十億行代碼,龐大的數據基礎使得這些模型在代碼的規(guī)范性、準確性方面展現出了卓越的效果。同時,自然語言理解的突出優(yōu)勢,讓大模型在運維和開發(fā)專業(yè)知識掌握上是非常全面的,并且可以通過RAG等技術實現私域知識的檢索,在運維工具開發(fā)輔助上可以發(fā)揮多種作用,提高開發(fā)效率和質量。以下是我們在運維開發(fā)領域的主要應用場景:
1)代碼生成
在SaaS開發(fā)中,開發(fā)者經常會遇到需要查詢資料或者閱讀其他人編寫的代碼的情況,如果使用瀏覽器的搜索引擎或者一些開源大模型,必然會經常性地切換窗口打開瀏覽器,這個過程會給開發(fā)人員帶來不少干擾。所以,在代碼輔助編寫場景,我們通過 BKGPT 插件對接大模型和IDE,讓開發(fā)者可以在編程工具里閉環(huán)信息檢索的過程,大大提升了開發(fā)問題查詢效率。
其次,我們提供了BKCodeAI 插件,可以實現根據注釋中的需求描述,進行代碼生成和補全,當前已經支持函數級代碼生成。BKCodeAI 安裝并配置成功后,IDE 編輯器中,當前光標所處位置的上方有注釋或者代碼內容時,此時鍵盤回車、空格、tab 等按鍵時便會觸發(fā) BKCodeAI進行代碼生成或補全。
較為常見的場景如下:
2)代碼審查
另一方面,和其他的編程 Copilot 工具一樣,BKGPT 是一個助手而非人類程序員的替代品,開發(fā)者不能簡單地采納Copilot的建議,還需要結合個人的編程經驗和專業(yè)知識最終完成SaaS的構建。所以在當前階段,單元測試、代碼審查這類軟件質量措施需要堅持執(zhí)行,不過在大模型的幫助下,不再需要開發(fā)者花費太多精力處理這些事項,大模型可以自動生成單元測試,并根據代碼的提交記錄自動生成 Code Review 建議。
BKCodeAI 插件安裝成功后,當在 git push 時,會自動觸發(fā) AI CodeReview 任務,CR 任務將異步執(zhí)行,不會阻塞 push 操作,CR 任務執(zhí)行完成后會在 IDE 彈窗提醒 CR 詳情鏈接。
打開 CR 詳情鏈接,可以跳轉到AI開發(fā)助手產品的 CR 歷史頁面,查看到大模型為本地提交的代碼自動生成的審查結果。
3)專業(yè)知識問答
大模型天然在自然語言理解和知識總結有巨大的優(yōu)勢,而嘉為藍鯨又有上千家各行各業(yè)的企業(yè)運維解決方案實施經驗,積累了海量的運維開發(fā)領域專業(yè)知識。技術架構上,通過 RAG + Embedding 技術,可以海量的運維知識(截至2023年12月,嘉為知識庫存量文檔394035篇,月均消費7萬+次)向量化存儲,作為大模型的外掛知識庫,利用大模型強大的總結能力,可以總結提煉出解決方案回復給開發(fā)者。并且,針對API調用以及企業(yè)內的系統(tǒng),可以通過Function call技術實時獲取更多的知識如API調用測試結果,輔助開發(fā)者更準確的驗證接口參數。
通過打通企業(yè)微信機器人,可以讓開發(fā)者很方便地查詢開發(fā)知識,該問答機器人除了回答常規(guī)的開源知識外,也能很好地提取公司內的私域知識,然后總結后回復給提問者。
“正確的問題往往比答案重要,好的問題就是一般的答案”這個結論在大模型領域體現得淋漓盡致,在智能問答助手上線后,我們發(fā)現有部分開發(fā)者反饋回復不準確,存在大模型“胡說八道”的情況,深入追究,發(fā)現往往是開發(fā)者的提問比較模糊或者提問格式不符合規(guī)范。其實這個現象在大模型的各個行業(yè)應用中都比較普遍,這也是為什么會有“提示詞工程”的重要原因之一。
為了解決提問不規(guī)范的問題,我們單獨開發(fā)了一個“AI開發(fā)助手”的SaaS,通過定義角色的方式預制 Propmt 提示詞,這樣可以讓熟悉“提示詞工程”的平臺開發(fā)工程師匯總運維開發(fā)關注的常見問題,比如定義“前端TS專家”,用于解決開發(fā)者不熟悉前端的痛點;定義“變量取名專家”,規(guī)范開發(fā)者的代碼變量命名。
通過“預設角色”功能,智能問答場景進一步降低了開發(fā)者的使用門檻,更進一步,平臺開發(fā)工程師可以把產品的擴展開發(fā)能力——插件開發(fā)提煉成模板,開放給普通用戶使用。這樣即使是不懂開發(fā)的用戶,在頁面選擇了“插件模板生成員”后,也能快速開發(fā)出一個插件出來。
經過一段時間的運行,我們也發(fā)現了一個非常實用的提示詞撰寫技巧——CO-STAR 框架。該框架由新加坡政府科技局 (GovTech) 舉辦的首屆 GPT-4 提示工程大賽冠軍 Sheila Teo 提出。
CO-STAR是結構化的Prompt模板六大要素的首字母縮寫,即:
4)原子平臺產品集成
在運維的日常工作中,腳本編寫是一個比較核心且重要的工作,藍鯨平臺已經提供了一套運維基礎操作的原子平臺——作業(yè)平臺,讓運維的腳本管理工作頁面化,并且云化腳本版本管理模式,貼合現代化開放協同的理念,協作者借助平臺,可便捷地共享腳本資源。在大模型的能力加持下,作業(yè)平臺的腳本管理和問題分析插上了AI的翅膀,尤其是在腳本報錯分析、IT對象操作知識等方面,能力非常突出,極大地提升了運維日常的腳本開發(fā)效率,降低了腳本出錯的概率。
5)運維開發(fā)平臺集成
最后,在低代碼開發(fā)領域,運維開發(fā)平臺的優(yōu)勢在于圖形化開發(fā)方式、大量的預制組件、少量手工編碼、實現完整的應用(包含頁面、流程、數據等),可以降低開發(fā)難度、開發(fā)成本,縮短開發(fā)周期,但是也存在產品學習成本高、配置和腳本復雜度高、需求轉化難度大等問題。而這些短板恰好是大模型的優(yōu)勢——自然語言理解、基本推理、海量代碼的積累,所以,大模型可以比較完美地集成到藍鯨運維開發(fā)平臺中,并且在以下功能上帶來了更高的效率和更好的體驗:
① 自然語言自動生成頁面
開發(fā)者接到需求后,沒有產品經理,可以直接求助大模型幫忙生成頁面需要的組件,如表格、登錄框等。大模型查詢運維開發(fā)平臺內置的組件,并在頁面快速生成組件實例,整個過程比拖拉拽的交互更加高效。
② 修改頁面字段內容和配置
開發(fā)者需要針對組件設計一些交互邏輯,如屬性、事件等,可以直接對事件進行描述,如添加一個按鈕,并給按鈕的點擊事件進行描述“跳轉到首頁”,大模型的收到提示詞后生成平臺規(guī)則要求的配置或代碼,效果如下:
③ 后臺代碼或SQL生成
運維開發(fā)平臺的后臺代碼或SQL語句生成應該與其它的 Copilot 的代碼生成方式更優(yōu)化,分成以下步驟:
④ 需求文檔生成應用
更復雜點的場景,運維開發(fā)希望能根據業(yè)務需求,經過少量人為交互,可以直接生成最終的頁面和應用,這個步驟會更加復雜:
04. 未來展望
“把AI和大模型的能力賦能給運維團隊,推動運維開發(fā)轉型,實現組織可持續(xù)、自生長”始終是藍鯨品牌的發(fā)展理念,無論是已經“越過頂峰、走出低谷”的PaaS平臺、云原生技術,還是處于“期望頂峰”的大模型技術,藍鯨始終堅持腳踏實地地推動技術的實際應用,不斷降低運維使用新技術的門檻。當然,我們在中途休息小憩時,也不會忘記仰望星空,選擇摘取幾顆耀眼的“技術之星”,照亮我們的前行之路。
CMDB治理:CMDB數據消費與應用指南
查看詳細
1分鐘解鎖開箱即用價值流:研發(fā)效率飆升實戰(zhàn)指南
查看詳細
CCI持續(xù)集成平臺:高效集成K8s集群,流水線容器構建集群上線
查看詳細
嘉為藍鯨CCI持續(xù)集成平臺:Matrix Job 帶你開啟流水線編排 2.0 時代
查看詳細
告警管理:如何從零散事件中挖出關鍵信息
查看詳細
嘉為藍鯨CPack制品庫:全新ML模型管理功能,助力AI交付與企業(yè)級DevOps實踐無縫結合
查看詳細
申請演示