淺談DevOps和AIOps

語言: CN / TW / HK

文章來源:http://www.cnblogs.com/siyueliuguang/p/14807519.html         作者:似月流光

1|0目標

1|1目標

DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用於促進開發(應用程式/軟體工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。它是一種重視“軟體開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟體交付”和“架構變更”的流程,來使得構建、測試、釋出軟體能夠更加地快捷、頻繁和可靠。


1|2目標

敏捷開發CI/CD

  • 減少變更範圍
    與傳統的瀑布式開發模型相比,採用敏捷或迭代式開發意味著更頻繁的釋出、每次釋出包含的變化更少。由於部署經常進行,因此每次部署不會對生產系統造成巨大影響,應用程式會以平滑的速率逐漸生長。
  • 加強釋出協調
    靠強有力的釋出協調人來彌合開發與運營之間的技能鴻溝和溝通鴻溝;採用電子資料表、電話會議、即時訊息、企業門戶(wiki、sharepoint)等協作工具來確保所有相關人員理解變更的內容並全力合作。
  • 自動化
    強大的部署自動化手段確保部署任務的可重複性、減少部署出錯的可能性。

1|3傳統開發流程


1|4過程演進

  1. 引入Scrum流程,用JIRA做需求管理、排期,用GitLab做程式碼管理,用Confluence做wiki
  2. 加pipeline外掛(測試→UAT→生產),部署的指令碼寫在Jenkins裡
  3. 搭建制品庫管理原始碼編譯構建後的產物,同時需要解決構建版本追蹤和元資料管理問題
  4. 配置管理工具(Ansible)管理環境
  5. 自動化測試
  6. Docker與不可變部署
  7. 關鍵工作系統化、配置化
  8. 自動化運維和技術運營(工單、值班表、報表、通知單、監控、告警等)
  9. AIOps

1|5DevOps流程


 

2|0AIOps

2|1背景

傳統運維工作的業務龐雜、故障發現困難、根因定位繁瑣,AIOps是企業級DevOps在運維(技術運營)側的高階實現。


2|2目標

將人工總結運維規則的過程變成自動學習的過程。具體而言,是對平時運維工作中長時間積累形成的自動化運維和監控等能力,將其規則配置部分,進行自學習的“去規則化”改造。

  • 賦能DevOps:通過AI的能力進一步處理自動化運維不能解決的問題;
  • 實時分析及處理:通過AIOps的智慧演算法和不斷提升的自動化水平,對問題進行實時診斷並給出操作建議,大幅度降低平均檢測時間(MTTD)和平均修復時間(MTTR);
  • 降低報警噪音:通過AIOps的資料關聯能力,確定基礎設施、業務程式和業務之間的關係,不斷完善演算法,可以不斷提高過濾警報噪音的水平減少誤報;
  • 故障原因分析及預測:通過AIOps的海量資料分析能力,可以幫助識別造成問題的根本原因,並挖掘時間序列中的事件模式從而對預期行為進行檢測,提供運維建議。

2|3應用場景


2|4能力分級

  • 嘗試應用:開始嘗試應用AI能力,還無較成熟單點應用
  • 單點應用:具備但場景AI運維能力,初步形成供內部使用的學件
  • 串聯應用:有由多個單場景AI運維模組串聯起來的流程化AI運維能力
  • 能力完備:主要運維場景均已實現流程化免干預AI運維能力
  • 終極階段:有中樞AI,可以在成本、質量、效率間從容調整,達到業務不同生命週期對三個方面不同的指標要求,實現多目標下的最優或按需最優

2|5功能模組

 

文章來自網路,如有侵權,將第一時間刪除內容。