GitLab CI – Production Pipeline

Gestione centralizzata del codice e promozione in produzione

Sono due i principali compiti che GitLab assolve nell’infrastruttura.

  • Repository del codice sorgente
  • Continous Integration pipeline per produzione software

Repository

Il repository è di tipo GIT.

  • Velocità di aggiornamento.
  • Storico modifiche per ogni utente.
  • Lavorazione contemporanea su più versioni (branch).
  • Accesso SSH o HTTP.

Gitlab fornisce una interfaccia web per le operazioni.

  • Gestione utenti
    • Creazione/cancellazione di gruppi
    • Assegnazione per gruppo/singolo utente di permessi per singolo repository
  • Gestione repository
    • Creazione/cancellazione repository
    • Modifica contenuti con editor integrato
    • Avvio manuale pipeline

Continous Integration

Una pipeline è una serie di comandi da eseguire associati ad un repository.

  • Le operazioni avvengono all’interno di runner, all’interno di container monouso.
  • Scalabilità totale mediante l’aggiunta di runner.
  • Parallelizzazione dell’esecuzione delle pipeline.
  • Distribuzione del carico.

Il processo di pipeline è diviso in fasi, ciascuna delle quali può impattare la costruzione della build. Il tipico workflow comprende fasi ben definite.

  1. La modifica del codice (commit) innesca la pipeline
    • Sono disponibili parametri d’ambiente, come il branch o il commit stesso
  2. Viene prodotto il software tramite i comandi della pipeline all’interno del container dedicato
    • Il container può essere specificamente calibrato per il software da produrre e risiedere su un repository interno (come Nexus)
  3. Il software prodotto viene validato(mediante un container)
    • Analisi statica del codice
    • Test di funzionamento
    • Test di integrazione
    • Test di non regressione
  4. Il prodotto è pubblicato(mediante un container)
    • L’artifact prodotto è caricato su un repository
    • Possibilità di attivazione notifiche
    • Possibilità di attivazione di altri meccanismi di deploy automatico
Top