1. 程式人生 > >什麽是DevOps?

什麽是DevOps?

鼓勵 images sdl 發展 精益 pan 缺少 永遠 需求

DevOps是什麽?是開發+運維麽?每個人都DevOps的理解都不盡相同,下面是一組對DevOps的定義,通過這組定義,我們基本可以看清DevOps是幹啥的。

  • 一組過程、方法與系統的統稱。用於促進開發、運維和質量保障部門之間的溝通、協作與整合。
  • DevOps是一種文化轉變,或者說是一個鼓勵更好地交流和協作(即團隊合作)以便於更快地構建可靠性更高、質量更好的軟件的運動。
  • DevOps 是一種工程模式,本質上是一種分工,通過對開發、運維、測試,配管等角色職責的分工,實現工程效率最大化,進而滿足業務的需求。
  • DevOps是一種能力,具備此能力的團隊可以高質量、快速的交付軟件產品或服務。

DevOps解決的主要問題有兩個:

  • 按時、快速、高質量的交付軟件產品和服務
  • 通過流程的自動化,節省成本

說到這裏,我們不僅要問到:DevOps與敏捷開發什麽關系?看上去,他們是如此的相似呢。

那麽先要說說敏捷。敏捷開發到底什麽意思?這僅僅意味著快速嗎?簡單來說,敏捷開發意味著更多的叠代:更早更頻繁地發布產品更新。先把東西做出來,而不是像過去那樣過於憂慮產品是否完美。這就是那個“永遠beta版”的概念,30天把原型快速搞出來,然後看看人們到底怎麽想。敏捷的字面意思就是快速改變的能力。DevOps關註點已經不僅僅是快速改變的能力,他更關註的是如何移除浪費。

其實,DevOps是一中敏捷開發的方法,但已超越了敏捷。DevOps是軟件開發生命周期(SDLC)從瀑布式到敏捷再到精益的發展

DevOps超越了敏捷,它的關註點是從SDLC中移除浪費。通常情況下,發現浪費或者瓶頸的形式包括:不一致的環境,人工的構建和部署流程,差的質量和測試實踐,IT部門之間缺少溝通和理解,頻繁的中斷和失敗的協定以及那些需要珍貴的資源、花費重要的時間和金錢才能保持系統運行的全套問題。

技術分享

在DevOps的能力閉環中,關註的是:

  • 更早、更頻繁地發布產品更新,永遠beta版,更快速的響應變化。
  • 依托自動化工具(測試、部署),把開發、測試、發布、部署的過程整合,實現即時交付。

如要具備此能力,就要求DevOps的涉眾:開發、測試、運維,求同存異,為組織目標共同擔當,緊密配合,提升產品交付能力。

技術分享

啟用DevOps會對我們的帶來各種變革,總體來說主要有三個方面。DevOps的核心是角色的分工,而不是組織架構變化,垂直化的組織架構不代表可以實現DevOps所需要的分工模式,橫向的組織架構也不代表傳統的分工模式。DevOps的目標是工程效率最大化,它本身也只是一種方法論,是為了實現工程效率最大化的目標而存在的。

技術分享

什麽是DevOps?