DevOps 開發維運是一項不斷發展的理念與架構,旨在鼓勵更快、更出色的應用程式開發,以及更快地將新的或修訂後的軟體功能或產品發佈給客戶。
DevOps 開發維運的實務做法可促進應用程式開發團隊 (Dev) 與其 IT 營運團隊 (Ops) 的合作夥伴之間更順暢、持續的溝通、協同作業、整合、可見度及通透性。
「Dev」與「Ops」之間的這種密切關係貫穿了 DevOps 開發維運生命週期的每個階段:從初始軟體規劃到程式碼、建構、測試和發佈階段,再到部署、作業與持續監控。這種關係推動了進一步改善、開發、測試及部署的持續客戶回饋循環。這些努力的結果之一可能是更快速地持續發佈必要的功能變更或新增項目。
有些人將 DevOps 開發維運目標分為四類:文化、自動化、測量與共享 (CAMS),而 DevOps 開發維運工具可以在這些領域提供協助。這些工具可讓開發與營運工作流程更為精簡且更具協同合作性,將先前涉及整合、開發、測試、部署或監控的耗時、手動或靜態工作自動化。
除了努力打破開發與 IT 營運團隊之間的溝通與協同作業障礙外,DevOps 開發維運的一個核心價值是客戶滿意度和更快實現價值。DevOps 開發維運也旨在推動企業創新和持續的流程改善。
DevOps 開發維運的實務做法鼓勵將商業價值更快、更妥善且更安全地交付給組織的終端客戶。這項價值的形式可能是更頻繁的產品發佈、功能或更新。其中可能涉及客戶能取得產品發佈或新功能的速度,而且全部都必須達到適當程度的品質和安全性。或者,其中可能著重於識別問題或錯誤,然後解決並重新發佈的速度。
底層基礎架構也會支援 DevOps 開發維運,使其具有順暢的效能、可用度及軟體可靠性,因為它是先經過開發和測試,然後才發佈到正式作業環境中的。
組織可以使用一些常見的 DevOps 開發維運方法來加速及改善開發與產品發佈作業。它們採用軟體開發方法和實務做法的形式。其中最熱門的是 Scrum、Kanban 和 Agile:
DevOps 開發維運實務做法的追隨者通常會在其 DevOps 開發維運「工具鏈」中使用某些易於使用的 DevOps 開發維運工具。這些工具的目標是進一步簡化、縮短及自動化軟體交付工作流程(或「管道」)的各個階段。許多這類工具也能促進開發與營運團隊之間的自動化、協同作業及整合等 DevOps 開發維運核心原則。以下說明在各個 DevOps 開發維運生命週期階段使用的工具範例。
DevOps 開發維運實務做法反映了持續改善與自動化的理念。許多實務做法著重於一或多個開發週期階段。這些實務做法包括:
DevOps 開發維運的支持者說明了一些業務和技術上的優勢,其中許多都可以讓客戶更滿意。DevOps 開發維運的部分優勢包括:
許多用於簡化軟體開發與部署的 DevOps 開發維運方法,在靈活的軟體開發與精簡程式設計方面都具有早期基礎。但是 DevOps 開發維運最初是從幾個基層運動演變而來,以協調開發人員及其營運團隊的活動。
在 21 世紀初,我們發現必須維持 Google 和 Flickr 等熱門網站的可用度,以因應大量的點閱。這種需求導致了必須用到軟體可靠性工程師 (SRE),讓營運人員與開發人員密切合作,以確保在將程式碼發佈到正式作業環境後,這些網站仍能繼續運作。
2009 年,Flickr 工程師 John Allspaw 和 Paul Hammond 在一次會議上提出了他們自己的類似 DevOps 開發維運的方法。他們的演講題目是「每天部署 10 次以上:Flickr 內部的開發與營運合作」(10+ Deploys per Day: Dev and Ops Cooperation at Flickr)。同年,Patrick Debois 在比利時舉辦了第一個「DevOps 開發維運日」(DevOps Day)。隨著全球各地舉辦越來越多的 DevOps 開發維運日,我們也加入了 #DevOps 雜湊標記,並獲得更多動力。
在接下來的幾年裡,業界人士開發並提出了業界和開放原始碼工具與架構,以進一步實現 DevOps 開發維運的目標。
NetApp 利用 DevOps 開發維運協助推動更好的業務成果:營運團隊以更少的工程技術提供自動化的基礎架構,而開發人員則能在可靠且可預測的環境中建立,並減少摩擦。借助 NetApp® 技術,您就能安心地提供組織所需的服務與功能,以在內部部署與雲端環境中發揮最大的開發人員生產力。
NetApp 讓開發人員、測試、QA 和營運團隊都可以輕鬆地使用基礎架構資源(例如持續儲存 Volume)做為程式碼,而且全部可以從 DevOps 開發維運管道中的熟悉工具進行。範例包括 NetApp 儲存 API 和 IAC 與 Puppet、Ansible、Docker、Kubernetes 和 OpenShift 等工具的整合。
但是 NetApp 不只能讓開發人員輕鬆地使用儲存設備做為程式碼。NetApp 技術也能讓營運部門充滿信心地為開發與測試人員配置和提供資源。然後,開發人員和測試人員便可以透過自行配置快速且省時的儲存功能(例如 Snapshot 快照技術或 Clone 複製),來加快編碼和測試週期。有了這些功能,只需幾秒鐘或幾分鐘的時間就能將即時正式作業資料或程式碼集的複本配置成程式碼,以加速開發與 QA 工作流程。
NetApp 對社群的承諾延伸至 thePub。這個開發人員社群鼓勵協同作業、分享秘訣和技巧,並針對最新的 DevOps 開發維運實務做法和傳輸協定辯論想法。