了解DevSecOps管道
參考持續整合與持續部署工具鏈中提供的各類管道,皆基於 Continuous Delivery 對 Tekton 管道的支援。 若要進一步瞭解 Tekton Pipelines,請參閱 使用 Tekton 管線。
您不需要成為 Tekton 專家即可使用參照管線。 參照管線是預先定義的基本結構,其中包含建置、自動化測試及部署等步驟之自訂 Script 的位置保留元。 使用者可以為自己的管線宣告其自訂 Script,並為特定管線的各種環境內容設定值。
管線狀態類型
請務必瞭解參照管線在特定點的錯誤或失敗狀況。 在概念上,在合規管線中執行作業會產生兩種不同類型的狀態:
- 相符性狀態:
some檢查或一組檢查的通過或失敗狀態。 - 管線狀態: 作業執行本身的成功或失敗狀態。
如果測試、掃描或檢查失敗,則不會導致管線本身失敗或停止; 執行測試的作業會標示為綠色。
從相符性觀點來看,單元測試的結果不會影響部署。 您可以部署具有失敗檢查的構件,但程序會保留該活動的證明。 發生中斷時,相符性流程不會阻止您釋放修正程式。 例如,針對發現測試失敗的單元測試作業所執行的綠色執行表示 The task ran successfully and found the following issues。
如果作業失敗,且狀態為紅色,則會發生此狀況,因為管線無法或不應該繼續。 失敗的條件範例包括:
- 作業或管線中的錯誤。
- 發生一些事,表示繼續執行管線沒有意義。
例如,如果構件建置在持續整合中失敗,它會破壞持續整合處理程序本身的目的。
為了讓最終管線狀態與相符性結果保持同步,管線尾端的作業會檢查相符性結果,並將管線執行狀態設為 red 或 green。
取回要求管線
取回要求管線會對所指定應用程式 (應用程式) 儲存庫的取回要求執行預設相符性狀態檢查。 這些狀態檢查可能會阻止您將取回要求合併至預設作用中分支 (通常是 master),如果這些檢查不成功的話。 針對預設作用中分支開啟或更新取回要求,以觸發取回要求管線執行。 使用者可以在自訂階段中執行他們自己的管線和測試設定。 如需取回要求管線的相關資訊,請參閱 取回要求管線。
持續整合管線
連續整合管線會從應用程式 (應用程式) 儲存庫 (儲存庫) 建置可部署的構件。 在建置構件之前,管線會以處理取回要求的相同方式來檢查是否掃描及測試程式碼。 建置構件也會掃描是否有漏洞,並在管線中簽署,然後才在 庫存 中標示為已備妥可供發行及部署。 與拉取要求管線不同,持續整合管線會在建置的每一個階段收集證明及結果構件,例如測試、掃描及簽署。 此資料會與建置的構件產生關聯,並且可以透過部署程序和變更管理來追蹤。 如需 Continuous Integration 管線的相關資訊,請參閱 Continuous Integration 管線。
連續部署管線
連續部署管線會產生所有證明及變更要求摘要內容。 管線會將建置構件部署至特定環境 (例如暫置或正式作業),然後收集、建立並將所有現有日誌檔、證明及構件上傳至證明櫃。 如需連續部署管線的相關資訊,請參閱 連續部署管線。
持續合規管線
持續合規管線會定期掃描已部署的構件及其來源儲存庫,以找出較新的漏洞,因為構件已部署在正式作業中。 管道也有助於自動追蹤到期日的偏差,並提供應用程式感知。 如需詳細資訊,請參閱 持續合規管道。
庫存工作流程
請參閱 證明。
請參閱 庫存。
持續整合寫入庫存
庫存包含數個分支,包括預設分支。 視設定及使用情形而定,這些分支可以代表部署階段、環境或區域,或這些選項的組合。
從連續整合建置移入預設分支。 目標中的前次確定 (例如 staging) 具有一個標籤,顯示它是前次完成的部署。
若將庫存的預設分支切換至其他分支,您必須將先前預設分支的提交重新定位至新預設分支,以使 Git 的提交歷史保持線性。
促銷
若要升級至目標分支,請建立取回要求。 取回要求內容會移入變更要求欄位。 在檢閱之後,您可以合併促銷取回要求。
差異和部署
合併促銷活動取回要求之後,部署管線即可啟動。 部署差異是前次完成部署與現行部署的內容之間的差異。 部署差異會列出正在部署的庫存項目。
結束
當部署完成時,會向前移動 latest 標籤。
在開發模式觸發程式期間,將不會進階標籤,開發模式觸發程式的目的僅用於測試 CD 管線,不建議在正式作業環境中使用。
升級至進一步環境
從任何分支到另一個分支都可以進行升級和部署。
庫存趨勢
現行已部署狀態會保留要部署至環境的內容。 目標分支中每一個提升的確定都包含相關管線執行 ID 及變更要求 ID 作為標籤。 部分確定可以有多個標籤,例如當重新執行失敗的部署時。 「庫存」會儲存每一條資訊,以重播部署。
單一目標-多個區域設定
單一目標-多區域設定是在此模型上的反覆運算,其中會建立單一目標環境的多個 latest 標籤。 此模型可讓多個連續管線在不同類型使用案例的相同目標上運作。
例如,您可以針對正式作業目標環境和庫存分支中的多個區域 (例如 us-south 和 eu-de) 使用相同的目標環境。
若要依連續部署管線指定部署地區,請使用 region 參數。 如需此參數的相關資訊,請參閱 連續部署管線參數。
團隊不需要為每一個地區設定不同的分支 (例如 us-south-prod 和 eu-de-prod),並以冗餘方式執行促銷。 相反地,請針對相同的庫存分支指定這些其他目標,然後使用它們作為 Git 標籤。
在此設定中,正式作業分支在相同分支 (例如 us-south_prod_latest 和 eu-de_prod_latest) 上具有多個 latest 標籤,且負責每一個地區的每一個連續部署管線都可以使用這些標籤進行部署。
實務範例
最終可以隨處部署的一組變更,可能會先釋放至單一區域。 然後,您可以使用以這些地區為目標的連續部署管線,將這組變更逐漸部署至其他地區。