

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# CI/CD 貼圖測試：您的管道是完全 CI/CD 嗎？
<a name="introduction"></a>

*Steven Guggenheimer 和 Ananya Koduri，Amazon Web Services (AWS)*

*2023 年 8 月* ([文件歷史記錄](doc-history.md))

您的管道是否自動化？ 這是一個簡單的問題，但許多組織過於簡單地接近答案。答案比*是*或*否*更複雜。

技術創新不斷發生，有時組織可能很難跟上進度。這個新事物是淡入淡出，還是下一個大事？ 我應該大修目前的實務，還是應該等待？ 通常，在很清楚某件事確實是下一個大事時，您可以發現自己正在趕上進度。*持續整合和持續交付* (CI/CD) 即將保留，但並非總是如此。許多人花了很長的時間來信服，有些人仍然需要更信服。

CI/CD 是將軟體版本程序的來源、建置、測試、預備和生產階段自動化的程序，通常描述為管道。如今，CI/CD 自動化的成本節省和速度已讓大多數組織相信其價值。但轉換到這個新方法並不容易。您需要確保您的員工有適當的訓練，您需要升級一些資源，然後您需要測試、測試、測試。有很多事要做。在大多數情況下，您想要逐步進行這些變更，以協助您的組織適應。

本文件的目的是定義擁有完整 CI/CD 程序的意義。它提供一個工具來評估您自己的程序，並為尚未存在的程序提供前進路徑。此向前路徑很少是隔夜轉換。這些程序很複雜，取決於許多因素，包括目前的員工技能集和目前的基礎設施需求。我們建議您排定優先順序並進行小型的增量變更。

## 目標
<a name="objectives"></a>

以下是實作本指南中建議的潛在好處：
+ **效率** – 完整的 CI/CD 部署程序可以降低複雜性、工作負載和花費數小時的除錯、執行手動程序和維護。如需詳細資訊，請參閱[持續交付的優點](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/benefits-of-continuous-delivery.html)。根據 [TechAhead 部落格文章](https://www.techaheadcorp.com/blog/how-ci-cd-save-app-development-time/)，CI/CD 程序的實作可能會導致預估節省 20% 的時間、精力和資源。
+ **成本降低** – 根據 [Forbes Insight 報告](https://www.forbes.com/sites/forbesinsights/2017/03/16/how-it-service-management-delivers-value-to-the-digital-enterprise/)，「四分之三的高階主管同意持續維護和管理所花費的時間、金錢和資源，而不是新的專案開發或新計畫，正在影響組織的整體競爭能力。」 開發週期越短，您的組織就越有可能達到遠大time-to-market目標，並在正確的時間掌握正確的機會。
+ **速度** – 一般而言，完全 CI/CD 管道可以在幾小時內將軟體變更發佈給客戶。特別是在快速故障隔離和小型修補程式推送的情況下，CI/CD 管道有助於改善平均復原時間 (MTTR)。如需詳細資訊，請參閱[降低 MTTR](https://docs.aws.amazon.com/whitepapers/latest/availability-and-beyond-improving-resilience/reducing-mttr.html)。
+ **安全** – 完整的 CI/CD 管道也會透過減少可能的攻擊進入點並降低人為錯誤的風險，來保護發行程序。全自動化 CI/CD 管道帶來的安全性優勢，有助於避免資料外洩、服務中斷等代價高昂的後果。
+ **減少流失** – 當開發人員可以花更多時間建立絕佳的功能，並減少在無止盡的維護和偵錯週期中模仿的時間時，他們會更滿意。對於組織，這表示取得和保留最佳人才更長一段時間。
+ **卓越品質程式碼** – 開發人員以小批次方式將程式碼發佈至共用儲存庫，使他們能夠執行[平行測試](https://www.browserstack.com/guide/what-is-parallel-testing) (BrowserStack 部落格文章）。與其獨立工作，他們不常與團隊共用其組建，而是協同合作以識別重大錯誤。這為開發人員提供支援，有助於防止錯誤程式碼進入生產環境。開發人員對等的支援有助於高品質版本並推動組織成長。
+ **維護** – 維護和更新是打造卓越產品的重要部分。不過，請勿在尖峰流量時間關閉系統。您可以使用 CI/CD 管道在低使用時間執行維護，將停機時間和效能影響降至最低。