
譯者 | 布加迪
審校 | 重樓
盡管云自動化領(lǐng)域取得了諸多進(jìn)步,但大多數(shù)工程團(tuán)隊(duì)仍然通過工單、儀表板或隱藏的文檔與其基礎(chǔ)架構(gòu)進(jìn)行交互。想要檢查生產(chǎn)環(huán)境的AWS S3存儲桶是否可公開訪問?準(zhǔn)備好打開云控制臺,點(diǎn)開一系列錯綜復(fù)雜的選項(xiàng)卡。想要知道最近的Terraform提交是否導(dǎo)致了策略漂移?是時候開始深入鉆研日志和電子表格了。
生成式AI的興起為云原生運(yùn)維提供了一種更自然的界面(重要的是,該界面能夠理解工程師的語言,并與他們已經(jīng)在使用的系統(tǒng)進(jìn)行交互)。這時候智能Slackbot應(yīng)運(yùn)而生:它是一款對話式助手,能夠理解你團(tuán)隊(duì)的云,與你的文檔和API集成,并能實(shí)時響應(yīng)有關(guān)基礎(chǔ)架構(gòu)狀態(tài)、合規(guī)和自動化的問題。
下面詳細(xì)介紹如何構(gòu)建你自己的基于AI的Slackbot:它能夠接入你的云環(huán)境,并使用開源工具和內(nèi)部知識庫,借助自然語言提供答案、寶貴知識和補(bǔ)救措施。
為什么要為你的云構(gòu)建AI Slackbot?
如今,團(tuán)隊(duì)擁有豐富的工具——基礎(chǔ)架構(gòu)即代碼(IaC)、策略引擎、可觀測性平臺和云治理工具。但這些知識大多各自孤立,或需要專門的知識才能訪問或獲取。開發(fā)者仍依賴平臺工程師來獲取答案,這些答案本來可以自助獲取,也應(yīng)該自助獲取。
通過創(chuàng)建一個與你平臺團(tuán)隊(duì)的文檔和云API集成的對話式界面,你可以發(fā)掘一種更易于訪問、對開發(fā)者友好的方式來查詢云基礎(chǔ)架構(gòu)并采取相應(yīng)操作??梢詫⑵湟暈橹卫頃r代的 ChatOps:詢問資產(chǎn)配置、觸發(fā)工作流程或檢測漂移,這一切無需了解要查看哪個代碼庫或儀表板。
第1步:構(gòu)建知識庫
第一步是讓你的Slackbot能夠了解貴組織的云環(huán)境。這意味著將平臺團(tuán)隊(duì)的文檔(比如運(yùn)行手冊、架構(gòu)說明、策略定義和IaC 模塊)提取成可以用自然語言查詢的格式。
這可以使用向量數(shù)據(jù)庫和文檔加載器來實(shí)現(xiàn)。LangChain、LlamaIndex或Haystack等工具可讓你將文檔分塊并嵌入到語義搜索索引中。這些工具可以處理從解析Markdown、Confluence頁面或谷歌文檔,到通過基于大語言模型(LLM)的提示讓數(shù)據(jù)可以查詢的所有任務(wù)。
這個階段的關(guān)鍵考慮因素:
- 分塊大小和重疊影響你響應(yīng)的精確度。
- 你需要定期重新索引文檔以體現(xiàn)變更。
- 標(biāo)記或命名空間文檔可以針對多云或多團(tuán)隊(duì)環(huán)境提高相關(guān)性。
第2步:實(shí)施對話式引擎
知識庫搭建完成后,就可以構(gòu)建Slackbot界面了。這意味著將Slack的消息API與開源框架連接起來,該框架允許你將問題傳送到語言模型,使用上下文知識豐富查詢,并在對話流中處理響應(yīng)。
LangChain和Semantic Kernel之類的框架提供了預(yù)構(gòu)建的智能體,可以結(jié)合多個數(shù)據(jù)源,包括你的向量存儲區(qū)、內(nèi)部API和靜態(tài)工具。你將設(shè)置一個Slack應(yīng)用程序,訂閱消息事件,并將用戶查詢傳輸?shù)侥愕膶υ捴悄荏w。
幾個最佳實(shí)踐:
- 利用提示模板引導(dǎo)助手使用針對特定基礎(chǔ)架構(gòu)的語言,并避免幻覺。
- 記錄查詢和響應(yīng),以微調(diào)性能并捕捉極端情況。
- 添加用戶身份驗(yàn)證,確保只有授權(quán)的工程師才能訪問敏感信息。
第3步:集成云API
你的Slackbot已經(jīng)能夠理解文檔并做出響應(yīng),接下來是時候通過使用API將其連接到實(shí)時云基礎(chǔ)架構(gòu),使其具有動態(tài)性。
像Firefly這樣的API提供了跨云資產(chǎn)、IaC定義和策略合規(guī)的統(tǒng)一可見性,允許你以編程方式查詢從安全組到資源所有權(quán)的一切內(nèi)容。如果將這些端點(diǎn)集成到Slackbot的工具包中,可以搞清楚以下問題:
- “哪些EC2實(shí)例包含未標(biāo)記的卷?”
- “開發(fā)環(huán)境是否違反了我們的成本中心策略?”
- “顯示已部署基礎(chǔ)架構(gòu)與IaC基準(zhǔn)架構(gòu)之間的偏差?!?/li>
關(guān)鍵在于將自然語言提示映射到API調(diào)用,然后將響應(yīng)重新格式化為對話式回復(fù)。比如說,可以將“試運(yùn)行(staging)階段是否存在漂移?”路由傳送到Firefly漂移檢測API,并返回受影響資源列表。
你無需專門使用Firefly。AWS Config、Open Policy Agent或內(nèi)部元數(shù)據(jù)API等工具可以起到同樣的作用。但關(guān)鍵在于在你的機(jī)器人與云API之間創(chuàng)建一個抽象層,以便你可以根據(jù)需要交換或擴(kuò)展集成,而Firefly在這方面做得很好。
第4步:添加自動化和自助服務(wù)操作
在只讀查詢正常運(yùn)行后,下一步是賦予工程師受控制的寫入操作。這可能包括觸發(fā)預(yù)先批準(zhǔn)的修復(fù)腳本、更新標(biāo)簽或啟動基礎(chǔ)架構(gòu)工作流。
為了安全地執(zhí)行此操作,你的Slackbot應(yīng)該:
- 驗(yàn)證請求(比如僅允許對非生產(chǎn)帳戶進(jìn)行修復(fù))。
- 向用戶確認(rèn)(比如“你是否要為XYZ漂移運(yùn)用修復(fù)程序?”)。
- 將所有操作和響應(yīng)記錄到審計(jì)跟蹤中。
你可以將這些操作連接到CI/CD管道、GitOps流程或者Rundeck或Temporal之類的自動化平臺。其魔力在于將意圖(“修復(fù)S3策略”)轉(zhuǎn)化成精心編排的后端操作,并將已執(zhí)行的操作反饋給用戶。
信任與治理方面的考量
智能云機(jī)器人只有在可信任的情況下才有用。這意味著要加強(qiáng)護(hù)欄機(jī)制和透明度:
- 顯示所有基于文檔的響應(yīng)的源鏈接。
- 為所有觸發(fā)的操作添加審計(jì)日志。
- 使用基于角色的訪問控制(RBAC)來限制敏感查詢。
- 允許管理員覆蓋或更正虛假答案。
建立信任還意味著明確設(shè)定期望:你的Slackbot并非取代平臺團(tuán)隊(duì),而是通過將文檔和工作流程轉(zhuǎn)化成更易于發(fā)現(xiàn)、易于操作且用戶友好的內(nèi)容來助力平臺團(tuán)隊(duì)。
智能Slackbot=提高運(yùn)維能力
你會如何使用強(qiáng)大的平臺運(yùn)維界面?通過將基于AI的上下文與實(shí)時云可見性和自動化組件相結(jié)合,你的Slackbot不僅僅是一個聊天工具,還會成為你云環(huán)境的大門。
隨著生成式AI日趨成熟,預(yù)計(jì)這種模式會重演:界面變得更加簡潔,智能嵌入到工具中,自動化由人類意圖而非復(fù)雜腳本驅(qū)動。如果你一直在等待將AI引入到平臺工程堆棧的方法,這是一個實(shí)用且高效的起點(diǎn)。
你的云知道大量信息。是時候讓你的團(tuán)隊(duì)能向云提各種問題、并從中汲取信息了。
原文標(biāo)題:Build an Intelligent Slackbot That Knows Your Cloud: 4 Steps,作者:Eran Bibi




























