探索DevOps應用程式生命週期

已完成

雖然 DevOps 做法的範圍很廣,但他們的主要目標是優化應用程式生命週期管理。 在虛構的公司範例中,從現有的應用程式移轉至具有更新功能的新應用程式,需要重新瀏覽應用程式生命週期的每個階段。 因此,瞭解DevOps原則如何大幅改變每個階段的實作方式,從規劃到開發和傳遞,到作業。 在本單元中,將逐步解說這些實作的高階概觀。

應用程式生命周期階段

應用程式生命週期階段包括規劃、開發、傳遞和作業。

DevOps 和應用程式生命週期的螢幕快照。

規劃

規劃階段牽涉到檢閱客戶需求,以概述及定義要開發之軟體的特性和功能。 這類軟體的範圍從個別微服務到由多個產品組成的組合。 結果會定義應用程式開發和部署的軟體需求、範圍和里程碑。 從 DevOps 的觀點來看,此階段的主要考慮包括靈活度、以客戶為中心的焦點、對齊和可見度。

發展

開發階段涵蓋開發應用程式程式代碼的所有層面。 這些層面包括程式設計、測試和程式代碼檢閱。 為了符合 DevOps 做法,程式代碼應該位於原始檔控制系統中,以利共同作業並支援版本控制。 程序代碼的工作版本可用來建置適合後續傳遞的成品。 這類成品可以採用可執行二進位檔、軟體連結庫、容器映像、安裝程式套件、組態檔、部署腳本,甚至是檔的形式。

此階段的變更應透過自動化測試和建置以小幅方式套用,稱為 持續整合(CI),這可加速開發程式並增強靈活度。

交貨

交付是以一致且可靠的方式,將開發階段期間建置的工件部署至生產環境。 雖然此階段的最終目標是透過 持續傳遞 (CD)進行完整自動化,但某些組織,特別是在其 DevOps 採用的早期階段,可能會選擇實作手動核准或檢查。 隨著 DevOps 實務的信心增加,通常可以完全自動化這些檢查。 例如,成功且自動驗證部署至預備環境,可能會作為轉換至生產環境的基礎。 自動化可協助讓傳遞程式可調整、可重複且更具彈性(藉由將人為錯誤的可能性降到最低)。 成功實作這類方法的關鍵是遵循 DevOps 做法,包括適當的測試、可觀察測量的使用,以及持續學習。

傳遞也應該考慮透過 IaC 布建和設定目標環境的基礎結構。 將基礎結構視為程式代碼提供一系列優點,包括一致性、重現性和靈活度。

作業

作業階段涉及在生產環境中維護、監視和疑難解答應用程式。 從 DevOps 的觀點來看,此階段的主要目標是穩定性和可靠性、快速事件回應、安全性和合規性,以及客戶滿意度。 在某種程度上,達到這些目標取決於妥善地實施可衡量的結果。 DevOps 程式也依賴所謂的 意見反應迴圈,以提供反映已部署應用程式目前狀態的數據,例如效能計量、回應性和整體用戶體驗,包括改善或降級的功能。

在此階段中,請務必確保開發、運營和安全性小組之間達到最高的合作水準。 此階段也可作為持續學習的基本來源。

應用程式生命週期的最後階段為何?

根據此單元開頭的名稱和影像所示,應用程式生命週期的設計是一個循環過程。 一個應用程式的生命周期有一個確定的開始和結束,這個時間範圍是由它的設計階段和退役事件所決定的。 不過,在初始部署之後(或常常更早的時候),使用者的意見反應和監視數據會指導後續的更新以及應用程式的發展與改進。

注意

請記住,儘管在此單元中只提到過幾次安全性,但根據 DevSecOps 原則,其角色在整個應用程式生命週期中仍會持續運作。 實際上,應該在每個階段考慮安全性相關考慮,從初始規劃的開頭開始。