自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Spinnaker 與 Argo CD:持續(xù)交付的最佳工具

開發(fā) 開發(fā)工具
Spinnaker 和 Argo CD 是用于轉(zhuǎn)換軟件交付流程的最受歡迎的工具。讓我們更深入地研究 Spinnaker 和 Argo CD 何時有意義。
Spinnaker 和 Argo CD 是用于轉(zhuǎn)換軟件交付流程的最受歡迎的工具。讓我們更深入地研究 Spinnaker 和 Argo CD 何時有意義。

Argo CD介紹

采用容器已成為企業(yè)快速推出新應(yīng)用程序更改、高效部署和安全運行應(yīng)用程序的常用策略。

如今,為實現(xiàn)這些目標,許多企業(yè)正在采用持續(xù)交付 (CD),以便快速、頻繁且安全地將更改部署到生產(chǎn)中。

許多 CD 工具用于將軟件交付生產(chǎn)。市場上一些最常見的工具是:

  • 大三角帆
  • 阿爾戈光盤
  • 特克頓CD
  • GitLab
  • Azure 開發(fā)運營

Spinnaker 和 Argo CD 是轉(zhuǎn)換軟件交付流程的最佳工具,因此我們經(jīng)常被要求描述它們之間的差異并評估哪個更好。簡短的回答是,這取決于每個客戶的具體情況和要求。但這不是一個令人滿意的答案,所以讓我們更深入地研究 Spinnaker 和 Argo CD 何時有意義。

Spinnaker 和 Argo CD 的快速介紹

Spinnaker

Spinnaker 是一個開源的多云 CD 平臺,用于高速和自信地發(fā)布軟件變更。

Spinnaker 提供了一個強大而靈活的管道管理系統(tǒng),許多財富 500 強公司使用該系統(tǒng)每年部署數(shù)百萬次變更。

請參考 Spinnaker 用戶界面:

ArgoCD

ArgoCD 是一個用于 Kubernetes 應(yīng)用程序的聲明式 CD 工具,它使用 GitOps 風格來管理集群資源。Argo CD 監(jiān)控 Git 存儲庫中定義的應(yīng)用程序配置,并將其與集群中的實時狀態(tài)進行比較。當開發(fā)人員更改 Git 中的應(yīng)用程序定義時,Argo CD 會檢測并通知管理員有關(guān)不同步的狀態(tài)。如果管理員批準更改,ArgoCD 會使用新定義的配置在 Kubernetes 集群中創(chuàng)建資源。

參考 Argo CD 用戶界面:

Spinnaker 與 Argo CD 的比較

我們從四個維度對 Spinnaker 和 Argo CD 進行了評估:安裝和實施、部署、復(fù)雜的工作流程和安全性。

表格比較:Spinnaker 與 Argo CD

安裝與實施

安裝

任何企業(yè)可視化的首要參數(shù)之一是 Day1 操作,其中包括先決條件、安裝、配置和體系結(jié)構(gòu)。

Argo CD 非常輕巧,可以使用清單或 HELM 圖表(具有 2GB 內(nèi)存和 2 個 CPU)安裝在 minikube 中,而 Spinnaker 功能豐富,因此非常笨重。

安裝 Halyard(Spinnaker 的生命周期管理器)至少需要 12GB 的內(nèi)存(盡管對于小型設(shè)置它可以在 1GB 中運行)。此外,Spinnaker 需要一個具有四個內(nèi)核和 16GB RAM 的 Kubernetes 集群。

從安裝的角度來看,Spinnaker 和 Argo CD 都有詳細的文檔記錄,只需幾條命令即可在幾分鐘內(nèi)輕松安裝。兩種 CD 工具都提供容錯、高可用性架構(gòu),以最大限度地減少軟件部署期間的服務(wù)中斷。

學(xué)習(xí)曲線和企業(yè)范圍內(nèi)的采用

肯定有助于企業(yè)擴大采用 CD 解決方案的另一個因素是學(xué)習(xí)曲線。

由于 Spinnaker 功能豐富,具有許多功能和組件,DevOps 團隊必須學(xué)習(xí)如何配置管道或?qū)⑵洳渴鸬蕉嘣骗h(huán)境等。許多 Spinnaker 資源、文檔、視頻和企業(yè) Spinnaker 插件可用于DevOps 團隊縮短他們的學(xué)習(xí)曲線,并使他們能夠在生產(chǎn)中逐步采用它。

相比之下,Argo 是一種僅限于 Kubernetes 應(yīng)用程序部署的輕量級 CD 解決方案。如果您需要 Kubernetes 的 CD 解決方案,您可以使用 Argo CD 快速設(shè)置。但是,在生產(chǎn)部署中,Argo CD 可能無法滿足 DevSecOps 經(jīng)理為生產(chǎn)部署設(shè)置的所有安全性和合規(guī)性要求。

需要集中式和生產(chǎn)就緒 CD 解決方案來處理各種應(yīng)用程序類型和部署目標的組織應(yīng)該尋找提供生產(chǎn)就緒 Spinnaker 和生產(chǎn)就緒 Argo CD 解決方案的供應(yīng)商,這些解決方案是安全的、可擴展的、可擴展的、強化的和 Fedramp-合規(guī),根據(jù)您組織的要求。

部署

Argo CD 遵循 GitOps 風格的部署,即,它將 Git 視為真實來源,并監(jiān)控存儲庫中的清單文件中的任何更改,以便在 Kubernetes 中部署應(yīng)用程序。清單可以在文本文件或 JSON 文件、Kustomize 應(yīng)用程序、HELM 圖表、ksonnet 應(yīng)用程序或 jsonnet 文件中指定。

Argo CD 旨在僅與 Kubernetes 應(yīng)用程序和服務(wù)一起使用。Argo CD 跟蹤對分支或標簽的更新,或者在 Git 提交時固定到特定版本的清單,并將更改部署到 Kubernetes 中。來自 Git 存儲庫的 Kubernetes 清單應(yīng)用于您的集群配置,Argo 將努力確保您的存儲庫和集群始終保持同步。

如果目標環(huán)境因任何原因發(fā)生變化,Argo CD 也可以重新發(fā)布 Git 狀態(tài)到目標環(huán)境。

Argo CD 提供了一個 UI 來展示更改的部署狀態(tài)(并且取決于與 Git 更改的同步)。請參考下圖:

Spinnaker 不支持 GitOps 交付方式;但是,還有一種替代方法可以使用供應(yīng)商增強的解決方案來實現(xiàn)它。Spinnaker 為應(yīng)用程序交付提供聲明式管道。部署到公共云或 Kubernetes 的 DevOps 工程師選擇 Spinnaker 管道。通過使用管道,Spinnaker 可以將應(yīng)用程序部署到任何本地虛擬機 (VM) 或云數(shù)據(jù)中心,如 AWS、GCP、Azure 和 Kubernetes。Spinnaker 管道的最佳部分是您可以為順序發(fā)布過程配置階段。

請參閱下面的屏幕截圖,其中執(zhí)行了 Spinnaker 管道(用于 AWS 部署):

想要將 GitOps 風格的交付模型與 Spinnaker 結(jié)合使用的開發(fā)人員可以對管道進行 hack。他們需要在 Git 中配置觸發(fā)器以在對 Git 中任何代碼的任何提交上執(zhí)行管道。這種實現(xiàn) GitOps 的 hack 稱為托管交付。

可以在文本文件或 JSON 文件、Kustomize 應(yīng)用程序、HELM 圖表或 Spring Spel 模板中指定清單文件。對 Git 中清單文件的任何更改都會觸發(fā) Spinnaker 管道進行部署。應(yīng)用程序部署跟蹤分支或標簽的更新,或者在 Git 提交時固定到特定版本的清單??梢哉{(diào)用 Spinnaker API 來創(chuàng)建和管理基礎(chǔ)設(shè)施(安全組、負載平衡器、防火墻)和流程部署。

請參考下面的屏幕截圖,其中根據(jù) Git 更改調(diào)用 Spinnaker 管道:

對于大型組織,Spinnaker 通過在 Spinnaker 管道中配置一系列階段來構(gòu)建端到端的交付工作流程非常方便。這些階段的Webhooks可以自動執(zhí)行一個發(fā)布過程的許多活動,例如Jenkins構(gòu)建作業(yè)、部署到測試環(huán)境、觸發(fā)自動化測試用例或部署到登臺和生產(chǎn)環(huán)境等。手動判斷和驗證門也可以配置為同一管道的一部分,以確保自動化和無風險的發(fā)布過程。下面,圖 A 表示使用 Spinnaker 的企業(yè)軟件交付流程的編排,圖 B 表示一個示例 Spinnaker 管道,它自動執(zhí)行各個交付階段——構(gòu)建、測試、部署和生產(chǎn):

圖A:

圖B:

為了安全部署,Spinnaker 和 Argo (Argo Rollouts) 都提供了內(nèi)置的部署策略,例如 highlander、藍綠、滾動更新和金絲雀。

申請變更

Spinnaker 和 Argo CD 支持本地和托管 Kubernetes。這兩種工具都支持將應(yīng)用程序部署到托管 Kubernetes (EKS/GKE/AKS) 中。Argo CD 直接根據(jù)配置更改進行部署,而 Spinnaker 使用交付管道進行部署。

如果您有一些應(yīng)用程序托管在本地或托管的 Kubernetes 集群中,并且仍在進行一些云轉(zhuǎn)換,那么 Argo CD 可能非常適合您。但是,如果您想構(gòu)建一個無縫的工作流來自動化交付流程,包括測試集成、批準門(手動或自動)、集成圖像構(gòu)建以及對混合或多云環(huán)境部署的可見性,那么選擇 Spinnaker 進行持續(xù)交付.

通過復(fù)雜的工作流程在企業(yè)范圍內(nèi)擴展

基于虛擬機的部署

每個企業(yè)都將應(yīng)用程序部署到 VM——通過 GCP、AWS 或不同的云部署到云,或者部署到本地數(shù)據(jù)中心 VM。標準做法是為應(yīng)用程序所需的環(huán)境創(chuàng)建規(guī)范——操作系統(tǒng)版本、二進制文件、存儲、網(wǎng)絡(luò)、庫、應(yīng)用程序、壓縮文件等,以創(chuàng)建 VM。這也稱為 VM bakery,基礎(chǔ)設(shè)施團隊在這里制作整體環(huán)境的快照并將其保存在類似于 AMI 存儲的東西中。一旦圖像準備就緒,就可以創(chuàng)建多個圖像——甚至多達數(shù)萬個圖像——以滿足應(yīng)用程序的要求。該過程也稱為不可變基礎(chǔ)架構(gòu),用于避免配置漂移。

Spinnaker 使用 HELM 圖表來烘焙 Kubernetes 清單文件。同樣,它使用打包程序模板(在引擎蓋下)來烘焙 VM 映像。交付管道完成后,Spinnaker 可以在目標環(huán)境(從云到本地 VM,再到裸機服務(wù)器)中配置這些 VM(連同負載均衡器、防火墻等)。這有助于基礎(chǔ)架構(gòu)團隊利用 Spinnaker 來編排基于 VM 的部署。這種將更新部署到 Kubernetes 服務(wù)和基于 VM 的應(yīng)用程序的能力是許多組織選擇在 Spinnaker 上進行軟件部署標準化的重要原因之一。

此外,Spinnaker 提供單一管理平臺,您可以在其中查看和控制您的資源。開發(fā)和運維團隊無需登錄不同的 UI 或公有云即可了解資源狀態(tài)。

Argo CD 目前不包括供應(yīng)基礎(chǔ)設(shè)施。但這里的技巧是使用像 Crossplane 這樣的外部開源軟件來組裝和管理任何公共云的基礎(chǔ)設(shè)施。

穩(wěn)定性和性能

在處理多個應(yīng)用程序部署和在企業(yè)范圍內(nèi)擴展 CD 解決方案時,Spinnaker 和 Argo CD 存在一些性能問題。

例如,根據(jù)路線圖部分的 Argo 文檔,Argo 在處理超過 1,000 個 Kubernetes 應(yīng)用程序時變得非常慢。此外,要采用 100 個以上的 Kubernetes 集群,您必須增加 Argo CD 控制器的副本數(shù)量(即水平擴展)并配置 Argo 以進行自動分片(以在所有 Argo CD 控制器之間分配工作負載)。Argo CD 在配置為在單個存儲庫中處理 50 多個應(yīng)用程序時也存在問題——具體來說,它可能無法正確生成清單。

使 Argo CD 軟件適合生產(chǎn)——例如使其高度可用——是很棘手的。Argo 為 Prometheus 發(fā)布指標(包括計數(shù)器和儀表類型)以衡量 Argo CD 系統(tǒng)性能問題。但在開發(fā) Argo CD 對其他監(jiān)控系統(tǒng)(如 Datadog、NewRelic、Dynatrace 等)的支持時,挑戰(zhàn)就出現(xiàn)了。

通知

反饋和通知是持續(xù)集成/持續(xù)交付 (CI/CD) 流程的重要組成部分。任何 CD 工具都需要廣泛涵蓋用于在 DevOps 環(huán)境中進行通信的各種工具。Spinnaker 和 Argo CD 都提供與第三方協(xié)作工具的集成。

Argo CD 通過電子郵件、GitHub、Slack、Mattermost、OpsGenie、Telegram 和 Microsoft Teams 提供通知。要啟用通知,您必須安裝 Argo Notification。您可以將 Argo Notification 與其他產(chǎn)品(例如 Argo Rollout)一起使用,以獲取有關(guān)部署狀態(tài)的實時信息。

Spinnaker 支持通過電子郵件發(fā)送通知,并提供與許多協(xié)作和服務(wù)管理工具的集成,例如 Slack、ServiceNow、JIRA、Twilio、PagerDuty、Microsoft Teams 等。

批準

Argo CD 使管理員能夠在 Git 中的更改被識別后立即批準部署。軟件交付各個階段的手動判斷步驟需要在 Argo CD 中進行大量配置和腳本編寫。

類似地,可以在 Spinnaker 流水線中配置手動判斷階段。盡管如此,它仍然需要付出大量的努力來建立高級判斷,例如基于各種 CI/CD 數(shù)據(jù)的自動批準或新版本的風險。

供應(yīng)商支持的解決方案匯集了 CD 軟件的最佳功能,使管理員能夠在整個過程的任何階段快速批準更新升級,通常是在集成測試、暫存和生產(chǎn)之前。一些解決方案更進一步,允許項目或發(fā)布經(jīng)理通過提供有關(guān)構(gòu)建、測試、票證狀態(tài)等的 360 度信息來做出明智的批準。發(fā)布經(jīng)理可以做出快速和明智的決策來推進管道。請參考下圖。

以這種方式完成的部署更安全,因為可以更清楚地了解所涉及的各個階段。數(shù)據(jù)驅(qū)動的批準還使公司能夠更有信心地部署到生產(chǎn)中。

企業(yè)支持

Spinnaker 和 Argo CD 從開源社區(qū)獲得升級和補丁修復(fù)的支持。一些供應(yīng)商提供企業(yè)支持以緩解漏洞和合規(guī)性問題。通過選擇為這些開源社區(qū)做出貢獻的供應(yīng)商,您可以確保獲得所需的專家?guī)椭?/p>

如需 Argo CD 支持,請訪問此處,或在此處找到Argo slack 頻道。如需 Spinnaker 支持,請加入Spinnaker 頻道。

如果您是愛好者,可以繼續(xù)關(guān)注并參加 ArgoCon 和 Spinnaker 峰會,結(jié)識從事 CI/CD 項目的志同道合的 DevOps 人員。

安全

企業(yè)正在采用新的 DevSecOps 文化來加強 CI/CD 管道中的安全性。這種左移心態(tài)要求組織考慮安全團隊的要求,例如適當?shù)纳矸蒡炞C、授權(quán)、安全連接等等。Spinnaker 和 Argo 都提供身份驗證,支持 LDAP 和 SAML 協(xié)議,并通過 RBAC 進行授權(quán)。

安全

Argo CD 經(jīng)過了安全審查和滲透測試,并消除了產(chǎn)品本身的所有漏洞。

Argo CD 通過 JSON Web 令牌提供身份驗證,通過 RBAC 策略提供授權(quán)。不同服務(wù)(argoCD-server、argocd-repo-server、
argoCD-application-controller)之間的通信通過 TLS 進行保護。Argo CD 還通過將外部集群的憑據(jù)存儲在 Kubernetes 秘密中來提供秘密管理。Argo CD 對如何管理秘密沒有意見。

Spinnaker 還為企業(yè)提供高安全標準,以應(yīng)對內(nèi)部或外部威脅。它支持各種協(xié)議,如 RBAC、LDAP、OAuth 和 MFA,以進行適當?shù)氖跈?quán)和身份驗證。由于支持 mTLS 和基于 X.509 證書的通信,Spinnaker 被認為是最安全的 CD 工具之一。此外,Spinnaker 直接不鼓勵您以純文本形式存儲秘密、令牌、密碼和類似的敏感信息,而是提供與 Git、S3 和 Vault 的集成來保存此類信息。

政策與合規(guī)

開源 Spinnaker 通過與 Open Policy Agent (OPA) 集成來促進自動策略執(zhí)行,OPA 是一種指定策略的標準。政策經(jīng)理現(xiàn)在可以使用聲明性語言輕松定義政策,并使用管道在部署或發(fā)布過程中實施規(guī)則。這有助于組織確保 100% 遵守 HIPAA、GDPR、SOX 和內(nèi)部最佳實踐等行業(yè)標準。

審計

Spinnaker 和 Argo CD 都提供審計功能。

要審計 Argo CD 中的部署活動,您需要連接外部工具,如Event Exporter、Event Router或ElasticSearch。要解決問題,DevOps 團隊需要配置解決方案以獲取審計日志并存儲所有事件日志。

Spinnaker 有一種機制來存儲有關(guān)管道運行和部署的日志信息。借助 Spinnaker,審計人員可以快速調(diào)查有關(guān)部署的所有活動。

持續(xù)驗證

在 DevOps 中成熟的組織經(jīng)常尋求通過適當評估每次更改的質(zhì)量和性能來最大程度地降低生產(chǎn)中新版本的風險。這稱為持續(xù)驗證。Spinnaker 和 Argo CD 都沒有提供任何開箱即用的功能來從外部來源獲取日志或指標數(shù)據(jù),或者為您提供可以幫助您做出部署決定的信息。但是,一些供應(yīng)商增強的解決方案可以在不同的交付階段驗證新版本。

最終總結(jié)

我們基于企業(yè)關(guān)心的四個廣泛維度對 Spinnaker 和 Argo CD 進行了評估:

  • 安裝與實施
  • 部署
  • 維護和可擴展性
  • 安全

在某些方面,例如實現(xiàn),Argo CD 可以比 Spinnaker 更快。在其他方面,例如部署能力,只有 Spinnaker 能夠為 DevOps 和安全管理者提供全面的能力。

Spinnaker 和 Argo CD 是為不同的目的而設(shè)計的。Argo 主要用于僅部署到 Kubernetes 的 DevOps 團隊。Spinnaker 被設(shè)計為一個企業(yè)平臺,可以處理對所有類型目標的部署,并簡化和自動化損壞的軟件發(fā)布流程。


責任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2021-07-04 07:24:48

GitOps 工具 Argo CD

2021-04-23 08:00:00

Kubernetes容器工具

2022-08-16 22:39:01

Argo CDKubernetes

2021-03-31 09:00:00

管道集成工具

2021-07-09 06:40:59

TektonArgo CD GitOps

2021-06-18 09:00:00

云計算開發(fā)存儲庫

2017-02-27 18:50:42

運維持續(xù)交付

2023-02-20 08:02:38

智能自動化交付

2021-07-23 10:17:17

網(wǎng)絡(luò)攻擊存儲供應(yīng)鏈

2023-01-16 08:00:00

2018-06-20 09:00:00

DevOps持續(xù)交付測試工具

2022-04-20 09:00:00

軟件開發(fā)自動化測試工具

2025-01-07 00:00:15

Jenkins集成服務(wù)器

2017-02-27 18:28:45

持續(xù)交付部署

2022-02-17 11:52:05

?Argo CD漏洞Kubernetes

2023-07-27 08:03:04

2016-08-09 09:12:55

云計算

2023-10-19 07:33:41

KubeVelaapiserver

2017-12-24 21:29:18

OpenShift持續(xù)交付集群

2021-12-08 12:20:55

KubernetesGitOpsLinux
點贊
收藏

51CTO技術(shù)棧公眾號