持續部署

menu icon

持續部署

本指南探討持續部署策略的概念,以及它如何支援企業的可擴充性。

何謂持續部署?

持續部署是一種軟體開發策略,其中應用程式的程式碼變更會自動發行至正式作業。 此自動化是由一系列預先定義的測試所驅動。 一旦有新的更新項目通過那些測試,系統便會將更新項目直接推送給軟體使用者。

持續部署為想要擴充其應用程式與 IT 組合的企業提供多種好處。 首先,它消除了從編碼到客戶價值之間的延遲,通常是數天、數週甚至數月,從而加快上市速度。

為了實現此目標,迴歸測試必須自動化,藉此消除昂貴的手動迴歸測試。 組織用來管理大量正式作業變更,包括發行規劃與核准會議的系統對大部分的變更而言已不再需要。

持續部署與...

持續部署與持續交付的比較

雖然「持續部署」和「持續交付」聽起來可能是一樣的東西,但實際上是兩種不同的頻繁發行方法。

持續交付是一種軟體開發作法,其中軟體是透過可在任何指時間發行至正式作業的方式進行建置。 為了完成此任務,持續交付模式涉及類似正式作業的測試環境。 在持續交付解決方案中執行的新建置,將會自動部署至自動品質保證測試環境中,以測試不限數目的錯誤和不一致。 在程式碼通過所有測試之後,持續交付需要人為介入才能核准部署進入正式作業。 接著,部署本身會自動執行。

持續部署則會進一步自動化,以消除人為介入的需要。 測試和開發人員被認為是值得信賴的,因此不需要核准正式作業發行。 如果通過測試,新的程式碼將視為已核准,隨即部署至正式作業。

持續部署是持續交付順利完成的自然結果。 最終,人工審核的價值就不多甚或沒有,因此只會慢慢減少。 到時候,人工審核將會廢除,而持續交付會變成持續部署。

觀看下面來自 Eric Minick 的影片,以進一步瞭解持續部署和持續交付之間的差異:

持續交付與持續部署的比較 (07:36)

持續部署與持續整合的比較

確保無縫持續部署的另一個關鍵要素是持續整合。 為了讓部署流程自動化順利運作,處理專案的所有開發人員都需要透過有效率的方式來溝通所發生的變更。 持續整合使其成為可能。

一般來說,處理相同軟體開發專案時,開發人員會在程式碼主要分支的個別副本上工作。 不過,在開發人員將其變更合併到主要程式碼庫之後可能會發生功能問題和錯誤,特別是在開發人員彼此獨立工作時。 他們獨立工作的時間越長,風險就越高。

有了 CI,每個人每天會將其程式碼變更合併到儲存庫至少一次。 只要發生更新,便會執行自動化的建置測試,以確保任何變更都與主要分支保持相容。 這用來做為儘快捕捉整合問題的防止失效。

若要更仔細查看持續整合與持續交付及持續部署之間的差異,請參閱部落格文章「持續整合與持續交付: 快速說明」 和影片「何謂持續整合?」:

何謂持續整合 (06:20)

持續部署工具

為了持續開發與部署高品質的軟體加強功能,開發人員必須使用適合用來建置有效 DevOps 作法的恰當工具。 這樣做不僅能確保開發和營運部門之間的有效率溝通,還可以儘量減少或消除軟體交付管線中的錯誤。

以下是在持續部署工作流程中所使用的部分最重要工具:

  • 版本控制:版本控制藉由追蹤特定專案資產的修訂來協助持續整合。 也稱為「修訂」或「來源」控制的版本控制有助於改良專案更新與變更的可見性,同時協助團隊分工合作,無論他們在何處及何時工作。
  • 程式碼檢查:就像聽起來一樣簡單,「程式碼檢查」是一種使用工具來測試現行原始碼的過程。 程式碼檢查有助於藉由在尋找程式碼中的錯誤來改善軟體的完整性,並協助開發人員在部署更新項目之前先解決這些問題。
  • 持續整合 (CI):CI 是持續部署的重要元素,當有多位開發人員處理相同專案時,CI 在儘可能減少開發路障方面扮演重要角色。 市場上各種專有和開放原始碼 CI 工具,它們各自應付企業軟體部署的獨特複雜性。
  • 配置管理:配置管理是確保所有軟硬體保持一致狀態的策略與規範。 其包括所有伺服器儲存設備網路及軟體的適當配置和自動化。
  • 發行自動化:應用程式發行自動化(或應用程式發行編排)在自動執行所有必要活動以推動持續部署時非常重要。 編排工具將流程序相互連接起來,以確保開發人員在將新的變更推送至正式作業之前遵循所有必要步驟。 這些工具與配置管理流程緊密合作,以確保所有專案環境都適當佈建,並且能夠以最高效能執行。
  • 基礎架構監視:運作持續部署模式時,能夠將測試環境中的資料視覺化很重要。 基礎架構監視工具可協助您分析應用程式效能,以瞭解您所做的變更是否具有正面或負面影響。

使用 Kubernetes

Kubernetes開發持續部署管線時可使用的重要開放原始碼解決方案。 由於擁有靈活、合乎邏輯和直覺的使用者介面,Kubernetes 可減少在支援現代基礎架構和多雲部署時因面臨伺服器用量限制和中斷而衍生的常見問題。

Kubernetes 可協助提高 DevOps 流程的敏捷性。 歸功其模組化設計,Kubernetes 容許改變服務當中的個別 Pod,以及 Pod 之間的無縫轉移。 此靈活彈性可協助開發團隊避免伺服器關閉時間,並且在執行微服務時發揮最大的資源使用率。 Kubernetes 也是一種極為可靠的平台,它可以在應用程式和服務部署至公開環境之前偵測其就緒狀況與整體性能。

跨不同應用程式持續部署

建立持續交付或持續部署基礎架構時,重要的是找出正確的企業解決方案,以便為您的公司提供自動執行軟體測試和部署流程所需的信心。 IBM UrbanCode Deploy 是一種應用程式部署自動化平台,它透過一個最佳化套件提供企業推動其軟體開發需求所需的可見性、可追蹤性及審核功能。

多雲部署

組織可以使用 UrbanCode Deploy 的 Easy Process 和 Blueprint Designer 來建立自訂雲端環境模型,以將應用程式應如何部署至公有雲私有雲混合雲的方式視覺化。 Blueprint Designer 可讓使用者在啟用完整的雲端編排功能的同時,建立、更新與拆分完整堆疊運算環境。 然後即可佈建所有環境,以自動或隨需應變部署應用程式元件。

分散式自動化

UrbanCode Deploy 是可高度擴充的解決方案,以支援所有關鍵任務應用程式與服務的動態部署。 專門設計用來滿足企業跨多重資料中心進行部署的獨特需求,UrbanCode Deploy 可支援主要伺服器叢集作業,並使用輕量型部署來提供立即的服務可用性。

高品質閘道與核准

能夠信賴自動化測試環境的準確性,這絕對是成功實現持續部署的關鍵。 不過,有些環境必須建立標示手動核准的特定條件,以確保正確資訊在正確時間推送至正式作業。 UrbanCode Deploy 提供部署核准和閘道,以便管理者在其持續部署流程中獲得更進一步的控制性、可見性及審核功能。

經過測試的整合

雖然 UrbanCode Deploy 支援使用您自己的 Script,但現成的外掛程式可讓部署流程更容易設計與管理。 使用經過測試的整合,開發人員即可利用預先建置的自動化,這些自動化已經通過驗證。 這樣就不需要特別為 UrbanCode Deploy 建立自訂 Script。

IBM UrbanCode Deploy 提供進階流程編排和協同作業工具,讓企業可透過一個容易使用且可自訂的儀表板彙整其所有部署需求。 無論應用程式部署在內部部署、外部部署或數以千計的受管理伺服器中,UrbanCode Deploy 都可以提供您必要的解決方案,以確保您整個企業中的持續交付和快速部署。

若要進一步瞭解 IBM UrbanCode Deploy,以及它如何推動您的部署流程演進,請探索 IBM 的部署自動化解決方案

持續部署與 IBM Cloud

能夠自動將程式碼變更發行至正式作業環境,這種能力有助於大幅加快上市速度。 您可以使用 IBM 工具來執行此作業,也可以與第三方和開放原始碼外掛程式相整合。 IBM 流程和工具可協助組織應付在雲端旅程中執行 DevOps 計劃時所面臨的最大挑戰之一:建置與現代化應用程式

進行下一步:

立即開始使用 IBM Cloud 帳戶