使用 IBM Cloud Satellite 來開發及部署應用程式

DevOps Insights 將於 2026 年 8 月 31 日結束服務並停止運作。Continuous Delivery 將於 2027 年 2 月 12 日在以下地區停止運作:au-sydca-torus-east。 Code Risk Analyzer 也將於該日於所有地區停止服務。 若某個區域未實際使用這些功能,該區域中的功能可能會提前停用,並停止接受新的實例。 了解更多

在本教學中,您將學習如何使用 建立 IBM Cloud® Continuous Delivery 開放式工具鏈,並將您的應用程式部署至 Satellite。 您還將了解工具鏈在「Continuous Delivery」服務中的實作方式,以及如何利用工具鏈開發並部署一個簡單的 Web 應用程式(app)。

IBM Cloud Satellite 會將公用雲端服務帶到任何環境,讓具有嚴格法規需求的客戶能夠將這些服務的彈性和敏捷性用於其安全的內部部署資料中心。Continuous Delivery 使用 Satellite 配置,在 IBM Cloud Satellite中跨叢集群組部署應用程式。 使用 Satellite Config,您可以建立配置來指定要將哪些 Kubernetes 資源部署至在 Satellite 位置或 IBM Cloud中執行的 Kubernetes 或 Red Hat® OpenShift® on IBM Cloud® 叢集的叢集群組。

本指導教學中使用的工具鏈實作標準 DevOps 作法,例如程式碼掃描、驗收測試、Git 儲存庫,以及持續整合和持續交付功能。 建立叢集並將它們與 Continuous Delivery 叢集群組相關聯之後,請建立工具鏈來變更應用程式的程式碼,並將變更推送至 Git Repos and Issue Tracking 儲存庫。 當您將變更推送至儲存庫時,Tekton 型 Delivery Pipeline 會自動建置並部署程式碼。

Tekton 是一個開源、廠商中立的原生 Kubernetes 框架,可用於建立、測試及部署應用程式。 Tekton 提供一組共享元件,用於建構持續整合與持續交付系統。 作為開源專案,Tekton 由 基金會 Continuous Delivery 管理。 目標是透過提供管線、工作流程及其他建置區塊的產業規格,將持續交付現代化。 使用 Tekton,您可以透過摘錄基礎實作詳細資料,在雲端提供者或內部部署系統之間建置、測試及部署。 Tekton 管道已內建於 Continuous Delivery. 有關 的 IBM Cloud® Kubernetes Service 更多資訊,請參閱 IBM Cloud® Kubernetes Service

本教學所使用的範本適用於 Kubernetes. 的標準方案。

開始之前

開始本指導教學之前,請確定您已備妥下列資源:

  • IBM Cloud 帳戶。 視您的 IBM Cloud 帳戶類型而定,對某些資源的存取權限可能會受到限制。 視您的帳戶方案限制而定,部分部署策略所需的某些功能可能無法使用。 如需 IBM Cloud 帳戶的相關資訊,請參閱 設定 IBM Cloud 帳戶升級帳戶

  • Kubernetes 叢集 及 API 金鑰。 您可以使用使用者介面或 CLI 來建立這些資源。 叢集的配置可能需要一些時間。 在建立叢集時,它會進行「部署中」、「擱置中」及「備妥」階段。 如需 Kubernetes 叢集的相關資訊,請參閱 Kubernetes 叢集

  • 包含工具鏈所需叢集的 Satellite 叢集群組。 本指導教學中的工具鏈支援只包含一種叢集類型的 Satellite 叢集群組: Kubernetes 叢集或 Satellite 叢集。

  • Continuous Delivery 服務的實例。

  • 選用。 儲存在密鑰管理儲存庫中並從單一位置集中管理的密鑰。 如需從各種密鑰管理及資料保護供應項目中進行選擇的相關資訊,請參閱 管理 IBM Cloud 密鑰。 如果您還沒有您選擇的密鑰管理儲存庫提供者實例,請建立一個實例。

  • 選用。 使用儲存器登錄指令行建立的名稱空間。 若要建立名稱空間,請從指令行鍵入下列指令:

    ibmcloud cr namespace-add <my namespace>
    

    或者,您可以在 Container Registry 頁面上建立名稱空間。 有關在此位置建立命名空間的更多信息,請參閱 IBM Cloud Container Registry 服務。

建立工具鏈

在此步驟中,您可以建立 使用部署策略將應用程式開發及部署至 Kubernetes 工具鏈。 在工具鏈設定期間,會使用 IBM Cloud API 金鑰及 Kubernetes 叢集名稱來配置目標 Kubernetes 叢集。 您可以稍後透過更新 Delivery Pipeline 配置來變更這些設定。 任何合併至目標 Git 儲存庫分支的程式碼都會自動建置、驗證及部署至 Kubernetes 叢集。

若要建立 使用部署策略將應用程式開發及部署至 Kubernetes 工具鏈,請按一下

建立工具鏈

或者,從控制台 IBM Cloud 點擊選單圖示(漢堡圖示 )> 平台自動化 > 工具鏈。 在工具鏈頁面上,按一下建立工具鏈。 在「建立工具鏈」頁面中,點擊 「使用部署策略開發並部署 Kubernetes 應用程式至」

配置工具鏈名稱及地區

檢閱工具鏈設定的預設資訊。 在 IBM Cloud 中,可透過工具鏈名稱來識別工具鏈。 請確定工具鏈名稱在 IBM Cloud中相同地區及資源群組的工具鏈內是唯一的。

工具鏈地區可能與叢集及登錄地區不同。

Kubernetes安全應用工具鏈名稱和區域
Kubernetes安全應用工具鏈名稱和區域

選取部署策略

工具鏈會建立「持續部署管線」,以在 Satellite中定義的叢集群組上部署應用程式 Docker 映像檔。

  1. 按一下 透過 Satellite的多個叢集,以使用 Satellite來部署應用程式。

    Kubernetes安全應用部署策略
    部署策略

  2. 按一下繼續

配置應用程式原始碼儲存庫

在「應用程式」步驟中,依預設會顯示應用程式原始碼儲存庫的建議選項。 若要檢視基礎 Git 整合的所有可用選項,請按一下 進階選項。 依預設,工具鏈會使用預設範例,將範例應用程式複製為 IBM管理的 Git Repos and Issue Tracking 儲存庫。

Kubernetes安全應用程式儲存庫
Kubernetes安全應用程式儲存庫

您可以變更應用程式儲存庫的名稱。 儲存庫的地區仍與工具鏈的地區相同。

工具鏈範本提供 Hello Containers 應用程式 應用程式。 如果您要連結工具鏈的現有 Application repo,請選擇 Bring your own app,並指定 repo 的 URL。 工具鏈只支援連結至現有的 Git Repos and Issue Tracking repos。

預設情況下,應用程式儲存庫範本會複製到您的 Git Repos and Issue Tracking 組織中。 若要變更組織,請啟用 進階選項 並指定儲存庫擁有者。

配置庫存儲存庫

庫存儲存庫會記錄持續整合工具鏈所建置構件的詳細資料。 您可以建立新的庫存儲存庫,它是 庫存儲存庫範本 的複本,或使用您在工具鏈之間共用的現有庫存儲存庫。

Kubernetes安全應用程式庫存儲存庫
Kubernetes安全應用程式庫存儲存庫

預設情況下,庫存儲存庫範本會複製到您的 Git Repos and Issue Tracking 組織。 若要變更組織,請選取 進階選項 並指定儲存庫擁有者。

安全儲存密鑰

此工具鏈內的數個工具需要密碼,例如 IBM Cloud API 金鑰。 您必須安全地將所有密鑰儲存在密鑰儲存庫中,並在工具鏈需要時參照它們。

使用 IBM Cloud,您可以從各種密鑰管理及資料保護供應項目中選擇,以協助您保護機密資料並集中化密鑰。 在「密鑰」步驟中,您可以指定要在工具鏈中新增或移除哪些密鑰儲存庫整合。 如需新增及移除儲存庫整合 (包括必要條件及使用提示) 的相關資訊,請參閱 管理 IBM Cloud 密碼

透過使用範本內的提示,工具鏈會自動移入預先配置的密鑰; 您不需要從附加至工具鏈的儲存庫整合中手動選取密鑰。

本指導教學使用 IBM Secrets Manager 作為密鑰儲存庫。

Kubernetes安全應用程式機密選項
Kubernetes安全應用程式機密選項

IBM Secrets Manager 可安全地儲存並套用密鑰,例如屬於工具鏈一部分的 API 金鑰、映像檔簽章或 HashiCorp 認證。

Kubernetes安全應用程式機密選項
Kubernetes安全應用程式機密選項

有關在 IBM Key Protect 或 HashiCorp, 管理機密的詳細資訊,請參閱 機密

配置部署目標

配置要將應用程式部署至其中的目標 Kubernetes 叢集。 在應用程式通過建置、測試及掃描階段之後,管線會將建置的應用程式映像檔部署至目標 Kubernetes 叢集。 此部署現在已準備好進行驗收測試或整合測試。

如果 API 金鑰具有必要的存取權,則下列欄位會使用已建立、從儲存庫擷取或手動指定的 API 金鑰自動載入。 如果 API 金鑰有效,則會自動移入儲存器登錄區域及名稱空間叢集區域、名稱、名稱空間及資源群組的值。 您可以更新任何這些欄位,以符合您的配置。

  • 應用程式名稱: 應用程式的名稱。 預設應用程式名稱為 hello-containers

  • IBM Cloud API 金鑰: 在數個作業中用來與 ibmcloud CLI 工具互動的 API 金鑰。 使用下列其中一種方法來指定您要使用的 API 金鑰:

    • 按一下金鑰圖示,以從您選擇的密鑰儲存庫匯入現有 API 金鑰。
    • 複製並貼上現有的 API 金鑰。
    • 按一下 新建 以建立 API 金鑰。
    • 如果您沒有現有的 API 金鑰,請產生新的 api-key

    您可以立即將產生的 API 金鑰儲存至您選擇的現有密鑰儲存庫。

  • Satellite 叢集群組名稱: 在 Satellite中建立的叢集群組名稱。 您的應用程式已部署至此叢集群組。

  • 叢集名稱空間: 如果叢集名稱空間不存在於叢集群組內的叢集中,則工具鏈會建立它。

滾動或藍綠的Kubernetes安全應用程式部署目標詳細資料
Kubernetes安全應用程式滾動部署目標詳細資料

新增選用工具整合

您可以將 IBM Cloud® DevOps Insights 工具整合新增至工具鏈,而不需要任何其他配置。

DevOps Insights 包含在已建立的工具鏈中。 您不需要提供 DevOps Insights的任何配置步驟。 連續整合管線會自動使用工具鏈中包含的 DevOps Insights 實例。DevOps Insights 會聚集程式碼、測試、建置及部署資料,以提供所有團隊及版本之速度及品質的可見性。

按一下繼續

完成工具鏈設定

在「摘要」頁面上,點選「建立」。 會自動執行數個步驟來設定工具鏈。

您可以在建立管線之後配置個別工具鏈整合。

Kubernetes安全應用工具鏈摘要
Kubernetes安全應用工具鏈摘要

探索您的新工具鏈

建立工具鏈之後,它會在圖表中顯示屬於工具鏈一部分的每一個工具整合。

探索管線

您可以探索管線,以瞭解工具鏈流程以及在每一個管線內執行的不同作業。 您剛建立的工具鏈包含三個管線:

  • 取回要求管線: 當開發人員合併從其開發分支到主要分支或儲存庫中任何其他分支的變更時執行。 取回要求管線會在「應用程式原始碼」上執行「單元測試」和「靜態掃描」。
  • 連續整合管線: 當您將變更合併至「應用程式原始碼」儲存庫的主要分支時執行。 持續整合管線會在「應用程式原始碼」、CIS 檢查及「資料清單 (BOM)」檢查上執行「單元測試」、「程式碼涵蓋面」及「靜態掃描」。 持續交付管線也會產生二進位建置構件,並將它們上傳至 IBM Cloud® Kubernetes Service,如工具鏈中所配置。 持續整合管線會產生建置構件的 meta 資料,並將它儲存在「庫存」儲存庫中。
  • 連續部署管線: 將建置構件部署至部署環境。 管線會執行性能檢查來驗證應用程式是否順利部署。 在連續整合管線順利完成之後,您必須手動觸發此管線。 視您選取的部署策略而定,會將更多觸發程式新增至持續交付管線。

執行取回要求及持續整合管線

若要啟動取回要求管線,請在應用程式儲存庫中建立合併要求:

  1. 在「工具鏈概觀」頁面上的 儲存庫 卡片上,按一下 compliance-app-<timestamp> 應用程式儲存庫。
  2. 從主要儲存庫中,建立分支。
  3. 更新範例節點應用程式或 Readme 檔中的部分程式碼,並儲存這些變更。
  4. 提交合併要求。
  5. 在「工具鏈概觀」頁面的 儲存庫 卡上,按一下 pr-pipeline 儲存庫,以啟動取回要求管線。 應用程式儲存庫中的對應合併要求會保持擱置狀態,直到取回要求管線的所有階段順利完成為止。
  6. 在取回要求管線執行成功之後,您可以選取它來探索已完成的步驟。

拉取請求管道成功
拉取請求管道成功

若要啟動持續整合管線,請在應用程式儲存庫中合併持續整合合併要求:

  1. 移至合併要求。
  2. 合併要求,以便將變更複製到應用程式儲存庫的主要分支。 持續整合管線會自動觸發。
  3. 在「持續整合工具鏈概觀」頁面上的 儲存庫 卡上,按一下 ci-pipeline 儲存庫,以啟動持續整合管線。
  4. 在連續整合管線執行成功之後,您可以按一下管線執行,以探索已完成的步驟。

持續整合管道成功
持續整合管道成功

左移練習

在安全應用程式開發世界中,左移是一種作法,可防止及尋找問題報告及安全漏洞等問題,並在軟體交付處理程序早期執行相符性檢查。 這種在開發週期中提早進行品質檢查的做法包括以下幾種:

  • 盡早執行可以在程式碼或儲存庫本身上執行且不需要建置映像檔的檢查。 這些檢查會防止不合規程式碼合併至儲存庫的主要分支。 由於證據並非從拉取請求管道中收集,因此其目標是在開發過程中儘早移動合規性檢查。
  • 所有檢查都在每個管線執行中執行。 如果前一個檢查失敗,管線會進行到下一個檢查。 若要評估執行中是否有任何失敗,請檢查具有管線評估器之管線的最終步驟。

單元測試及漏洞掃描的結果會發佈至工具鏈內的 DevOps Insights 實例。 若要檢閱這些結果,請按一下工具鏈內的 DevOps Insights 磚,並移至「品質儀表板」頁面。

若要評估管線執行中是否有任何失敗,請檢查管線的最終步驟,其具有管線評估器。

探索持續交付管線

拉取要求和連續整合管線在所有部署策略中都是常見的。 持續交付管線設計及實作變更是根據您先前在本指導教學中選取的部署策略。

您可以使用下列一種方式來啟動持續交付管線:

  • 手動觸發持續交付管線。
  • 在「庫存」儲存庫中的每一個 Merge 動作之後,自動觸發持續交付管線。 合併之後,您必須手動觸發連續交付管線執行。

已設定觸 Git Repos and Issue Tracking 發器以啟動自動持續交付管道,但該觸發器預設為停用狀態。 您可以在第一次升級變更之後啟用此觸發程式。

用於滾動部署的持續交付管道觸發器
用於滾動部署的持續交付管道中的觸發器

下一步

如果您要移除在 Kubernetes上執行的範例應用程式,則必須清除 Kubernetes 叢集:

  1. 移至 Kubernetes 叢集 首頁。

  2. 選取範例應用程式執行所在的叢集。

  3. 按一下 Kubernetes 儀表板

  4. 從範例應用程式執行所在的位置,選取 名稱空間

    Kubernetes命名空間
    Kubernetes命名空間

  5. 刪除所選名稱空間內列出的相關部署、服務及進入。

正在尋求協助嗎?

IBM Cloud 的 AI 助手,它由 IBM 的 watsonx 驅動,旨在幫助您瞭解在 IBM Cloud 工作,並利用可用產品和服務目錄來建立解決方案。 請參閱 取得 AI 助理的協助

如需其他支援選項,請參閱 取得 Continuous Delivery的協助及支援