DevOps 簡介
頭一次聽到這個東西,真的是一臉懵逼。感覺應該類似專案管理中的一些理念,卻又不是很清晰。那麼到底有沒有聯絡呢?
一、是什麼?
ofollow,noindex">百度百科 中是這麼定義的: DevOps
( Development
和 Operations
的組合詞)是一組過程、方法與系統的統稱,用於促進開發(應用程式/軟體工程)、技術運營和質量保障( QA
)部門之間的溝通、協作與整合。
它是一種重視「軟體開發人員( Dev
)」和「 IT
運維技術人員( Ops
)」之間溝通合作的文化、運動或慣例。透過自動化軟體交付和架構變更的流程,來使得構建、測試、釋出軟體能夠更加地快捷、頻繁和可靠。
為了按時交付軟體產品和服務,開發和運營工作必須緊密合作。
二、常見開發模型
看了專業的解釋,我們不難理解到, DevOps
是一種開發模型。那麼什麼是開發模型,又有哪些常見的開發模型呢?
1.什麼是開發模型?
2.常見的開發模型
- 瀑布式開發
- 敏捷開發
- DevOps
三、化繁為簡
DevOps
一詞的來自於 Development
和 Operations
的組合,突出重視軟體開發人員和運維人員的溝通合作,通過自動化流程來使得軟體構建、測試、釋出更加快捷、頻繁和可靠。
DevOps 是為了填補開發端和運維端之間的資訊鴻溝,改善團隊之間的協作關係。
不過需要澄清的一點是,從開發到運維,中間還有測試環節。 DevOps
其實包含了三個部分:開發、測試和運維。
專家們總結出了下面這個 DevOps
能力圖,良好的閉環可以大大增加整體的產出:

四、使用場景
以下幾方面因素可能促使一個組織引入 DevOps
:
1、使用敏捷或其他軟體開發過程與方法;
2、業務負責人要求加快產品交付的速率;
3、虛擬化和雲端計算基礎設施(可能來自內部或外部供應商)日益普遍;
4、資料中心自動化技術和配置管理工具的普及;
5、有一種觀點認為,占主導地位的傳統美國式管理風格(斯隆模型 vs 豐田模型)會導致「煙囪式自動化」,從而造成開發與運營之間的鴻溝,因此需要 DevOps
能力來克服由此引發的問題。
DevOps 經常被描述為「開發團隊與運營團隊之間更具協作性、更高效的關係」。
由於團隊間協作關係的改善,整個組織的效率因此得到提升,伴隨頻繁變化而來的生產環境的風險也能得到降低。
五、DevOps 對應用程式釋出的影響
在很多企業中,應用程式釋出是一項涉及多個團隊、壓力很大、風險很高的活動。
然而在具備 DevOps
能力的組織中,應用程式釋出的風險很低,原因如下:
-
減少變更範圍
與傳統的瀑布式開發模型相比,採用敏捷或迭代式開發意味著更頻繁的釋出、每次釋出包含的變化更少。由於部署經常進行,因此每次部署不會對生產系統造成巨大影響,應用程式會以平滑的速率逐漸生長。
-
加強釋出協調
靠強有力的釋出協調人來彌合開發與運營之間的技能鴻溝和溝通鴻溝;採用電子資料表、電話會議、即時訊息、企業門戶(
wiki
、sharepoint
)等協作工具來確保所有相關人員理解變更的內容並全力合作。 -
自動化
強大的部署自動化手段確保部署任務的可重複性、減少部署出錯的可能性。
與傳統開發方法那種大規模的、不頻繁的釋出(通常以季度或年為單位)相比,敏捷方法大大提升了釋出頻率(通常以天或周為單位),同時也增大了出錯的概率。
六、DevOps 又有啥不同?它有什麼好處?
減少變更範圍與傳統的瀑布式開發模型相比,採用敏捷或迭代式開發意味著更頻繁的釋出、每次釋出包含的變化更少。由於部署經常進行,因此每次部署不會對生產系統造成巨大影響,應用程式會以平滑的速率逐漸生長。
加強釋出協調靠強有力的釋出協調人來彌合開發與運營之間的技能鴻溝和溝通鴻溝。
這裡需要明確兩點認識:
1.開發是由功能性需求(通常與業務需求直接相關)驅動的。
2.運營是由非功能性需求(例如可獲得性、可靠性、效能等)驅動的。
七、精益 7 原則
- 杜絕浪費
- 內建質量
- 建立知識(放大學習)
- 延遲決策(儘量延遲決定)
- 快速交付
- 尊重人員(團隊授權)
- 全域性優化
八、DevOps 八榮八恥
偶然在網上看到了這個,覺得很形象,所以拿過來(感謝原作者):
- 以可配置為榮,以硬編碼為恥。
- 以系統互備為榮,以系統單點為恥。
- 以隨時可重啟為榮,以不能遷移為恥。
- 以整體交付為榮,以部分交付為恥。
- 以無狀態為榮,以特殊化為恥。
- 以自動化工具為榮,以人肉操作為恥。
- 以無人值守為榮,以人工介入為恥。
真正理解上面這些規則,你才能熟練的應用於專案開發。
九、反思
在瞭解 DevOps
之後,我陷入了深深的恐懼之中。總以為可以通過不斷學習技術來彌補短板,然而現實並非如此。越是努力的學習,越是發現自己掌控之外的東西數不勝數。
所以,有時間真得去琢磨琢磨專案管理相關內容了。唯有博覽群書,才能博學多才!