AI標誌

使用 GitHub 實現人工智慧驅動的 DevOps

透過 GitHub 產品實現人工智慧驅動的 DevOps

規格

  • 產品名稱:基於 GitHub 的 AI 驅動的 DevOps
  • 特點:提高效率、增強安全性、更快交付價值

什麼是 DevOps?

如果有效實施,DevOps 可以改變組織交付軟體的方式—加速
發布週期、提高可靠性並推動創新。
真正的機會在於 DevOps 如何讓您在快速發展的市場中保持敏捷。透過建立協作、持續改進和策略性技術採用的文化,您可以以更快的產品上市時間和更強的適應變化的能力超越競爭對手。

DevOps 由多樣化的經驗、技術技能和文化觀點所塑造。這種多樣性帶來了多種解釋和不斷發展的實踐,使得 DevOps 成為一個充滿活力的跨學科領域。 DevOps 團隊具有跨職能性質,涉及軟體交付生命週期 (SDLC) 各個團隊的關鍵參與者。
在這本電子書中,我們將探討建立強大的 DevOps 團隊和實踐的價值,以及如何應用 AI 來自動化日常任務、保護程式碼並實現最佳的端到端生命週期管理。

透過 GitHub 實現 AI 驅動的 DevOps(1)

DevOps 定義

DevOps 社群的權威聲音 Donovan Brown 分享了被 DevOps 從業者廣泛認可的 DevOps 定義:

透過 GitHub 實現 AI 驅動的 DevOps(2)

DevOps 是人員、流程和產品的結合,能夠持續為最終用戶提供價值。

多諾萬·布朗

合作夥伴專案經理 // Microsoft1
在許多技術環境中,團隊根據其技術技能而彼此孤立,每個團隊都專注於自己的指標、KPI 和可交付成果。這種分散通常會減慢交付速度、造成效率低下並引發優先事項衝突,最終阻礙進展。
為了克服這些挑戰,組織應該努力促進協作,鼓勵建設性回饋,自動化工作流程,並實現持續改善。這有助於確保更快的軟體交付、更高的效率、更好的決策、節省成本和更強的競爭優勢。
團隊如何開始有效地採用新的 DevOps 實踐?他們可以先解決最重要的痛點,例如手動部署流程、較長的回饋週期、低效率的測試自動化以及發布流程中的手動幹預導致的延遲。

消除摩擦點可能會讓人感到不知所措,但近年來人工智慧的迅速崛起為開發人員提高工作速度和品質創造了新的機會。我們的研究發現,編寫和重新編寫的程式碼的質量view儘管之前沒有開發人員使用過該功能,但在啟用 GitHub Copilot Chat 後,ed 的整體表現有所改善。
85% 的開發人員在使用 GitHub Copilot 和 GitHub Copilot Chat 編寫程式碼時對其程式碼品質更有信心

85%

透過 GitHub 實現 AI 驅動的 DevOps(3)程式碼重新view與沒有 GitHub Copilot Chat 相比,操作更加簡便,完成速度提高 15%

15%

透過 GitHub 實現 AI 驅動的 DevOps(4)

DevOps + 生成式 AI:利用 AI 提高效率
透過促進共同責任的文化,DevOps 鼓勵協作並打破孤島。人工智慧透過自動執行重複任務、簡化工作流程和實現更快的回饋週期進一步實現了這一點,使團隊能夠專注於高價值的工作。
軟體交付的一個關鍵挑戰是效率低下和不準確,人工智慧可以透過優化資源管理和提供一致、更準確的結果來幫助解決這些問題。人工智慧驅動的效率不僅可以提高應用程式效能和基礎設施優化,還可以增強安全性並降低成本。
高效團隊可以識別並自動執行阻礙生產力和延長交付週期的重複任務。最終目標是為客戶和最終用戶提供最重要的服務,同時推動組織發展、加快產品上市時間並提高開發人員的生產力和滿意度。

透過 GitHub 實現 AI 驅動的 DevOps(5)

自動化日常事務
開發人員經常處理重複的日常任務。
這些通常被稱為“時間竊賊”,包括手動系統檢查、設定新代碼環境或識別和解決錯誤等。這些任務佔用了開發人員履行核心職責(即交付新功能)的時間。
DevOps 等同於團隊協調和自動化。
總體目標是消除 SDLC 中的負擔和障礙,並幫助開發人員減少手動和繁瑣的任務。讓我們看看如何利用人工智慧來解決這些問題。

使用 GitHub 簡化開發生命週期
讓我們結合 DevOps、AI 和 GitHub 的強大功能,看看您的團隊如何提供端到端的價值。 GitHub
被廣泛認為是開源軟體的發源地,但它也透過其 GitHub Enterprise 解決方案提供企業級功能。
GitHub Enterprise 透過提供統一的版本控制、問題追蹤、程式碼重複使用平台,簡化了 DevOps 生命週期view等等。透過減少團隊工作面的數量,這可以減少工具鏈蔓延、最大限度地降低效率低下並降低安全風險。

透過使用領先的 AI 開發工具 GitHub Copilot,可以減少重複任務所花費的時間並減少錯誤,從而加快開發週期。這可以加快交貨速度並縮短上市時間。
GitHub 上的內建自動化和 CI/CD 工作流程也有助於簡化程式碼重新views、測試和部署。這減少了手動任務的數量,同時縮短了審批時間並加快了開發速度。這些工具實現了無縫協作,打破了孤島,並允許團隊有效地管理專案的各個方面——從規劃到交付。

更聰明地工作,而不是更努力工作
自動化是 DevOps 的核心,它可以消除時間竊賊並專注於更快地交付價值。自動化是一個非常廣泛的術語,包括 SDLC 中的各種項目。自動化可以包括配置 CI/CD 等內容,以允許將程式碼變更無縫整合到生產環境中。這還可以包括自動化基礎設施即程式碼 (IaC)、測試、監控和警報以及安全性。
雖然大多數 DevOps 工具都提供 CI/CD 功能,但 GitHub 更進一步推出了 GitHub Actions,這是一種將企業級軟體交付給
您的環境 — 無論是在雲端、本地或其他地方。使用 GitHub Actions,你不僅可以託管你的 CI/
CD 管道,還可以自動化工作流程中的幾乎所有內容。
與 GitHub 平台的無縫整合消除了對額外工具的需求,簡化了工作流程並提高了生產力。 GitHub Actions 可以這樣改變你的工作流程:

  • 更快的 CI/CD:自動化建置、測試和部署管道,以實現更快的發布。
  • 提高程式碼品質:強制執行程式碼格式標準並儘早發現安全性問題。
  • 增強協作:圍繞開發流程實現自動通知和溝通。
  • 簡化合規性:幫助使儲存庫與組織標準保持一致。
  • 提高效率:自動執行重複任務以釋放開發人員的時間。

GitHub Copilot 可用於提出程式碼建議並建議使用哪些操作來建立更好的工作流程。它還可以為您的組織提供量身定制的編碼最佳實踐,您的團隊可以快速實施這些實踐以幫助執行治理和慣例。 GitHub Copilot 還可以與各種程式語言配合使用,並可用於建立操作和工作流程以輕鬆實現任務自動化。

要了解有關 GitHub Copilot 的更多信息,請參閱:

  • 使用 GitHub Copilot 在 IDE 中取得程式碼建議
  • 在 IDE 中使用 GitHub Copilot:技巧、訣竅和最佳實踐
  • 使用 GitHub Copilot 的 10 種意想不到的方法

減少重複任務
專注於自動化日常流程並使用 GitHub Copilot 等工具來簡化您的工作流程。例如ample,Copilot 可以協助產生單元測試——這是軟體開發中耗時但必不可少的部分。透過制定精確的提示,開發人員可以指導 Copilot 創建全面的測試套件,涵蓋基本場景和更複雜的邊緣情況。這減少了人工工作量,同時保持了較高的程式碼品質。

必須信任但要驗證 Copilot 提供的結果 — — 就像任何生成式 AI 工具一樣。您的團隊可以依靠 Copilot 完成簡單和複雜的任務,但在部署任何程式碼之前務必透過徹底的測試驗證其輸出。這不僅有助於確保可靠性,而且還能防止可能減慢工作流程的錯誤。
隨著您繼續使用 Copilot,優化您的提示將幫助您充分利用其功能,實現更智慧的自動化,同時進一步減少重複任務。
有關使用 GitHub Copilot 建立單元測試的詳細信息,請參閱:

  • 使用 GitHub Copilot 工具開發單元測試
  • 使用 GitHub Copilot 編寫測試

提示工程和背景
將 GitHub Copilot 整合到您的 DevOps 實踐中可以徹底改變您的團隊的工作方式。為 Copilot 製作精確、上下文豐富的提示可以幫助您的團隊實現新的效率水平並簡化流程。
這些好處可以轉化為您組織可衡量的成果,例如:

  • 提高效率:自動執行重複任務,最大限度地減少人工幹預,並透過可操作的見解實現更快、更明智的決策。
  • 節省成本:透過將 AI 整合到重複且容易出錯的流程中,簡化工作流程、減少錯誤並降低開發成本。
  • 推動成果:利用 Copilot 支援策略目標、改善客戶體驗並維持市場競爭優勢。

透過學習如何編寫精確而詳細的提示,團隊可以顯著提高 Copilot 建議的相關性和準確性。與任何新工具一樣,適當的入職和培訓對於幫助您的團隊最大限度地發揮 Copilot 的優勢至關重要。

您可以在團隊中培養有效及時的工程文化,方法如下:

  • 建立內部社群:建立聊天管道以分享見解、參與或舉辦活動並創造學習機會,為您的團隊創造學習空間。
  • 分享驚喜時刻:使用 Copilot 等工具建立文檔,為其他人的旅程提供指導。
  • 分享您學到的技巧和訣竅:舉辦知識共享會議並使用您的內部溝通(電子報、團隊、Slack 等)分享見解。

有效的提示有助於使人工智慧與您的團隊的目標保持一致,從而可以做出更好的決策、獲得更可靠的輸出並提高效能。透過實施這些快速工程方法,您不僅可以節省成本,還可以實現更快的交付、增強的產品供應並提供卓越的客戶體驗。

DevOps + 安全性:從內到外保護程式碼

當簡化的工具集支援時,管理 SDLC 的統一策略會更加有效。雖然工具蔓延是許多 DevOps 學科面臨的共同挑戰,但應用程式安全性往往受到其影響最大。團隊經常添加新工具來解決差距,但這種方法往往忽略與人員和流程相關的核心問題。因此,安全環境可能會變得混亂,充斥著從單一應用程式掃描程式到複雜的企業風險平台等各種東西。
透過簡化工具集,您可以幫助開發人員保持專注,減少上下文切換,並保持他們的編碼流程。一個在每一步都整合安全性的平台——從依賴性和漏洞警報到保護敏感資訊的預防措施——為您組織的軟體安全態勢帶來穩定性。此外,可擴展性至關重要,它使您能夠利用現有工具以及平台的內建功能。

保護每一行程式碼
當您考慮軟體開發時,可能會想到 Python、C#、Java 和 Rust 等語言。然而,程式碼有多種形式,各領域的專業人士(資料科學家、安全分析師和商業智慧分析師)也以自己的方式參與編碼。由此可見,您的安全漏洞潛在風險也會增加 — — 有時甚至是在不知不覺中。為所有開發人員(無論其角色或頭銜如何)提供一套全面的標準和方法,使他們能夠將安全性融入週期的每一步。

靜態分析和秘密掃描
在建置時整合方面,使用應用程式安全測試 (AST) 工具變得越來越普遍。一種微創技術是按原樣掃描原始碼,尋找複雜點、潛在漏洞和標準遵守情況。每次提交和推送時使用軟體組合分析 (SCA) 有助於開發人員專注於手邊的任務,同時提供拉取請求和程式碼重新提交的機制view變得更有生產力和更有意義。
秘密掃描是一種秘密武器,可以防止潛在地洩露機密或原始碼控制金鑰。配置後,秘密掃描會從超過 120 個不同的軟體和平台供應商的清單中提取數據,包括 AWS、Azure 和 GCP。這允許識別與這些軟體應用程式或平台相符的特定秘密。您也可以直接從 GitHub UI 測試秘密或金鑰是否有效,從而簡化補救措施。

使用 CodeQL 進行高階程式碼分析
CodeQL 是 GitHub 中一個強大的實用程序,可以分析程式碼以識別漏洞、錯誤和其他品質問題。它透過編譯或解釋從您的程式碼庫建立資料庫,然後使用查詢語言來搜尋易受攻擊的模式。 CodeQL 還允許您建立針對特定情況或與您的業務相關的專有用例的自訂變體資料庫。這種靈活性使得可重複使用的漏洞資料庫的開發成為可能,這些資料庫可以在掃描企業內的其他應用程式時使用。
除了強大的功能外,CodeQL 還可以快速為支援的語言提供掃描和漏洞結果,使開發人員能夠有效地解決問題而不影響品質。強大功能和速度的結合使得 CodeQL 成為維護各個專案程式碼完整性和安全性的寶貴資產。它還為領導者提供了一種可擴展的方法來提高組織的彈性並實施安全的軟體開發實踐。

透過 GitHub 實現 AI 驅動的 DevOps(6)分分鐘
從漏洞偵測到成功修復3

透過 GitHub 實現 AI 驅動的 DevOps(7)更精確
發現洩漏的機密,誤報率更低4

透過 GitHub 實現 AI 驅動的 DevOps(8)覆蓋範圍
Copilot Autofix 為所有支援語言中近 90% 的警報類型提供代碼建議5

  1. 總體而言,開發人員使用 Copilot Autofix 自動提交 PR 時間警報修復的平均時間為 28 分鐘,而手動解決相同警報則需要 1.5 小時(速度快 3 倍)。對於 SQL 注入漏洞:18 分鐘,而之前為 3.7 小時(快 12 倍)。根據 CodeQL 在啟用了 GitHub Advanced Security 的儲存庫的拉取請求 (PR) 中發現的新程式碼掃描警報。這些是前amp萊斯;你的結果將會有所不同。
  2. 秘密檢測工具對軟體秘密報告的比較研究,
    Setu Kumar Basak 等人,北卡羅來納州立大學,2023 年
  3. https://github.com/enterprise/advanced-security

揭開依賴圖的神秘面紗

現代應用程式可以有數十個直接引用的套件,而這些套件又可以有數十個依賴套件。這項挑戰 amp因為企業面臨著管理數百個具有不同依賴程度的儲存庫的問題。這使得安全性成為一項艱鉅的任務,因為了解整個組織正在使用哪些依賴關係變得困難。採用依賴管理策略來追蹤儲存庫依賴關係、漏洞和 OSS 許可證類型,可以降低風險並有助於在問題進入生產之前檢測到問題。
GitHub Enterprise 讓使用者和管理員能夠立即了解依賴關係圖,並使用 Dependabot 的警報標記可能帶來安全風險的過時程式庫。

儲存庫依賴關係圖包括

  • 依賴項:在儲存庫中標識的依賴項的完整列表
  • 依賴項:任何依賴儲存庫的項目或儲存庫
  • Dependabot:Dependabot 發現有關您的依賴項的更新版本的任何信息

透過 GitHub 實現 AI 驅動的 DevOps(9)

對於儲存庫級漏洞,導覽列中的「安全性」標籤顯示可能與程式碼庫相關的依賴項相關的已識別漏洞的結果。 Dependabot view 列出與已識別漏洞相關的警報,並允許您 view 任何可能有助於自動對公共儲存庫的某些警報進行分類的規則集。

透過 GitHub 實現 AI 驅動的 DevOps(10)

GitHub 企業版與組織版 views
使用 GitHub Enterprise,您可以 view 並管理組織和企業中所有儲存庫的依賴項、漏洞和 OSS 許可證。依賴關係圖可以讓你全面了解 view 所有註冊儲存庫的依賴關係。

透過 GitHub 實現 AI 驅動的 DevOps(11)

這個一目了然的儀表板不僅提供了已識別的安全警告的出色快照,而且還提供了與依賴項相關的許可證分佈情況
在您的整個企業中使用。 OSS 許可證的使用可能特別危險,特別是當您管理專有程式碼時。一些更嚴格的開源許可證,例如 GPL 和 LGPL,可能會導致您的原始程式碼容易被強制發布。開源元件需要找到一種統一的方法來確定您可能不合規的地方,並且可能希望為使用這些許可證引入的軟體包找到其他替代方案。

維護您的安全態勢

許多企業級原始碼控制管理系統為您提供使用策略、預先提交掛鉤和平台特定功能保護程式碼的選項。可以採取以下措施來規劃全面的安全態勢:

  • 預防措施:
    GitHub 允許配置和使用不同類型的規則集來強制行為並防止特定分支中不必要的變更。例如amp樂:
    • 合併更改之前需要拉取請求的規則
    • 保護特定分支不直接推送更改的規則

可以使用預提交掛鉤執行額外的客戶端檢查。 Git 作為原始碼控制管理系統,支援預先提交鉤子來執行各種任務,例如格式化提交訊息或在提交變更之前執行格式化和驗證例程。這些鉤子可以利用高級實用程式來幫助確保本地層級的程式碼一致性和品質。

  • 保護措施:GitHub 還允許配置保護措施,包括使用在拉取請求或 CI 建置期間可以建立的檢查。這些包括:
    • 依賴性檢查
    • 測試檢查
    • 代碼品質檢查
    • 質量門
    • 人工幹預/人工審批

GitHub Enterprise 使軟體開發團隊能夠非常快速地識別漏洞並採取行動,從過時的依賴項和簽入的機密到已知的語言漏洞。憑藉以下附加功能 view透過依賴關係圖,團隊領導和管理員掌握了所需的工具,以便在安全公告方面保持領先地位。循環查看正在使用的許可證類型,您將獲得一個全面的安全第一風險管理平台。

使用 GitHub Enterprise 為 DevOps 流程提供支持
到目前為止,可以說 DevOps 的概念已為科技業人士廣泛熟悉。然而,隨著部署應用程式的新工具和方法不斷湧現,這可能會給不斷發展的組織帶來壓力,使其難以有效地管理和衡量其結果。
滿足市場對具有彈性、可擴展且經濟高效的應用程式的需求可能具有挑戰性。利用基於雲端的資源可以幫助縮短產品上市時間,加快開發人員的內部循環,並允許在註重成本的控制下進行大規模測試和部署。

啟用雲端原生應用程式
就像左移範式將安全性、測試和回饋更接近開發內循環一樣,開發雲端應用程式也是如此。採用以雲端為中心的開發實踐有助於開發人員彌合傳統方法和現代雲端解決方案之間的差距。這種轉變使團隊能夠超越簡單地創建雲端優先應用程序,而建立真正的雲端原生應用程式。

在雲端開發,部署到雲端
有利於無縫開發的 IDE 現在已成為標準期望。然而,在該環境中可移植性的想法相對新穎,尤其是考慮到基於雲端的 IDE 的最新進展。隨著 GitHub Codespaces 和底層 DevContainers 技術的推出,開發人員現在能夠在可移植的線上環境中開發程式碼。此設定允許他們利用配置 file使他們的開發環境能夠進行客製化以滿足特定團隊的要求。

透過 GitHub 實現 AI 驅動的 DevOps(12)

可重複使用性和可移植性的結合為組織提供了顯著的優勢tag西。團隊可以
現在集中他們的配置和環境規範,使每個開發人員——無論是新手還是有經驗的開發人員——都可以在相同的設定中工作。擁有這些集中配置可以讓團隊成員為這些配置做出貢獻。隨著需求的發展,環境可以更新並為所有開發人員保持穩定狀態。

大規模管理工作流程
開發人員的工作流程和產品上市時間才是真正推動生產力指標的因素。然而,大規模管理這一點可能是一個挑戰,特別是當許多不同的開發團隊使用工作流程和部署到各種雲端、雲端服務甚至本地安裝時。以下是 GitHub Enterprise 承擔大規模管理工作流程負擔的幾種方法:

  • 透過可重複使用的操作和工作流程進行簡化
  • 使用以下方式進行治理
    行動政策
  • 使用由 發佈的操作
    經過驗證的出版商
  • 使用分支策略和規則集來幫助確保一致性並保護主線程式碼
  • 配置在企業和組織層面有意義的內容

端對端軟體生命週期管理
管理計畫內的工作和進行中的工作是敏捷軟體開發的重要基石。 GitHub Enterprise 提供了一個輕量級的專案管理結構,讓使用者可以建立專案、將一個或多個團隊和儲存庫與該專案關聯,然後使用在連結儲存庫上開啟的問題來追蹤專案內的整體工作項目。標籤可用於區分不同類型的問題。

對於前ample,一些預設的
可以與問題一起使用的標籤是增強、錯誤和功能。對於任何與問題相關的任務清單的項目,都可以使用 Markdown 將該任務清單定義為清單,並將其包含在問題正文中。這樣可以根據該清單追蹤完成情況,並有助於使其與專案里程碑(如果已定義)保持一致。

管理回饋迴路 
毫無疑問,開發人員越早收到有關特定功能的回饋,與驗證變更相比,修復潛在問題和發布更新就越容易。每個組織都有自己喜歡的溝通方式,無論是透過即時訊息、電子郵件、對票證或問題的評論,或是電話。 GitHub Enterprise 的另一個功能是討論,它為開發人員和使用者提供了在基於論壇的環境中互動的能力,交流變化、與功能相關的任何類型的問題或新功能的建議,然後可以將其轉化為工作項目。

圍繞討論的功能集在開源專案中已經流行了相當長一段時間。當已經有企業級溝通工具時,有些組織可能很難看到使用討論的好處。隨著組織的成熟,能夠分離與特定軟體特性和功能相關的通信,然後透過與特定儲存庫相關的討論來中繼這些通信,這可能會讓開發人員、產品所有者和最終用戶能夠在特定於他們感興趣的功能的環境中進行緊密互動。

工件生命週期
工件管理是所有軟體開發生命週期的核心之一。無論是執行檔、二進位檔案、動態連結程式庫或靜態 web 程式碼,甚至透過 Docker 容器映像或 Helm 圖表,擁有一個可以對所有工件進行分類和檢索以進行部署的中心位置至關重要。 GitHub Packages 允許開發人員儲存標準化的套件格式,以便在組織或企業內部分發。
GitHub Packages 支援以下內容:

  • 梅文
  • 搖籃
  • npm
  • 紅寶石
  • Docker 映像

如果您擁有不屬於這些類別的工件,您仍然可以使用儲存庫中的發布功能來儲存它們。這允許您附加所需的二進位檔案或其他 files 根據需要。

管理品質
測試是軟體開發不可或缺的一部分,無論是在持續整合建置期間執行單元測試或功能測試,或是讓品質保證分析師執行測試場景來驗證 web 應用。 GitHub Actions 可讓您將各種不同的測試類型整合到您的管道中,以協助確保評估品質。
此外,GitHub Copilot 還可以就如何最好地編寫單元測試提供建議,減輕開發人員創建單元或其他類型測試的負擔,讓他們能夠更加專注於手頭上的業務問題。

能夠輕鬆整合各種測試實用程式有助於確保在整個開發生命週期中評估品質。如前所述,您可以使用 GitHub Actions 工作流程中的檢查來驗證某些場景。這包括在允許合併請求之前能夠成功執行一整套測試。取決於tag在部署過程中,您還可以指定包括整合測試、負載和壓力測試甚至混沌測試在內的檢查,以幫助確保在投入生產之前對通過部署管道的應用程式進行適當的測試和驗證。

結論
在規劃旅程的下一步時,重要的是考慮繼續將 AI 和安全性的優勢引入您的 DevOps 流程,以便從一開始就提供安全的高品質程式碼。透過解決生產力瓶頸和消除時間竊賊,您可以讓您的工程師更有效率地工作。無論您正在建立什麼解決方案或處於哪個探索階段,GitHub 都已準備好協助您入門。

後續步驟
要了解有關 GitHub Enterprise 的更多資訊或開始免費試用,請訪問 https://github.com/enterprise

常問問題

Q:AI 如何應用於 DevOps?
答:DevOps 中的 AI 可以自動執行日常任務,透過保護程式碼來增強安全性,並優化端對端軟體生命週期管理。

Q:在 DevOps 中使用 AI 有哪些好處?
答:在 DevOps 中使用 AI 可以提高效率、改善程式碼品質、加快回饋週期並改善團隊成員之間的協作。

Q:DevOps 如何幫助組織保持競爭力?
答:DevOps 使組織能夠加快發布週期、提高可靠性並推動創新,使他們能夠快速適應市場變化並超越競爭對手。

文件/資源

GitHub 透過 GitHub 實現人工智慧驅動的 DevOps [pdf] 使用者指南
使用 GitHub 實現人工智慧驅動的 DevOps,人工智慧驅動,使用 GitHub 實現 DevOps,使用 GitHub,GitHub

參考

發表評論

您的電子郵件地址不會被公開。 必填欄位已標記 *