什麼是DevOps?DevOps 解釋
文章推薦指數: 80 %
DevOps 是開發(Dev) 和作業(Ops) 的複合,是人員、程序與技術的聯合,可持續不斷為客戶提供價值。
DevOps 對團隊代表了什麼意義? DevOps 能讓先前各自獨立的角色(開發、IT ...
已不再支援此瀏覽器。
請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
下載MicrosoftEdge
更多資訊
略過導覽
Azure
連絡銷售員
免費帳戶
首頁
資源
雲端運算字典
什麼是DevOps?
什麼是DevOps?
了解DevOps如何統一人員、流程與技術,以更快速為客戶帶來更好的產品
探索DevOps解決方案
DevOps概觀
DevOps文化特性
DevOps做法
DevOps工具
DevOps和雲端
開始使用
常見問題集
其他
免費帳戶
DevOps定義
DevOps是開發(Dev)和作業(Ops)的複合,是人員、程序與技術的聯合,可持續不斷為客戶提供價值。
DevOps對團隊代表了什麼意義?DevOps能讓先前各自獨立的角色(開發、IT作業、品質工程和安全性)互相協調並共同作業,以生產更好、更可靠的產品。
藉由採用DevOps文化特性和DevOps做法及工具,團隊能更妥善回應客戶需求、對其建置的應用程式更具信心,並更快速達成業務目標。
DevOps的優勢
採用DevOps文化特性、做法和工具的團隊可獲得更高的效能,也能更快速建置更好的產品以提高客戶滿意度。
這種改進的共同作業和生產力,也是達成下列業務目標所必需:
縮短上市時間
適應市場與競爭
保持系統穩定性和可靠性
改進平均復原時間
DevOps和應用程式生命週期
DevOps會從整個規劃、開發、傳遞和作業階段影響應用程式生命週期。
每個階段都依賴於其他階段,且階段並不特定於角色。
在真正的DevOps文化中,在某種程度上,每個角色都會參與每個階段。
方案
在規劃階段中,DevOps團隊會構思、定義並描述他們正在建置之應用程式和系統的功能。
他們會以高低不同的細微性層級來追蹤進度,從單一產品工作到跨多個產品組合的工作。
建立代辦項目、追蹤Bug、使用Scrum管理敏捷式軟體開發(AgileSoftwareDevelopment)、使用工作流程看板、利用儀表板將進度視覺化,是DevOps團隊規劃敏捷性和可見性的一些方法。
開發
開發階段包括編碼(編寫、測試、檢閱以及團隊成員對程式碼整合的所有方面),以及將程式碼建置於可以部署至各種環境的組建成品中。
DevOps團隊會在不犧牲品質、穩定性和生產力的情況下尋求快速創新。
為了達成此目標,他們使用高生產力工具來將一般步驟與手動步驟自動化,並透過自動化測試與持續整合以小增量的方式進行逐一查看。
傳遞
傳遞是以一致且可靠的方式,將應用程式部署至生產環境的程序。
傳遞階段也包括部署及設定組成這些環境的完全受控基礎結構。
在傳遞階段中,團隊會透過明確的手動核准階段來定義發行管理程序。
並且會設定自動化閘道,閘道會在各階段之間移動應用程式,直到應用程式可供客戶使用為止。
將這些程序自動化,可讓其變得易於調整、重複和控制。
如此一來,實踐DevOps的團隊便可以輕鬆、有信心並安心地頻繁傳遞。
操作
作業階段包含在生產環境中維護及監視應用程式,並進行疑難排解。
採用DevOps做法時,團隊會致力於確保系統的可靠性與高可用性,並確保零停機時間,同時加強安全性和管理。
DevOps團隊會在問題影響客戶體驗之前發現問題,並在問題發生時迅速予以解決。
保持這種警覺需要豐富的遙測、可操作的警示,以及對應用程式和基礎系統的完全可見性。
DevOps文化特性
儘管採用DevOps做法可以透過技術來將程序自動化及最佳化,但這一切都始於組織內部的文化特性,以及參與其中的人員。
為了克服培養DevOps文化特性的挑戰,人員必須在工作與共同作業的方式上做出重大改變。
但是,一旦組織致力於DevOps文化特性,就能打造可供高效團隊進行開發的環境。
共同作業、可見度和對齊
良好DevOps文化特性的其中一項特徵,即為團隊之間的共同作業,從可見度開始。
開發和IT作業等不同團隊必須彼此共用其DevOps程序、優先順序和考量。
這些團隊也必須一起規劃工作,並將與業務相關的目標和成功衡量標準保持一致。
範圍與責任的轉移
隨著團隊之間的協調,他們可獲得主導權並參與其他生命週期階段,而不僅限於其角色主要負責的階段。
例如,開發人員不僅要對開發階段建立的創新和品質負責,也要對因其改變而在作業階段所帶來的效能及穩定性負責。
同時,IT操作員必然會在規劃與開發階段納入治理、安全性與合規性。
較短的發行週期
DevOps團隊以短週期發行軟體以保持靈活。
較短的發行週期能讓規劃與風險管理更輕鬆,因為進度是遞增的,這也會降低對系統穩定性的影響。
縮短發行週期,也能讓組織適應並應對持續變化的客戶需求與競爭壓力。
持續學習
高效DevOps團隊會建立成長心態。
他們會快速從失敗中學習,並將經驗融入程序中,且會不斷改進、提高客戶滿意度並加速創新及適應市場。
DevOps是一個旅程,因此始終有成長的空間。
了解Microsoft整個團隊如何採用DevOps文化
深入了解
DevOps做法
除了建立DevOps文化特性之外,團隊也可以在整個應用程式生命週期中實作某些做法來實現DevOps。
其中某些做法有助於加速、自動化並改進特定階段。
其他做法則涉及多個階段,可協助團隊建立順暢的程序,並提升生產力。
持續整合與持續傳遞(CI/CD)
版本控制
敏捷式軟體開發(AgileSoftwareDevelopment)
基礎結構即程式碼
設定管理
持續監視
持續整合與持續傳遞(CI/CD)
持續整合與持續傳遞(CI/CD)
組態管理是指管理包含伺服器、虛擬機器和資料庫等系統中的資源狀態。
使用設定管理工具可讓團隊以受控的系統化方式推出變更,降低修改系統設定的風險。
團隊會使用設定管理工具來追蹤系統狀態並協助避免設定偏差,此偏差是因系統資源設定隨著時間而偏離為其定義的所需狀態所造成。
與基礎結構即程式碼同時實踐,系統定義和設定都可輕鬆進行範本化和自動化,從而協助團隊大規模操作複雜的環境。
版本控制
版本控制
版本控制是在版本中管理程式碼的做法,可追蹤修訂與變更歷程記錄,讓程式碼易於檢閱及復原。
此做法通常使用如Git的版本控制系統來實作,可允許多名開發人員在創作程式碼時進行共同作業。
這些系統提供清楚的程序,來合併在相同檔案中發生的程式碼變更、處理衝突並將變更復原至較早的狀態。
使用版本控制是DevOps的一項基本做法,可協助開發團隊共同作業、在團隊成員之間劃分編碼工作,並儲存所有程式碼以便在需要時輕鬆復原。
版本控制也是其他做法中的必要元素,例如持續整合與基礎結構即程式碼。
深入了解Git
敏捷式軟體開發(AgileSoftwareDevelopment)
敏捷式軟體開發(AgileSoftwareDevelopment)
敏捷式開發是一種軟體開發方法,強調團隊共同作業、客戶和使用者意見反應,以及透過短期發行週期對變更的高適應性。
實踐敏捷式開發的團隊,可為客戶提供持續的變更與改進,並收集客戶意見反應,再根據客戶需求來學習與調整。
敏捷式開發與其他較傳統的架構(例如瀑布方法)有很大不同,後者包括由循序階段所定義的長期發行週期。
工作流程看板和Scrum是與敏捷式開發相關聯的兩種熱門架構。
了解敏捷式開發與DevOps如何搭配運作
基礎結構即程式碼
基礎結構即程式碼
基礎結構即程式碼以描述性方式定義系統資源和拓撲,可讓團隊如同編碼一樣管理這些資源。
這些定義也可以儲存於版本控制系統中並建立版本,並且可在其中像程式碼一樣檢閱及還原。
實踐基礎結構即程式碼,可協助團隊以可靠、可重複與受控的方式來部署系統資源。
基礎結構即程式碼也有助於自動執行部署並降低人為錯誤的風險,特別是針對複雜的大型環境。
這種可重複、可靠的環境部署解決方案,可讓團隊維護與生產環境相同的開發與測試環境。
將環境複製到不同的資料中心和雲端平台,也同樣變得更簡單且更有效率。
設定管理
設定管理
組態管理是指管理包含伺服器、虛擬機器和資料庫等系統中的資源狀態。
使用設定管理工具可讓團隊以受控的系統化方式推出變更,降低修改系統設定的風險。
團隊會使用設定管理工具來追蹤系統狀態並協助避免設定偏差,此偏差是因系統資源設定隨著時間而偏離為其定義的所需狀態所造成。
與基礎結構即程式碼同時實踐,系統定義和設定都可輕鬆進行範本化和自動化,從而協助團隊大規模操作複雜的環境。
持續監視
持續監視
持續監視表示從執行應用程式之基礎結構到更高層級的軟體元件,全面且即時地了解整個應用程式堆疊的效能和健康狀態。
此可見度包括遙測和中繼資料的集合,以及預先定義條件的警示設定,這些條件皆需操作員注意。
遙測由從系統各個部分收集的事件資料與記錄所組成,這些資料與記錄儲存於可進行分析和查詢的地方。
高效能的DevOps團隊會確保其設定可操作、有意義的警示,並收集豐富的遙測,以便從大量資料中獲得見解。
這些見解有助於團隊即時解決問題,並了解如何在未來開發週期中改進應用程式。
DevOps工具
團隊擁有許多DevOps工具來協助他們在組織中促進DevOps文化。
大多數團隊依賴於多種工具,並建置自訂工具鏈以滿足應用程式生命週期中每個階段的需求。
雖然採用特定工具或技術與採用DevOps並不相同,但是當DevOps文化已存在並已定義程序時,只要人員選擇適當的工具,即可以實作並簡化DevOps做法。
取得可將DevOps付諸實行的工具:
探索DevOps解決方案
DevOps和雲端
採用雲端可從根本上改變團隊建置、部署及操作應用程式的方式。
同時採用DevOps,可讓團隊擁有更多機會來改進其做法,並為客戶提供更佳的服務。
雲端彈性
藉由以無限量資源快速佈建及設定多區域雲端環境的能力,團隊可靈活地部署應用程式。
現在,團隊不必購買、設定及維護實體伺服器,在幾分鐘內即可建立複雜的雲端環境,然後在不需要時將其關閉。
深入了解雲端運算
Kubernetes
隨著愈來愈多的應用程式使用容器技術,Kubernetes逐漸成為業界用於大規模協調容器的解決方案。
透過CI/CD管線將建置及部署容器的程序自動化,並在生產中監視這些容器,已逐漸成為Kubernetes時代的基本做法。
深入了解Kubernetes
無伺服器運算
隨著大部分管理基礎結構的額外負荷轉移至雲端提供者,團隊可以專注於其應用程式,而無需專注於基礎結構。
無伺服器運算可提供不需設定及維護伺服器即可執行應用程式的能力。
某些選項可降低部署與作業的複雜度和風險。
深入了解無伺服器運算
開始您的DevOps旅程
DevOps有許多可行的做法和解決方案,一開始看起來會讓人不知從何下手。
關鍵是從小處開始著手,並向別人學習。
發展您的DevOps實務
探索DevOps解決方案
利用Azure的免費帳戶在雲端中進行DevOps
常見問題集
哪些團隊應該採用DevOps?
DevOps由組織中的不同角色實踐,且需要數個角色密切地共同作業。
在大多數情況下,DevOps角色包括開發、IT、作業、安全性與支援。
了解如何建立DevOps實務。
DevOps是一種工作職稱嗎?
DevOps並不侷限於單一角色。
參與每個應用程式生命週期階段的每位人員,都必須接納DevOps文化特性。
不過,在某些組織中,某些人員或團隊唯一的重點是提供自動化、定義做法及實作CI/CD管線。
有時候,這些角色的正式職稱是DevOps工程師或DevOps專家。
大型組織應如何採用DevOps?
在大型組織中採用DevOps可能極具挑戰性。
改變大型組織的文化特性和標準化程序與工具,需要耐心和毅力。
在大多數的大型組織中,都會有DevOps做法的早期採用者。
隨著這些做法趨於成熟並產生正面結果,其他團隊通常會隨之開始接納DevOps。
了解Microsoft整個團隊如何採用DevOps文化。
DevOps如何協助推動商務成果?
DevOps的真正意義是為客戶提供持續的價值。
採用DevOps的結果,必須以與商務目標相關的方式來衡量。
DevOps團隊需根據這些目標進行調整,並使用短期發行週期來達成這些目標。
這些週期可讓團隊迅速回應市場,並從客戶的意見反應持續學習。
DevOps和敏捷式開發之間的關係是什麼?
DevOps和敏捷式開發都是現代軟體開發架構,用於生產、啟動或發行產品。
DevOps是一種文化特性,旨在促進軟體開發和維護過程中所有角色間的共同作業。
敏捷式開發是一項開發方法,旨在於需求不斷變化的普遍現實情況下,保持生產力和加速發行。
DevOps和敏捷式開發並不會互相排斥,且通常一起實踐。
了解如何結合DevOps與敏捷式開發。
持續傳遞與持續部署有什麼區別?
除了持續整合外,持續傳遞及持續部署都是將軟體傳遞階段自動化的做法。
我可以從哪裡深入了解如何開始使用DevOps。
探索DevOps學習路徑。
延伸文章資訊
- 1什麼是DevOps 開發維運?- 實務做法與優點說明 - NetApp
DevOps 開發維運是一項不斷發展的理念與架構,旨在鼓勵更快、更出色的應用程式開發,以及更快地將新的或修訂後的軟體功能或產品發佈給客戶。 · 為什麼DevOps 開發維運如此 ...
- 2成為DevOps 工程師學習地圖 - Soft & Share
DevOps(Development和Operations的組合詞)是一種重視「軟體開發人員(Dev)」和「IT運維技術人員(Ops)」之間溝通合作的文化、運動或慣例。透過自動化「軟體交付」 ...
- 3DevOps是什麼? DevOps 核心五個概念有哪些? - 偉康科技洞察室
DevOps 是由Development 開發+ Operations 維運所組成,一個專案上線前由研發部門寫程式開發,在上線前須要經過多次測試,最後上線後交由維運部門維護 ...
- 4什麼是DevOps?– Amazon Web Services (AWS)
DevOps 是集文化哲學、實務與工具於一身的結合,可提升組織快速交付應用程式和服務的能力:相較於使用傳統軟體開發與基礎設施管理程序的組織,這種作法能更快速地開發 ...
- 5DevOps - 維基百科,自由的百科全書
DevOps(Development和Operations的組合詞)是一種重視「軟體開發人員(Dev)」和「IT運維技術人員(Ops)」之間溝通合作的文化、運動或慣例。通過自動化「軟體交付」 ...