Spinnaker - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Spinnaker

Sebbene Spinnaker non sia progettato esclusivamente come GitOps strumento, puoi configurarlo per implementare GitOps i principi, specialmente quando lo utilizzi per implementazioni native del cloud e Kubernetes.

GitOps supporto

Area funzionalità dello strumento

Configurazione dichiarativa

Spinnaker utilizza definizioni di pipeline dichiarative, che in genere vengono archiviate come file JSON o YAML. Queste definizioni di pipeline possono essere controllate dalla versione nei repository Git, in linea con le pratiche. GitOps

IaC

Spinnaker supporta la definizione dell'infrastruttura e delle configurazioni di implementazione come codice. Queste definizioni possono essere archiviate in archivi Git e possono fungere da unica fonte di verità.

Implementazioni multi-cloud

Spinnaker è progettato per funzionare su più provider cloud e cluster Kubernetes. Consente pratiche coerenti in ambienti diversi. GitOps

Pipeline come codice

Le pipeline Spinnaker possono essere definite come codice e archiviate nei repository Git. Ciò consente il controllo della versione e la revisione dei processi di distribuzione.

Implementazioni automatizzate

È possibile configurare Spinnaker per avviare automaticamente le distribuzioni in base alle modifiche nei repository Git. Lo strumento supporta pratiche di distribuzione continua che sono fondamentali per. GitOps

Infrastruttura immutabile

Spinnaker promuove l'uso di un'infrastruttura immutabile, che è un concetto chiave in. GitOps Incoraggia l'implementazione di nuove istanze invece di modificare le istanze esistenti.

Rollback e controllo delle versioni

Spinnaker offre solide funzionalità di rollback e un rapido ritorno ai precedenti buoni stati noti. Supporta il controllo delle versioni delle implementazioni, in linea con i principi di tracciabilità. GitOps

Flussi di lavoro di approvazione

Spinnaker include fasi di valutazione manuali nelle pipeline per supportare promozioni controllate tra ambienti. Ciò supporta GitOps le pratiche di separazione tra distribuzioni e versioni.

Canary e implementazioni blue/green

Spinnaker supporta strategie di implementazione avanzate in linea con le GitOps pratiche per rilasci sicuri e controllati.

Integrazione con i sistemi di controllo delle versioni

Spinnaker può integrarsi con vari provider Git per avviare pipeline basate sugli eventi del repository.

Integrazione con Kubernetes

Spinnaker fornisce supporto nativo per Kubernetes e supporta la gestione in stile delle risorse Kubernetes. GitOps

Gestione degli Artifact

Spinnaker supporta la gestione degli artefatti e il controllo delle versioni, fondamentali per il mantenimento di un flusso di lavoro. GitOps

Osservabilità e monitoraggio

Spinnaker offre l'integrazione con strumenti di monitoraggio per supportare l'aspetto dell'osservabilità di. GitOps

Audit trail

Spinnaker fornisce registri e cronologia di implementazione dettagliati, che supportano il principio di verificabilità di. GitOps

Controllo degli accessi basato sui ruoli (RBAC)

Questo strumento implementa RBAC per un controllo dettagliato su chi può eseguire quali azioni, in linea con le pratiche di sicurezza. GitOps

Creazione di modelli e parametrizzazione

Spinnaker supporta la creazione di modelli nelle definizioni delle pipeline per consentire implementazioni riutilizzabili e parametrizzate.

Promozione dell'ambiente

Spinnaker facilita la promozione delle applicazioni tra ambienti (ad esempio, dalla messa in scena alla produzione) in modo controllato.

Integrazione con strumenti CI

Spinnaker può integrarsi con vari strumenti di integrazione continua (CI) per fornire una CI/CD pipeline completa che rispetti i principi. GitOps

Fasi ed estensioni personalizzate

Questo strumento supporta fasi ed estensioni personalizzate, in modo che i team possano implementare GitOps flussi di lavoro personalizzati in base alle loro esigenze.

Gestione centralizzata

Spinnaker fornisce una piattaforma centralizzata per la gestione delle implementazioni in più ambienti e provider di cloud.

Sebbene Spinnaker non sia commercializzato principalmente come GitOps strumento, la sua flessibilità e il robusto set di funzionalità lo rendono in grado di implementare flussi di GitOps lavoro, specialmente in ambienti complessi e multi-cloud. La differenza fondamentale tra Spinnaker e GitOps strumenti dedicati come Argo CD o Flux è che Spinnaker offre una piattaforma di distribuzione continua più completa con strategie di implementazione avanzate e supporto multi-cloud.

La forza di Spinnaker risiede nella sua capacità di gestire scenari di implementazione complessi tra vari provider di cloud e nel supporto per strategie di implementazione avanzate. Quando Spinnaker è configurato correttamente, può implementare i principi in modo efficace. GitOps Questo lo rende uno strumento potente per le organizzazioni che desiderano adottare GitOps pratiche in ambienti diversi e complessi.

Per ulteriori informazioni, consulta la documentazione di Spinnaker.

Architettura

Il diagramma seguente illustra un flusso di lavoro GitOps basato su CD che utilizza Spinnaker e Jenkins X. Per informazioni dettagliate, consulta la documentazione di Spinnaker.

Architettura e flusso di lavoro Spinnaker attivi. AWS

dove:

  • Fase 1: Code commit. Gli sviluppatori trasferiscono le modifiche al codice dell'applicazione in un repository Git. Queste modifiche potrebbero includere aggiornamenti all'applicazione stessa, a Dockerfiles o ai manifest di Kubernetes.

  • Fase 2: build e creazione di immagini in Jenkins. Jenkins viene attivato automaticamente dal repository Git tramite un webhook o un polling. Jenkins crea l'applicazione, crea un'immagine Docker e invia l'immagine creata a un registro Docker configurato (come Amazon ECR o Docker Hub).

  • Fase 3: monitoraggio delle immagini Spinnaker e attivazione della pipeline. Spinnaker monitora continuamente il registro Docker alla ricerca di nuove immagini. Quando viene rilevata una nuova versione dell'immagine, Spinnaker attiva automaticamente una pipeline per avviare il processo di distribuzione.

  • Fase 4: Distribuzione nei namespace di destinazione. Spinnaker distribuisce la nuova immagine Docker su Amazon EKS. In base alle configurazioni della pipeline, l'immagine viene distribuita sui namespace di destinazione nel cluster. Spinnaker garantisce che venga implementata la versione più recente dell'applicazione aderendo a strategie di distribuzione definite come le implementazioni o canary. blue/green