Panoramica: il flusso CI/CD
L'approccio continuous integration / continuous delivery è l'insieme dei passaggi automatizzati e standardizzati che vengono eseguiti per fornire una nuova versione software. Le pipeline di integrazione e distribuzione continua (CI/CD) sono procedure pensate per ottimizzare l'erogazione di software attraverso l'approccio DevOps o Site Reliability Engineering (SRE).
La pipeline CI/CD introduce il monitoraggio e l'automazione per ottimizzare il processo di sviluppo delle applicazioni, in particolare nelle fasi di integrazione e test, nonché durante la distribuzione e il deployment. Il vantaggio principale di questo approccio sta nell'automazione delle procedure, benché ognuna di esse possa essere eseguita manualmente.
Elementi di una pipeline CI/CD
Una pipeline CI/CD si suddivide in sottoinsiemi distinti di attività, ognuno dei quali costituisce una fase di pipeline. Le fasi di pipeline tipiche includono:
- Build: la fase di compilazione dell'applicazione.
- Test: la fase in cui il codice viene testato. Qui l'automazione può far risparmiare tempo e fatica.
- Rilascio: la fase in cui l'applicazione viene fornita al repository.
- Deployment: in questa fase il codice viene distribuito al reparto di produzione.
- Convalida e conformità: i passaggi per convalidare una build dipendono dalle esigenze dell'organizzazione. Gli strumenti di scansione per la sicurezza delle immagini, ad esempio Clair, possono garantire la qualità delle immagini confrontandole con vulnerabilità note (CVE).

Questo elenco di fasi non intende essere esaustivo, ma è solo un esempio di pipeline. La tua pipeline di integrazione e distribuzione continua (CI/CD) potrà essere definita in base alle esigenze della tua azienda.
Container e pipeline di CI/CD
I sistemi di CI/CD tradizionali sono progettati per pipeline che utilizzano macchine virtuali, ma adottando uno sviluppo di applicazioni cloud native si aggiungono vantaggi alle pipeline di CI/CD. Cosa accade quando una pipeline di CI/CD è abbinata ai container?
OpenShift Pipelines
OpenShift Pipelines è una funzionalità di Red Hat OpenShift creata su Tekton, un progetto open source che fornisce un framework per creare rapidamente pipeline CI/CD cloud native. Tekton è un framework CI/CD per piattaforme Kubernetes che offre un'esperienza CI/CD cloud native standard con container. In qualità di framework Kubernetes native, Tekton semplifica il deployment in più provider cloud o ambienti ibridi. Attraverso una serie di Custom Resource Definitions (CRD) in Kubernetes, Tekton utilizza il piano di controllo di Kubernetes per eseguire le attività del flusso. Adottando le specifiche standard del settore, Tekton funziona in maniera ottimale con strumenti di CI/CD esistenti quali Jenkins, Jenkins X, Skaffold e Knative.