DevOps
概念
DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用於促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。它是一種重視“軟件開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟件交付”和“架構變更”的流程,來使得構建、測試、發布軟件能夠更加地快捷、頻繁和可靠。
目標
敏捷開發、CI/CD
- 減少變更范圍
與傳統的瀑布式開發模型相比,采用敏捷或迭代式開發意味着更頻繁的發布、每次發布包含的變化更少。由於部署經常進行,因此每次部署不會對生產系統造成巨大影響,應用程序會以平滑的速率逐漸生長。 - 加強發布協調
靠強有力的發布協調人來彌合開發與運營之間的技能鴻溝和溝通鴻溝;采用電子數據表、電話會議、即時消息、企業門戶(wiki、sharepoint)等協作工具來確保所有相關人員理解變更的內容並全力合作。 - 自動化
強大的部署自動化手段確保部署任務的可重復性、減少部署出錯的可能性。
傳統開發流程

過程演進
- 引入Scrum流程,用JIRA做需求管理、排期,用GitLab做代碼管理,用Confluence做wiki
- 加pipeline插件(測試→UAT→生產),部署的腳本寫在Jenkins里
- 搭建制品庫管理源代碼編譯構建后的產物,同時需要解決構建版本追蹤和元數據管理問題
- 配置管理工具(Ansible)管理環境
- 自動化測試
- Docker與不可變部署
- 關鍵工作系統化、配置化
- 自動化運維和技術運營(工單、值班表、報表、通知單、監控、告警等)
- AIOps
DevOps流程

AIOps
背景
傳統運維工作的業務龐雜、故障發現困難、根因定位繁瑣,AIOps是企業級DevOps在運維(技術運營)側的高階實現。
目標
將人工總結運維規則的過程變成自動學習的過程。具體而言,是對平時運維工作中長時間積累形成的自動化運維和監控等能力,將其規則配置部分,進行自學習的“去規則化”改造。
- 賦能DevOps:通過AI的能力進一步處理自動化運維不能解決的問題;
- 實時分析及處理:通過AIOps的智能算法和不斷提升的自動化水平,對問題進行實時診斷並給出操作建議,大幅度降低平均檢測時間(MTTD)和平均修復時間(MTTR);
- 降低報警噪音:通過AIOps的數據關聯能力,確定基礎設施、業務程序和業務之間的關系,不斷完善算法,可以不斷提高過濾警報噪音的水平減少誤報;
- 故障原因分析及預測:通過AIOps的海量數據分析能力,可以幫助識別造成問題的根本原因,並挖掘時間序列中的事件模式從而對預期行為進行檢測,提供運維建議。
應用場景

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