什麼是DevOps

能夠把DevOps看做開發(軟件工程)、技術運營和質量保障(QA)三者的交集。2009年DevOps這個新理念出現,是爲了應對IT環境中廣泛面臨的一些挑戰。如圖所示,第一個隔閡,存在於商業需求和開發之間,敏捷的出現縮小了這個鴻溝。可是這給運營帶來了不少壓力。因此這就誕生了第二個隔閡,存在於開發和運維之間,這就是DevOps理念要解決的問題。老一派的軟件開發團隊成員會包含業務分析員,系統架構師,前端開發者,後端開發者,測試員,等等。優化如敏捷和精益原則等的軟件開發流程的關注點就在這些地方。好比,軟件一旦達到」能夠生產「的程度,就會發到系統工程師、發佈工程師、DBA、網絡工程師,安全專家這些「運維人員」的手上。這裏該如何將橫在Dev(開發)和Ops(運維)之間的鴻溝給填平,這就是DevOps的主要關注點了。

DevOps的核心實踐理念統稱爲CALMS:文化(Culture)、自動化(Automation)、精益(Lean)、度量(Measurement) 、共享(Share)。前端

DevOps更深層次的價值:後端

以華爲爲例,去年剛推出了一款工具:華爲軟件開發雲。這是一款輕量級的DevOps工具。做爲軟件開發雲的用戶,我有這麼幾點體會。華爲開發雲有項目管理、配置管理、代碼檢查、編譯構建、測試、部署、發佈、流水線這幾大服務。安全

從技術層面來看,用了剛纔說的這幾個服務,就能可視化地建立流水線,本流水線包含多個階段(stage);在每一個階段建立多個不一樣類型的任務(task)。好比代碼檢查任務、編譯構建任務等。網絡

在代碼提交後,流水線的相關任務能夠實現最大程度地併發,在小時級別自動化實現版本級集成發佈,獲得版本質量報告,並快速反饋給開發人員,以便進行快速修復,在開發人員修復版本後並再次進行流水線的集成發佈。架構

在緊急狀態下,還能實現版本的快速可靠回退。這樣一來,版本就能實現每日構建了,項目管理服務提供了敏捷式、社交化的項目管理方式,可與配置管理關聯,使得開發團隊有效協同,經過看板等各類圖表實時掌握項目進度和質量。併發

 

 

概要 – DevOps清單

下面是一張你能夠用來檢驗你的組織對DevOps的應用狀況的清單。固然你也能夠在文章評論後面給出你的觀點。運維

  • 開發團隊和運維團隊之間沒有障礙。二者皆是DevOps統一流程的一部分。
  • 從一個團隊流到另外一個團隊的工做都可以獲得高質量的驗證
  • 工做沒有堆積,全部的瓶頸都已經被處理好。
  • 開發團隊沒有佔用運維團隊的時間,由於部署和維護都是處於同一個時間盒裏面的。
  • 開發團隊不會在週五下午5點後把代碼交付進行部署,剩下運維團隊週末加班加點來給他們擦屁股
  • 開發環境標準化,運維人員能夠很容易將之擴展並進行部署
  • 開發團隊能夠找到合適的方式交付新版本,且運維團隊能夠輕易的進行部署。
  • 每一個團隊之間的通訊線路都很明確
  • 全部的團隊成員都有時間去爲改善系統進行試驗和實踐
  • 常規性的引入(或者模擬)缺陷到系統中來並獲得處理。每次學習到的經驗都應該文檔化下來並分享給相關人員。事故處理成爲平常工做的一部分,且處理方式是已知的

總結

使用現代化的DevOps工具,如Chef、Docker、Ansible、Packer、Troposphere、Consul、Jenkins、SonarQube、AWS等,並不表明你就在正確的應用DevOps的原則。DevOps是一種思惟方式。咱們全部人都是該系統流程的一部分,咱們一塊兒分享共同的時光和交付價值。每一個參加到這個軟件交付流程上來的成員都可以加速或減緩整個系統的運做速度。系統出現的一個缺陷,以及錯誤配置的團隊之間的「防火牆」,均可能會使得整個系統癱瘓,工具

全部的人都是DevOps的一部分,一旦你的組織明白了這一點,可以幫你管理好這些的工具和技術棧就天然而然的會出如今你眼前了。學習

相關文章
相關標籤/搜索