神秘的DevOps-神秘到很多人都不知道

很神秘

根據知名的開發工具提供商Atlassian以及IT管理解決方案服務商xMatters最近的一項調查表明:對正在使用Devops的組織來說,Devops確實是很有效的。但是可能很多公司還沒有聽過這個概念。

最近發布的2017年xMatters AtlassianDevops成熟度報告,在員工人數在500到10,000名的組織中調查了超過2000人。調查發現,41%的受訪者正在採用devops,65%的受訪者表示相關舉措正在產生效益。

大約60%的受訪者也不知道他們的公司是否正在實踐Devops。Atlassian和xMasters表示:「這告訴我們,在行業中公司之間存在很大的差距,很多公司只是將Devops視為流行語。」

Advertisements

什麼是DevOps

DevOps是Development和Operations的組合,是一組概念。這些概念本身不是全新的,但是已經觸發了一個運動,在整個技術社區迅速蔓延。就像任何新的流行術語一樣,人們對DevOps確實會有一些困惑的、有時又是矛盾的印象。就像「質量」或「敏捷」一樣,DevOps是一個足夠大的概念,需要一些細節才能完全理解。

DevOps來自於是兩個有相關概念的碰撞。第一個也被稱為「敏捷系統管理」或「敏捷運營」,它起源於運用了新的敏捷和精益方法。第二個是,在創建和運營服務的過程中,開發人員和運營人員更加廣泛地理解和認識了兩件事情的價值:開發生命周期各個階段中的相互協作價值,以及在這個日益增長的以服務為導向的世界中運營的重要性。

Advertisements

有種定義是這樣的:DevOps是致力於研究構建,演化和運營一個快速變化的彈性系統的跨學科實踐。

DevOps是運營和開發工程師參與整個服務生命周期的實踐,從設計到開發過程到生產支持。

DevOps會給我們帶來的一個重要變化體現在:

運營人員會更多地使用跟開發人員一樣的技術來完成他們的工作。這些技術包括從源代碼控制到測試,還包括參與到敏捷開發過程中去。

為此,「DevOps」不區分不同的系統管理員角色。「Ops」是系統工程師,系統管理員,操作人員,發布工程師,DBA,網路工程師,安全專業人員以及其他各種學科的綜合術語和職稱。「Dev」用作開發人員的縮寫,但實際上它更為廣泛,意味著「所有參與開發產品的人」,包括產品,質量保證和其他類型。

DevOps與敏捷和精益方法有很強的聯繫。舊的觀點認為「Dev」製造者,「Ops」是處理製作者的生成結果。在現實場景中,Dev和Ops被當成兩個獨立的概念,獨立運行,由此帶來的對行業的傷害是DevOps被提出來的背後驅動力。DevOps可以被解釋為敏捷軟體開發的進化,規定了客戶,產品管理,開發人員和(有時)QA的密切協作,以填補差距,並快速迭代更好的產品。

DevOps認為,提供服務和程序,如何與系統交互是客戶最基本的價值主張。產品團隊需要將這些作為優先順序最高的關注。從這個角度來看,DevOps就是把原來應用於「代碼」邊界的敏捷原則,應用在了整個交付的服務和過程中。

DevOps對於不同的角色來說意味著很多不同的東西。可以是「開發和運營的協作」,可以是「將代碼視為基礎設施」,可以是「使用自動化」或「使用看板」或「工具鏈方法」或「文化」。就像前面所的DevOps是一組概念的集合,因此它包含的意義很豐富。我們用并行式的方法來定義一下敏捷和DevOps,做個對比。

敏捷

敏捷價值觀 - 頂層哲學,敏捷信息的核心價值觀。

敏捷原則 -支持這些價值觀的戰略層面的方法。「敏捷宣言」引用了其中十幾項更具體的原則。你不必認可所有的原則,但如果你不認可其中的多數原則,否則可能你做的就不是敏捷了。

敏捷方法 - 實踐價值觀和原則的具體流程。 XP,Scrum,你自己定製的程序。

敏捷實踐 -高度具體的戰術,傾向於與敏捷實施結合使用。沒有必要敏捷,但許多實踐中能看到敏捷價值觀。Standups,計劃撲克,backlogs,CI,開發人員用於執行工作的各種工件。

敏捷工具 - 敏捷實踐的具體技術實現和載體。JIRA、Planbox,TFS。

DevOps

DevOps價值觀 -最基本的DevOps價值觀已經包含在了敏捷宣言中。不過可以有一點輕微的調整,將重點放在完全交付給客戶的整體服務或軟體上,而不是簡單的「工作的軟體」。有些人對DevOps的一些定義中就有類似敏捷宣言的說法,「人高於過程,高於工具」。

DevOps原則 -目前沒有大家完全接受的原則列表,但有幾個廣泛接受的共識。比如「代碼是基礎設施」。DevOps在概念層面上主要只是敏捷原則的擴大,包括系統和運營,而不只是停留在對代碼的關註上。

DevOps方法 -這裡的一些方法跟敏捷是一樣的。你可以在運營中使用Scrum、看板等(雖然在產品團隊中通常更側重於集成運營、開發人員、質量檢查和產品)。當然也有一些獨特的方法,如運營風格的變更控制,使用事件命令系統進行事件響應。DevOps可用的方法正在增長。比如,更全面的監測方法是目前常見的方法論還沒有很好定義的領域。

DevOps實踐 -實現上述概念和過程使用的特定技術。持續集成和持續部署,使用配置管理,指標和監控方案,工具鏈工具的方法...即使使用虛擬化和雲計算也是一種常見的做法,用於加速現代基礎設施。

DevOps工具 -體現DevOps原則的工具。在DevOps世界中,包括了發布(jenkins,travis,teamcity),配置(puppet,chef,ansible,cfengine),編排(zookeeper,noah,mesos),監控,虛擬化和集裝箱化(AWS,OpenStack,vagrant,docker)等等。而與敏捷一樣,說一個工具是「DevOps工具」,這意味著它就會讓你DevOps,這是不正確的。重要地是你如何使用這些工具。

成為一個成功的敏捷或DevOps從業者是要了解所有的層,以及每個層次對應的實現中哪些包含了哪些,不包含哪些。最終,DevOps希望給敏捷帶來一種新的理解和實踐:軟體在交付給用戶並滿足他們關於需求、性能和變化的期望之前,是不能說已經完成或獲得成功的。

到這裡,大家對DevOps應該有了基本的認識了吧。改天接著談談DevOps的歷史和實踐。

Advertisements

你可能會喜歡