DevSecOps中的AI:從“智能副駕”到“自動駕駛”
自動駕駛和軟件(SW)開發之間有何共同點?乍一看,并沒有什么共同點。但仔細觀察一下,就能發現兩者之間存在一些相似之處,尤其是在實現基本目標的演進路徑上。開發團隊本身不會成為 “乘客”,但設計、創建、保護、分發和維護等方面相關人員的傳統角色和職責會發生轉變。為了更好地理解這一點,可以先深入了解一下自動駕駛的概念,然后再將其與軟件開發聯系起來。
本文引用地址:http://www.ex-cimer.com/article/202401/454567.htm
自動駕駛的概念出現已有多年,曾經看似未來派的概念如今已成為現實。從本質上來說,自動駕駛汽車(AV)旨在最大限度地減少交通出行中的人為失誤(目前約 90% 的交通事故都是由人為失誤造成的)。自動駕駛汽車的基本前提是其性能應優于普通人類駕駛員。自動駕駛技術可以節約時間,這至關重要。這樣,人們就可以把精力投入到更令人愉悅的娛樂活動中,而不是耗費在交通路途中。
邊緣計算和AI是實現自動駕駛的兩大關鍵要素:它們使車輛能夠在車內處理物聯網傳感器的數據,從而實現實時操作。這種能力對于任何任務關鍵型應用都至關重要。試圖對機器進行手動編程,以處理各種可能的駕駛場景的做法已不切實際。相反,車輛必須從環境中動態學習。自動駕駛汽車的智能程度取決于各種物聯網傳感器數據的可用性,基于數據就能創建物理世界的數字孿生表示。數據越多樣化,就能部署越復雜的AI系統。
觀察自動駕駛的發展路徑,我們可以發現,在每個階段,人類的參與都在逐漸減少。自動駕駛汽車框架包括 6 個自動化級別,從 0(完全手動)到 5(完全自主)不等。
· 無自動化:駕駛員完全控制所有駕駛任務。
· 駕駛員輔助:車輛采用單一自動化系統,允許駕駛員將腳從踏板上移開。
· 部分自動化:車輛具備轉向和加速能力,駕駛員可以將手從方向盤上移開。
· 有條件的自動化:車輛能夠控制大部分駕駛任務,使駕駛員能夠將視線從道路上移開,同時仍能保持監控。
· 高度自動化:車輛在特定條件下能夠執行所有駕駛任務,讓駕駛員有機會在保持警惕的同時,將注意力從路面上移開。
· 完全自動化:車輛可在任何條件下獨立完成所有駕駛任務。這樣,駕駛員就變成了乘客,完全不用擔心任何駕駛責任。
AI在軟件開發中的優勢與其在自動駕駛領域中的優勢如出一轍,即最大限度地減少人為失誤,使人能夠騰出時間,從事創造性更強的工作。由于人力資源往往是軟件開發中成本最高的環節,因此企業就有動力去采用AI系統,事半功倍。
仔細研究軟件開發的演進路徑,會發現其與自動駕駛技術的進步有著驚人的相似之處:在每個演進階段,人類的參與都在逐漸減少:
· 本世紀初,軟件開發幾乎不涉及自動化。在軟件開發生命周期(SDLC)的每個階段都需要人工控制,因此整個過程基本上都需要手動操作。問題往往是由客戶而非內部團隊發現的。
· 2010 年代中期,容器化、云計算和 DevOps 的興起提高了軟件開發生命周期的整體自動化程度和效率。在測試、代碼審查和 CI/CD 等領域,基于預定義(硬編碼)策略和“if-then”規則的常規任務和程序性決策實現了自動化。這樣,研發團隊就能專注于創造性工作,提高生產力,進而實現“引導和加速”。根據敏捷原則縮短開發周期,在開發和運維之間架起橋梁。問題的管理和解決開始從被動反應轉變為自適應,各團隊之間的協調更加順暢。大多數問題甚至可以在客戶意識到之前就被發現并解決。
· 如今,生成式AI正在推動軟件開發的效率和創新水平至新高?;谏墒?/span>AI的解決方案可通過無縫的人機對話來創建新內容,自動化的應用遠不止常規任務。AI在整個軟件開發生命周期過程中,是不折不扣的助手(智能副駕),它能夠提供建議、解釋問題、生成代碼、監控流程、掃描資源庫、提供預測并輔助快速決策,效率也開始得以提升。這將進一步加快和提高整體代碼生成速度,意味著能夠實現更多的軟件構建、更多需要保護的軟件以及更頻繁的運行時更新。當我們將嵌入式AI模型(MLOps)添加到現代軟件開發的等式中時,上述領域將進一步擴大?!傲魇杰浖钡母拍钫饾u成為現實,小規模的增量改進(基于二進制文件的更新)會自動從開發階段流向運行階段,而服務停機時間則會降至最低。
· 在應用安全方面,AI能夠通過預測,大幅縮短發現和修復問題的時間,從源頭防止惡意軟件包進入企業。首先是利用基于AI的嚴重性和上下文分析來進行自動化漏洞掃描和檢測,然后是自動修復。盡管取得了上述進步,但在基于AI的解決方案展現出更高的可信度和可靠性之前,人工干預和審批仍然是必要的。
· 近年來,我們開始向全自動范式過渡,即從“智能副駕”(AI助手)轉變為“自動駕駛”(人工智能決策者)。機器可以通過自然語言用戶界面(如英語)來解決高度復雜的問題,而這需要程序員掌握新型技能,引導對話達到預期狀態。從根本上說,AI系統的性能應優于普通人類開發者或參與上述流程的其他人員。AI將進一步增強決策流程并使之自動化,使企業能夠選擇最佳的(數據驅動型)方法和工具來解決任何問題。對AI系統的信任將是最重要的,而這就要求做到對廣范圍語境的理解和合乎道德的決策制定,類似于當今自動駕駛所面臨的挑戰。自學習和自修復能力將成為檢測、分析、隔離和修補問題并保持服務正常運行的關鍵。這意味著:軟件將能夠自我重寫和更新,并增加新的功能以處理新的輸入。同樣,對于自動駕駛汽車,AI系統也必須從自身運行環境中學習并做出相應調整。
總之,雖然自動駕駛與軟件開發之間的相似之處可能不會立即顯現出來,但這兩個領域都有一個共同的目標,即利用AI來強化自身的運作,并讓個體能夠騰出時間來專注于更想追求的目標。在軟件開發方面,AI將持續加速并改進新功能和數據的創建,提升各研發職能的用戶體驗,逐步從可信賴的顧問發展到更高的決策自主權。從智能編碼和安全,到覆蓋整體 DevOps 堆棧,基于AI的“智能副駕”將慢慢成為整個軟件開發生命周期的主流。企業對于AI必須堅持負責任且安全的原則和實踐,以確保業務成果的可持續性。這涵蓋AI生成軟件的多方面,包括保護知識產權,避免潛在的安全和許可證合規問題等。AI系統的逐步自主化將允許并確保與現有基礎設施和監管環境的兼容性。
隨著AI技術的不斷進步,我們可以預見軟件開發將迎來更深入的整合和創新。隨著AI不斷改變各行各業,我們也步入了一個激動人心的時代。軟件開發的未來大有可為,想象力有多大,我們對機器能夠賦予的開發責任就可以有多大。
評論