領先一步
VMware 提供培訓和認證,以加速您的進展。
了解更多Spring Cloud Pipelines 是一個 GitHub 專案,旨在解決以下問題
建立通用部署管線
推廣良好的測試和部署實務
縮短將功能部署到生產環境所需的時間。
首次提交發生於 2016 年 8 月 31 日。從那時起,我們收到了社群關於建議的部署管線及其具體視覺化的大量回饋。在這兩年中,我們設法建立的最重要功能包括
具備主觀判斷的部署管線設定
管線腳本,用於驗證專案的向後相容性並允許零停機部署
支援 PHP、.NET、NodeJS 和 JVM (Maven & Gradle) 專案
Cloud Foundry 的部署選項
Kubernetes 的部署選項
透過 Ansible 的部署選項
在 Jenkins 中使用 Jenkins Job DSL 進行管線視覺化
在 Jenkins 中使用 Jenkinsfile 進行管線視覺化
在 Concourse 中進行管線視覺化
我們想宣布 Spring Cloud Pipelines 的下一個 1.0.0.M9 版本,這也將是其目前形式的最後一個版本。
由於我是 Spring Cloud 團隊的成員,我們已決定將其置於 Spring Cloud 的保護之下。除此之外,該專案與 Spring Cloud 無關,更不用說一般的 Spring 了。
這就是為什麼我們決定將專案拆分成多個部分、重新命名並將其放入獨立的 GitHub 組織的原因。
Spring Cloud Pipelines 有了一個新家和一個新名稱。這些專案現在位於 GitHub 上的 Cloud Pipelines 組織下。因此,該專案被拆分為以下幾個部分
Scripts:包含部署管線的核心邏輯。您可以將此儲存庫稱為 recipes(配方)。每個配方都包含部署管線的一個步驟。文件在此處:這裡。
Project Crawler:從儲存庫管理服務提取資料的抽象層。
Pipeline Base:CI 伺服器使用的 Docker 基礎映像檔。
在將專案遷移到新組織後,我們已決定將它們標記為功能完整。我們已經在 Spinnaker 上工作了一段時間,並計劃投資於啟用 Cloud Pipelines 配方,以便在 Spinnaker 上執行回滾測試和合約測試。對於其他重疊領域(如部署策略),我們希望依賴 Spinnaker 的抽象化。當然,我們將促進圍繞專案的任何討論以及與問題、提取請求和發布相關的雜務,但我們可以安全地聲明,該專案將完全由社群驅動和維護。
如果您有興趣將您的專案從 Spring Cloud Pipelines 遷移到 Cloud Pipelines,您應該查看遷移指南
Spinnaker 是一個開放原始碼多雲持續交付平台,最初由 Netflix 創立,但現在有來自 Google、Amazon、Pivotal 和許多其他公司的更廣泛的貢獻者社群參與。Spring 團隊和 Pivotal Cloud R&D 的協作努力促成了 Spinnaker 中的 Cloud Foundry 支援。
Spinnaker 讓我們可以存取更廣泛的受支援雲端供應商,而無需重新發明這些互動。
迄今為止在 Cloud Pipelines 中關於零停機部署和回滾測試的工作揭示了像 Spinnaker 這樣的持續交付平台的一個關鍵價值,即它單獨維護已部署環境中資產的庫存。
在 Cloud Pipelines 中,目前未儲存生產系統狀態。為了減輕這個問題,我們使用 Git 標籤來儲存狀態。然而,當發生手動部署或回滾時,這很容易被破壞。此外,生產系統狀態可能跨越多個版本(跨雲端供應商或區域),並且通常無法簡化為可以儲存在標籤中的單一值。例如,執行回滾測試的 Spinnaker 管線可以自由使用 Spinnaker 對系統狀態的了解,以便將回滾測試置於目標區域中生產版本的上下文中,彼此獨立。
Cloud Pipelines 中提供的部署選項有限。Spinnaker 將藍綠部署、滾動推送、零停機和自動 Canary 分析部署功能推廣到一系列受支援的雲端供應商。
更具體地說,請考慮藍綠部署。Spinnaker 支援藍綠部署,同時維護任意數量的先前版本伺服器群組。從以下範例中的應用程式目前版本開始,您只需一個動作即可回滾到距離最新版本幾個版本的應用程式版本。在任何時候,我們都可以選擇銷毀 V022,
實際上使其無法回滾。這種情況可能會在部署活動之外發生(例如為了釋放容量),使得無狀態系統更難以應對變更。
我們歡迎您以各種形式提供意見。如果您對 Spinnaker 有疑問,請在 Stack Overflow 上提問並使用 #spinnaker 標籤。如果關於 Cloud Pipelines,請在 GitHub 上提問。如果您想參與程式碼,我們非常歡迎提取請求。如果您發現問題,請在 Github 上提交 issue。