DevOps的基本原則與介紹
DevOps這個術語是developer與operations的合併簡寫。實現還有QA。DevOps描述與精簡軟體交付流程,在今天已經開始廣泛的使用。強調從生產環境到開發的生命週期快速地反饋學習。DevOps不只是讓你更快地交付軟體,更多是幫助你產出高質量,與個人需求一致的軟體。
鼓勵運維工程師與開發工程師積極合作是至關重要的。 DevOps原則有如下:
l 與人合作:
從你的坐位上起來與其他運維工程師或開發人員面對面交流。在這兒你不能用Email或電話等方式進行溝通。想象試著通過電話與朋友們開個Party一樣。是的,現在去和某人交流下一個專案,問題,解決方案,你需要對他們像一個Team一樣。
l 穿他們的鞋走路:
如果你準備好理解軟體工程師與運維工程師的每天如何工作的,使用工具如何工作,那你最好在現實工作場景一起和他們工作。例如,如果你是一個運維人員,你沒有花時間去理解原始碼管理系統,而開發人員堅定他們信念使用Git用Subversion, 那麼需要站在他們立場上去思考問題。需要更多時間去學習系統,因為你能應用你的技能去構建工具從而支援軟體開發過程。
l 為其他人而工作:
使每個人工作輕鬆點兒。為運維構建工具,它也為你了構建工具。如<<Time Management for System Administrators>> 的作者Tom Limconcelli說的,“我們現在是程式設計師了。” 甚至,我們有補充缺乏的技能集。沒有一個人能精通一切,所以構建一個新工具能幫助你的運維人員或開發人員自動化交付過程。它不是正式環境的一部分,甚至是個簡單的桌面工具。這是像”交換工具”來實現提高效率,同時也能使TEAM之間鞏固關係與加強協作。
這些基本原則可以應用到大型開發與運維團隊的大公司,同樣適用剛起步小團隊公司。
走近DevOps
越來越多的開發人員和運維人員相互學習各自專長。更多像他們構建一個共同的願景什麼需要做,如何做。開發人員需要學習一些常規高層知識:
l 作業系統
l 網路構架
l 網路安全
l 應用程式安全
l 配置管理
l 自動化實踐
與開發人員在一起工作的運維人員需要構建與維護一個複雜線上網站,更需要這些技能:
l 溝通
l 配置管理
l 程式設計
l 軟體設計與構架
演化
讓我們來看下面這張圖,假設已經實現了些基本的打包,配置管理自動化過程
上圖開發人員與運維人員有一些協作,開發人員可能不瞭解管理WEB伺服器的配置,可能不清楚在特定作業系統如何使用命令列配置。運維人員管理伺服器,讓他們能點選一個按鈕完成釋出應用程式到應用伺服器,實現部署工作,提供應用伺服器。最好的環境是開發人員與運維人員在一個TEAM開發一個新環境。但新的環境一旦推出後,需要花費一些管理成本,去跟蹤與管理所有的新環境。不幸的是,網路管理,配置管理更多的壓力讓運維人員來支援整個環境正在運轉。看下面圖示是如何演化的:
上面的圖我們設想了比較理想的場景,減少編譯、構建與部署的依賴。 自動化系統提供一個WEB應用伺服器的事實沒有變,變的是需要與運維互動的WEB伺服器配置,日誌配置,部署應用程式操作都是由開發人員來完成了。運維演化為適應開發人員的持續整合,釋出管理,測試,除錯原始碼。開發人員需要學習作業系統核心,網路,配置管理與自動化。開發與運維能相互接管各自角色的工作,感覺像開發人員需要兩個角色技能合集,也對開發人員有下一個級別的需求。
2013年一份對4000IT組織調研報告,組織實現DevOps的好處有如下:
今天先到這兒,後續有時間,我們將介紹更多內容。
希望對您軟體開發管理有幫助。
關於DevOps更新您可以參考:
作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
該文章也同時釋出在我的獨立部落格中-Petter Liu Blog。