眾所周知,DevOps 自 2008 年在多倫多敏捷會議上誕生之后,現在已被廣泛采用。采用 DevOps 可以幫助組織轉變和加快軟件交付、測試和部署的方式,有利于組織進行軟件創新,快速交付并提高安全性。
但是,DevOps 的采用也存在一些困境,比如安全性,通常在 DevOps 流程中,安全流程被排到末尾,這無疑會埋下安全隱患。與此同時,隨著組織業務的拓展,數據量不斷增加,如何更快一步交付軟件,打通更多部門間的隔閡,甚至是有效預測未來可能發生的故障,成為新的需求出現,因此,在 DevOps 之外,一系列新的概念出現了:DevSecOps、NoOps、AIOps。
DevSecOps
DevSecOps 的目標是希望達成“每個人都對安全負責”,在不犧牲所需安全性的情況下,達成快速交付。隨著業務對 DevOps、敏捷開發和公共云服務需求的提升,傳統安全流程的改善工作迫在眉睫。以往,安全工作隨著瀑布式的開發流程進行,在系統發布前做安全合規檢測,這種方式非常容易在系統內部造成固有風險,影響迭代。
DevSecOps 的做法是將安全流程集成到所有級別的開發和運營工作中,以便減少摩擦保證安全性,促進創新,并確保安全和隱私等不會被開發拋在后面。如下圖所示,DevSecOps 將安全嵌入在整個交付周期中,并且可以在每次需要更改或調整時進行迭代。
DevSecOps 鼓勵安全從業者適應和改變他們舊的、現有的安全流程和程序。這聽起來可能很容易,但改變流程、行為和文化總是很困難,尤其是在大型環境中。
DevSecOps 要求在整個產品開發和部署的過程中引入注重安全的文化和思維。當然,順利采用 DevSecOps 并不十分容易,它和 DevOps 一樣,最大挑戰依舊是文化問題。企業文化的變革通常需要高管支持,由企業內部自上而下形成。此外,為了加速文化變革,企業還可以建立跨職能團隊,共享成功和經驗,以鼓勵更廣泛地采用。組織施行 DevSecOps 改革可以從使用小而成功或是有潛力的案例開始,幫助團隊在不影響組織核心業務的情況下學習和試錯。
當然,在整個改革過程中,也有一些指標可以參考,改革的計劃時間、部署頻率等等。最后,DevSecOps 若成功施行,可以使組織快速將軟件交付到生產環境,降低故障風險并快速修復。
AIOps
AIOps 的重點是想在問題發生之前捕捉到它,并通知相關團隊解決。根據 IBM 給出的定義,AIOps 具體是通過 AI 方式改善 IT 流程和運營方式,使用大數據、分析和機器學習功能來執行以下操作:
收集并匯總由多個 IT 基礎架構組件、應用程序和性能監視工具生成的、不斷增加的海量運營數據。
智能地從“噪聲”中篩選出“信號”,以識別與系統性能和可用性問題相關的重要事件和模式。
診斷根本原因并將其報告給 IT 部門以便他們快速響應和補救,或在某些情況下自動解決這些問題而無需人工干涉。
通過將多個單獨的手動 IT 運營工具替換為單一的智能自動化 IT 運營平臺,AIOps 使 IT 運營團隊能夠更快地作出響應,甚至主動處理慢速和中斷事件,從而大幅減少工作量。
它可以縮小下面兩大對立面之間的差距:一是日益多樣化、動態難以監控的 IT 環境,二是用戶對應用程序性能和可用性幾乎或根本無中斷的期望。 Gartner 估計,與原有基礎架構相比,一般企業 IT 基礎架構每年會產生 2 至 3 倍的 IT 運營數據。基于領域的傳統 IT 管理解決方案無法跟上數據量增長的步伐。而 AIOps 可以直觀呈現所有環境的性能數據和依賴關系,分析數據以提取慢速或中斷情況相關的重要事件,并自動提醒 IT 人員關注問題、根本原因及建議的解決方案。
NoOps
NoOps 即指“無運維”。
此前,飛算云智總裁陳定瑋曾對企業運維問題發表過看法,他表示,對于傳統企業或者大型金融機構而言,IT 建設過程中很大一部分是人力成本支出,也就是需要大量駐廠人員保證一個新系統的順利上線,上線之后依舊需要專門的人員負責后期運維。換個角度來看,當前的很多工具還是沒有達到理想狀態。如果軟件質量夠好、安全性夠高、運維工具足夠簡單,其實后續可以不需要駐廠人員來解決“因品質及安全”所帶來的一系列問題,目前飛算 SoFlu 全自動軟件工程平臺恰恰可以實現這一點。
NoOps是針對運維工作提出的一個概念。
十年前,Forrester 發布報告“擴大 DevOps 至 NoOps”,預測在不久的將來,一些企業將越來越多地依賴于云,開發者將能自動地進行程序構建、測試與部署等運維操作,最終達到NoOps。雖然該術語表示這些公司將不再需要運維人員,但是報告的本意談論的卻是開發者將使用更加自動化的工具,而這些工具需要更少的人工干預。
NoOps 認為 IT 環境事實上可以從底層基礎架構中抽象出來,以至于不需要專門的團隊來管理內部軟件。在傳統的企業開發流程匯總,應用程序開發團隊負責收集軟件程序的業務需求并編寫代碼,開發團隊在相較封閉的開發環境中測試,隨后發布給運維團隊,而在 NoOps 場景中,運維團隊需要做的維護和其他任務將實現自動化。
關于 DevOps 和 NoOps 的區別,有這樣一個總結:“在真正的 NoOps 中,開發和運維永遠不需要交互來完成他們的工作。而在 DevOps 中,它們在整個生命周期中協同工作,”塔夫茨大學研究生工程院長、IEEE 研究員 Karen Panetta 說,“在最真實的形式中,NoOps 所說的是,'讓我們自動化 [開發、部署和維護],這樣我們就可以將人從循環中移除,一切都得到妥善處理。”
隨著互聯網世界的飛速發展以及傳統企業數字化轉型浪潮的到來,越來越多的企業在尋求從軟件開發到交付使用以及迭代維護更順暢的方式,從而催生出上述 DevSecOps、NoOps、AIOps 概念的出現。
與此同時,站在服務企業的角度上,企業的 IT 訴求其實可以簡單總結為一點:花更少的力氣,做更多的事。將更多功能,更多對 IT 全流程的優化方案吸納融匯成一個自動化工具,或許才是企業 IT 部門降本增效的究極秘密武器。
以飛算 SoFlu 全自動軟件工程平臺為例,真正實現了“你只需要輸入流程圖,平臺助你實現自動開發、自動測試、自動運維”的目標,不僅僅打通了開發運維的流程,更在過程中關注安全,注重知識文化的共享,全面解放企業 IT 生產力。
據了解,飛算 SoFlu 全自動軟件工程平臺致力于通過“軟件工程變革”全面提升企業的軟件工程能力,如構建開放共贏的“知識共享體系”、打造高質量的“軟件開發全流程保障”,在實現開發效率數十倍提高的同時,成本卻呈幾何級縮減,將軟件工程從傳統開發1.0時代,帶入全自動化開發的2.0時代,促進軟件產業走向良性循環。
未來,自動化的軟件工程平臺在承接越來越多的企業需求之后,企業將快速從繁冗的開發運維工作中解放出來,從而保持精力,在技術、行業市場中引領新的潮流。