Jenkins X - 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à.

Jenkins X

Jenkins X è una CI/CD piattaforma open source nativa per il cloud che GitOps implementa i principi per gli ambienti Kubernetes. Sebbene Jenkins X non sia esclusivamente uno GitOps strumento come Argo CD o Flux, incorpora pratiche nei suoi flussi di lavoro. GitOps

GitOps supporto

Area funzionalità dello strumento

Flusso di lavoro incentrato su Git

Jenkins X utilizza i repository Git come fonte primaria di verità sia per il codice dell'applicazione che per la configurazione. Tutte le modifiche alle applicazioni e all'infrastruttura vengono apportate tramite Git.

Ambiente come codice (eAC)

Gli ambienti (come lo staging e la produzione) sono definiti come codice nei repository Git. Ciò consente il controllo della versione e la revisione delle configurazioni dell'ambiente.

Pipeline automatizzate CI/CD

Jenkins X imposta automaticamente le CI/CD pipeline per i progetti. Queste pipeline sono definite come codice (pipeline come codice) e archiviate in Git.

Nativa per Kubernetes

Jenkins X è progettato specificamente per gli ambienti Kubernetes. Utilizza risorse Kubernetes e definizioni di risorse personalizzate (). CRDs

Ambienti di anteprima

Jenkins X crea automaticamente ambienti temporanei per le pull request. Consente una facile revisione e verifica delle modifiche prima delle fusioni.

Promozione tra ambienti

Jenkins X utilizza un GitOps approccio per promuovere le applicazioni tra ambienti (ad esempio, dalla messa in scena alla produzione). Le promozioni vengono gestite utilizzando le pull request per garantire processi di revisione e approvazione adeguati.

Gestione dei grafici di Helm

Jenkins X utilizza i grafici Helm per impacchettare e distribuire applicazioni. I grafici sono controllati dalla versione nei repository Git.

Controllo automatico delle versioni

Jenkins X gestisce automaticamente il controllo delle versioni di applicazioni e versioni. Utilizza il controllo delle versioni semantiche e genera note di rilascio.

ChatOps integrazione

Jenkins X supporta ChatOps le operazioni più comuni. Ciò è in linea con i GitOps principi di automazione e collaborazione.

Estensibilità

Questo strumento fornisce un sistema di plugin per estendere le funzionalità. Consente l'integrazione con vari strumenti nativi del cloud.

Infrastructure as code (IaC)

Jenkins X supporta Terraform e altri strumenti IAC per definire e gestire l'infrastruttura. CloudFormation AWS Cloud Development Kit (AWS CDK) Le definizioni dell'infrastruttura sono controllate dalla versione insieme al codice dell'applicazione.

Rollback automatizzati

Jenkins X supporta i rollback automatici se vengono rilevati problemi dopo la distribuzione.

Gestione dei segreti

Lo strumento si integra con soluzioni esterne di gestione dei segreti per gestire le informazioni sensibili in modo sicuro.

Osservabilità

Jenkins X fornisce l'integrazione con strumenti di monitoraggio e registrazione per l'osservabilità.

Supporto multi-cloud

Jenkins X è progettato per funzionare con diversi provider di cloud e ambienti locali.

Collaborazione in team

Questo strumento incoraggia la collaborazione attraverso flussi di lavoro basati su Git e richieste pull.

Feedback continuo

Lo strumento fornisce un feedback rapido sulle modifiche attraverso test automatizzati e ambienti di anteprima.

DevOps migliori pratiche

Jenkins X implementa le DevOps migliori pratiche di default, inclusi i GitOps principi.

Configurazione dichiarativa

Lo strumento utilizza configurazioni dichiarative per definire applicazioni e ambienti.

Aggiornamenti automatizzati

Jenkins X fornisce strumenti per automatizzare gli aggiornamenti della piattaforma Jenkins X stessa.

Jenkins X implementa questi GitOps principi per creare una soluzione CI/CD completa per Kubernetes. Mira ad automatizzare e semplificare l'intero processo di distribuzione del software, dall'invio del codice all'implementazione in produzione, rispettando al contempo le pratiche. GitOps In questo modo, aiuta i team a realizzare implementazioni più rapide, affidabili e coerenti in ambienti nativi del cloud.

La differenza fondamentale tra Jenkins X e strumenti come Argo CD o Flux è che Jenkins X offre una CI/CD soluzione più completa, che include l'automazione degli edifici e la gestione delle pipeline, pur incorporando principi per l'implementazione e la gestione dell'ambiente. GitOps Ciò lo rende particolarmente adatto ai team che necessitano di una all-in-one soluzione che copra sia gli aspetti CI che quelli CD all'interno di un unico framework. GitOps

Per ulteriori informazioni, consulta la documentazione di Jenkins X.

Architettura

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

Architettura e flusso di lavoro di Jenkins X su. AWS

dove:

  • Fase 1: unione delle Pull Request (PR). Uno sviluppatore crea una pull request che include modifiche ai manifest di Kubernetes, ai grafici Helm o al codice dell'applicazione archiviato in un repository Git. Dopo la revisione e l'approvazione, il PR viene unito al ramo principale e aggiorna lo stato desiderato nel controllo del codice sorgente.

  • Fase 2: Sincronizzazione del repository. Jenkins X attiva automaticamente una CI/CD pipeline quando rileva la modifica. La pipeline crea, testa e promuove l'applicazione in diversi ambienti (ad esempio, staging e produzione) utilizzando principi. GitOps

  • Fase 3: Distribuzione nei namespace di destinazione. Jenkins X aggiorna i repository ambientali (staging e production) con le nuove versioni dell'applicazione. Il cluster riconcilia automaticamente le modifiche estraendo i manifesti più recenti da Git e distribuendo l'applicazione nei namespace appropriati.