Il mondo del software development si sta evolvendo molto velocemente e oggi i team di sviluppatori devono stare molto attenti a rispettare le nuove pratica di sicurezza ed ottimizzazione, cosi da attenersi ai nuovi standard richiesti delle aziende. In questo contesto i DevOps sono diventati molto importanti assieme ai tool che permettono l'automazione di processi ripetitivi e alle pratiche di CI/CD (continuous integration e continuous delivery).
Molti team di sviluppo implementano le pratiche di CI/CD ma questo aumenta notevolmente la complessità e i tempi di manutenzione del codice e dell'infrastruttura software in generale. Inoltre implementare ed imparare le nuove pratiche di sviluppo richiede tempo e molto impegno per il singolo developer.
Per ovviare a tali problematiche Google ha deciso di realizzare e lanciare un nuovo servizio chiamato Cloud Build, un fully-managed CI/CD platform che consente ai team di sviluppare e testare le applicazioni sulla propria cloud platform anche su larga scala. Cloud Build è stato realizzato lavorando a stretto contatto con sviluppatori software e team di varie dimensioni, studiando come gli engineering team riescano a diventare produttivi. L'indagine ha rilevato tre aspetti importanti, che sono stati tenuti in considerazione durante lo sviluppo di Cloud Build:
Scalabilità
Nessuna nuova build è realizzata in modo troppo veloce, nessun tool di test viene sfruttando in modo troppo rapido, man mano che il progetto e il team di sviluppo crescono è sempre bene tenere in mente le CI/CD e non essere mai frettolosi per non compromettere appunto la scalabilità del progetto.
Flessibilità
Il software development è sostanzialmente una rete molto complessa di strutture, servizi, dipendenze, linguaggi e ovviamente tool in evoluzione. E le risorse che ne derivano vengono ormai distribuite solo online tramite i servizi cloud o tramite gli store di applicazioni mobile. Dunque è bene tenere in considerazione le caratteristiche di flessibilità durante lo sviluppo e la distribuzione del software.
Sicurezza
Il fattore sicurezza non deve essere vitale solo durante lo sviluppo e il testing, ma va affrontato per tutto il ciclo vitale e va esteso a tutti i tool e alle pipeline che si adottano. Questo perché possono sempre emergere nuovi bug o falle di sicurezza e dunque non è mai una buona cosa abbandonare a se stesso un software o un servizio sopratutto se è disponibile online.
Una volta preso nota di tali necessità gli sviluppatori Google hanno realizzato un'infrastruttura cloud scalabile, che tramite un sistema di pay-for-what-you-use si adatta alle esigenze dei clienti. Cloud Build può inoltre interfacciarsi direttamente con i principali siti di code sharing come Github, ed è dotata di tool integrati ormai vitali per lo sviluppo software come Docker ed npm, senza contare che esistono già numerosi add-on dedicati all'estensione delle feature della piattaforma.
Mentre per garantire la sicurezza su Cloud Build è stata implementata una serie di protocolli e policy control, in modo da dare allo sviluppatore il pieno controllo di quello che accade al codice dell'applicazione in sviluppo. Da Cloud Build si può anche avviare la propria build in una macchina virtuale dedicata cosi da ridurre i rischi di information leaking o gli errori causati dal build environment. Sono anche disponibili dei tool che eseguono scansioni automatiche del codice alla ricerca di errori all'interno delle container image.
Via Google