DevOps是什麼?5分鐘帶你瞭解DevOps
DevOps是什麼?5分鐘帶你瞭解DevOps
by:karlin999的CSDN部落格
DevOps(英文Development和Operations的組合)是一組過程、方法與系統的統稱,用於促進開發(應用程式/軟體工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。它的出現是由於軟體行業日益清晰地認識到:為了按時交付軟體產品和服務,開發和運營工作必須緊密合作。
可以把DevOps看作開發(軟體工程)、技術運營和質量保障(QA)三者的交集。
傳統的軟體組織將開發、IT運營和質量保障設為各自分離的部門。在這種環境下如何採用新的開發方法(例如敏捷軟體開發),這是一個重要的課題:按照從前的工作方式,開發和部署不需要IT支援或者QA深入的、跨部門的支援,而卻需要極其緊密的多部門協作。然而DevOps考慮的還不止是軟體部署。它是一套針對這幾個部門間溝通與協作問題的流程和方法。
需要頻繁交付的企業可能更需要對DevOps有一個大致的瞭解。Flickr發展了自己的DevOps能力,使之能夠支撐業務部門“每天部署10次”的要求──如果一個組織要生產面向多種使用者、具備多樣功能的應用程式,其部署週期必然會很短。這種能力也被稱為持續部署,並且經常與精益創業方法聯絡起來。 從2009年起,相關的工作組、專業組織和部落格快速湧現。
DevOps的引入能對產品交付、測試、功能開發和維護(包括──曾經罕見但如今已屢見不鮮的──“熱補丁”)起到意義深遠的影響。在缺乏DevOps能力的組織中,開發與運營之間存在著資訊“鴻溝”──例如運營人員要求更好的可靠性和安全性,開發人員則希望基礎設施響應更快,而業務使用者的需求則是更快地將更多的特性發布給終端使用者使用。這種資訊鴻溝就是最常出問題的地方。
以下幾方面因素可能促使一個組織引入DevOps:
使用敏捷或其他軟體開發過程與方法
業務負責人要求加快產品交付的速率
虛擬化和雲端計算基礎設施(可能來自內部或外部供應商)日益普遍
資料中心自動化技術和配置管理工具的普及
有一種觀點認為,占主導地位的“傳統”美國式管理風格(“斯隆模型 vs 豐田模型”)會導致“煙囪式自動化”,從而造成開發與運營之間的鴻溝,因此需要DevOps能力來克服由此引發的問題。
DevOps經常被描述為“開發團隊與運營團隊之間更具協作性、更高效的關係”。由於團隊間協作關係的改善,整個組織的效率因此得到提升,伴隨頻繁變化而來的生產環境的風險也能得到降低。
DevOps對應用程式釋出的影響
在很多企業中,應用程式釋出是一項涉及多個團隊、壓力很大、風險很高的活動。然而在具備DevOps能力的組織中,應用程式釋出的風險很低,原因如下:
與傳統開發方法那種大規模的、不頻繁的釋出(通常以“季度”或“年”為單位)相比,敏捷方法大大提升了釋出頻率(通常以“天”或“周”為單位)
減少變更範圍與傳統的瀑布式開發模型相比,採用敏捷或迭代式開發意味著更頻繁的釋出、每次釋出包含的變化更少。由於部署經常進行,因此每次部署不會對生產系統造成巨大影響,應用程式會以平滑的速率逐漸生長。加強釋出協調靠強有力的釋出協調人來彌合開發與運營之間的技能鴻溝和溝通鴻溝;採用電子資料表、電話會議、即時訊息、企業門戶(wiki、sharepoint)等協作工具來確保所有相關人員理解變更的內容並全力合作。強大的自動化部署手段能夠確保部署任務的可重複性、減少部署出錯的可能性。
想了解更多DevOps知識,歡迎登陸華為雲學院(
《華為DevOps實踐》精品課程免費學!