Pipeline CI/CD efficace, gli aspetti a cui fare attenzione

Pipeline CI/CD efficace, gli aspetti a cui fare attenzione

Lo sviluppo moderno di applicazioni a ciclo continuo è ormai diventato lo standard di riferimento per tutte le aziende. La sua evoluzione procede in maniera piuttosto decisa, dando un chiaro riferimento alle imprese. I vantaggi del CI/CD sono notevoli e portano all’integrazione di numerosi tool nella pipeline complessiva.

 

L’adozione della metodologia continuous integration, continuous delivery propone parecchi miglioramenti al precedente sviluppo del software. Un contributo ancora più importante è l’introduzione di un punto di vista, un mindset completamente nuovo per tutti gli elementi interessati in azienda. Inoltre, con il crescere dell’importanza delle supply chain, questo mindset penetra sempre più spesso anche nelle aziende collegate.

È per questo che la corretta implementazione di una pipeline CI/CD passa per una esplicita formazione continua ma soprattutto per la continua osmosi tra team diversi.

Sono oggi a disposizione tanti tool perfetti per la pipeline CI/CD: ciascuno richiama competenze che possono provenire da qualsiasi origine (linguaggio, metodologia), portando nel team esperti sempre nuovi. Oggi non è raro vedere una pipeline CI/CD costruita da 10 a 20 strumenti e servizi diversi, in modalità cloud, con un diverso livello di open source, ciascuno con il suo ecosistema di plug-in.

 

Certamente, lo sviluppo continuo permette oggi una attenta pianificazione di tempi e costi nello sviluppo di applicazioni di qualsiasi dimensione all’interno di aziende ed organizzazioni di qualsiasi tipo. Il meccanismo di “continuità” permette un miglioramento senza fine dovuto al fatto che delle quattro fasi (integration, delivery, deployment e monitoring) l’ultima si collega alla prima e il ciclo viene rilanciato senza fermarsi, com’era una volta.

Le qualità della pipeline CI/CD sono così ampie da attrarre anche aziende di lungo corso che hanno finora sviluppato con approcci tradizionali e che trovano utile migrare la loro attuale metodologia verso lo sviluppo continuo. Sono opportune alcune attenzioni, come quella al numero di strumenti e all’importanza della sicurezza informatica.

Pipeline CI/CD: quando il numero non fa la forza

La ricchezza della pipeline CI/CD e la continuità del ciclo sono certamente dei vantaggi in fase di costruzione, ma nascondono anche degli svantaggi.

Il numero degli strumenti ad esempio, se esagerato, porta a problemi di gestibilità. Questo tipo di complessità è oggi impossibile da tracciare manualmente.

La prima conseguenza è nella fluidità tra i vari cicli di rilascio. Bisogna infatti tener presente che un progetto appena complesso è articolato in svariati sottoprogetti, ciascuno dei quali potrebbe nascondere (ad esempio nello sviluppo o nel testing automatico) degli aspetti farraginosi già all’interno dello specifico ciclo, e ancor di più nell’integrazione con i cicli degli altri sottoprogetti.

Sicurezza dall’attacco alla supply chain

Bisogna inoltre considerare gli effetti sulla sicurezza derivanti dalla standardizzazione dei tool di sviluppo e automazione all’interno di ambienti produttivi omogenei. Questa situazione si sta verificando sempre più spesso nell’ambito di intere supply chain, dove lo stesso tool finisce nella pipeline di parecchi attori della catena di produzione.

Ovviamente la diffusione di uno stesso tool di sviluppo in una catena di aziende comporta un’esposizione dell’ambiente, del codice, dei segreti e della rete attraverso i singoli strumenti e ciascuno dei loro plug-in. Viviamo un’epoca nella quale gli attacchi informatici, sia esterni sia interni, sono più organizzati della maggior parte delle aziende, organizzazioni o infrastrutture che ne diventano vittime. Anche la pipeline CI/CD, quando non correttamente sviluppata, può avere una sua parte di responsabilità nell’infiltrazione di agenti malevoli.

Per evitare che ciò accada, l’approccio DevOps non è sufficiente. Esperti di security devono osservare da vicino le dipendenze della pipeline per identificare e rispondere alle vulnerabilità e agli attacchi contro tali servizi e strumenti aggiuntivi.

Ogni volta che un nuovo servizio viene collegato alla pipeline, questi servizi devono essere controllati e monitorati costantemente per rilevare eventuali vulnerabilità o attività sospette. Qualsiasi sospetto dovrebbe attivare automaticamente un avviso alle parti interessate appropriate che devono verificare l’integrità del servizio e garantire che non vi siano rischi ad esso associati.

È spesso consigliabile portare queste competenze all’interno dei team di sviluppo, portando l’azienda verso una cultura SecOps o DevSecOps.


modern-application-development