- 企業(yè)級DevOps技術與工具實戰(zhàn)
- 劉淼 張笑梅編著
- 1404字
- 2021-10-29 21:00:10
1.1 什么是DevOps
什么是DevOps,這是一個簡單的問題,但是這個問題卻很難回答。從不熟悉到熟悉的過程中,了解定義是非常重要的,但非常遺憾的是,目前關于 DevOps 還沒有一個統一的、能夠被所有人接受的定義。雖然沒有統一和清晰的定義,但是很多提供 DevOps 服務的廠商以及研究機構都早已給出了它們自己對DevOps的定義,讓我們以這些內容為基礎來認識DevOps吧。
橫看成嶺側成峰,角度不同結論往往也會有所不同。了解不同的定義對理解 DevOps 有很大幫助。下面來看一下百度百科和維基百科中對DevOps的定義。
百度百科:DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用于促進開發(fā)(應用程序和軟件工程等)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。它的出現是由于軟件行業(yè)日益清晰地認識到,為了按時交付軟件產品和服務,開發(fā)團隊和運營團隊必須緊密合作。
解讀:可以很清晰地看到DevOps的構詞方式,它是由Development(開發(fā))和Operations (運維)組成的。DevOps強調合作和跨團隊的協作,強調將過程和方法進行融合,注重的是方法論和文化。
維基百科:DevOps(Development 和 Operations 的組合詞)是一種重視“軟件開發(fā)人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。其通過對“軟件交付”和“架構變更”的流程進行自動化,使得構建、測試、發(fā)布軟件更加快捷、頻繁和可靠。
解讀:維基百科除了對構詞及團隊溝通合作進行了說明,還提到了自動化和基礎架構在構建、測試、發(fā)布等軟件生命周期中所起到的作用。
除了百度百科和維基百科中的定義,一些商業(yè)公司對DevOps也有不同的定義。
IBM 這樣看待 DevOps:DevOps 是一種軟件交付方法,它基于精益和敏捷的軟件開發(fā),在需求人員、開發(fā)人員、測試人員、運維人員的協同下,保證軟件的交付能夠基于真實的用戶反饋。
解讀:DevOps原則使得軟件的交付更加有效,并實現了基于最終用戶的真正需求對軟件進行改善和功能強化。從這個角度來看,除了滿足用戶提出的要求,還應該根據用戶的反饋進行功能的開發(fā)和改善,這一點也是非常重要的。根據項目原則的不斷明確和細化,以及實際情況的變化,為客戶提供他們真正需要的功能,并在這些基礎之上進行改善是非常重要的。
CA認為:DevOps是通過文化、流程、工具的轉換和改進以加速軟件交付的。
Gartner認為:DevOps代表一種文化的轉變,它通過敏捷和精益實踐來進行IT服務的快速交付。DevOps尋求開發(fā)團隊和運維團隊進行合作,同時強調利用技術對軟件進行改善,尤其是使用工具對軟件的整個生命周期的自動化進行改善。
解讀:DevOps的定義雖各有不同,但也有一些共同點,比如,它們都強調自動化在軟件交付過程中的作用,都認為自動化能夠加速軟件的交付。為了加深讀者對 DevOps 的理解,下面對“DevOps”一詞出現的過程進行簡單介紹。
● 2008年8月,在加拿大多倫多舉辦的敏捷大會上,Andrew Shafer和Patrick對“敏捷基礎設施”進行了討論,其中包含如何打破Dev和Ops的隔閡。
● 2009年6月,Flickr分享了他們每天超過10次的部署經驗,引起了很大反響。
● 2009年10月,在比利時根特舉辦了第一屆DevOpsDays的活動,后來由于推特140字符的限制,大家在討論時去掉了“Days”,于是“DevOps”一詞正式誕生。
總的來說,雖然對 DevOps 的各種定義看似完全不同,但它們實際是從不同角度出發(fā)對同一個問題的理解。DevOps強調人員、流程、工具的協同改善;強調踐行敏捷和精益,減少浪費;強調加快服務的交付速度;強調接收反饋,提供給最終用戶其真正需要的功能;強調提供更好的、全生命周期的方式以保證企業(yè)能夠不斷地試錯和學習,以更好地適應市場。而且隨著不斷地實踐,更多的方法、原則、經驗被融入進來,豐富了DevOps的內涵。
- HTML5+CSS3+JavaScript從入門到精通:上冊(微課精編版·第2版)
- 深度實踐OpenStack:基于Python的OpenStack組件開發(fā)
- Python數據分析入門與實戰(zhàn)
- Visual Basic程序開發(fā)(學習筆記)
- TypeScript圖形渲染實戰(zhàn):基于WebGL的3D架構與實現
- Linux Device Drivers Development
- Scala Reactive Programming
- 微信小程序全棧開發(fā)技術與實戰(zhàn)(微課版)
- 圖數據庫實戰(zhàn)
- 移動互聯網軟件開發(fā)實驗指導
- 代替VBA!用Python輕松實現Excel編程
- OpenCV 3 Blueprints
- Instant jQuery Boilerplate for Plugins
- Python Web自動化測試設計與實現
- Web開發(fā)的平民英雄:PHP+MySQL