Automatic Deployer

Automatic Deployer

Sviluppo di moduli per la CI (Continuos Integration) su piattaforma Jenkins.

CLIENTE:

Importante multinazionale

L’esigenza

Il cliente aveva sviluppato nel corso degli anni un ampio ecosistema di software e, vista la moltitudine di tools e tecnologie differenti utilizzate per svilupparli, spendeva molto tempo e risorse nella fase di rilascio. Inoltre a seguito della procedura per ottenere una delle certificazione ISO aveva l’esigenza di implementare la “Segregation of Duties” che impone di tenere separate le mansioni e aree di responsabilità tra cui quelle di sviluppatori, deployer e tester.  

La soluzione

Visto l’elevato numero di tool che dovevano essere distribuiti mediante il nuovo sistema automatico il lavoro di scrittura del codice è stato preceduto da una capillare fase di analisi che ci ha permesso di individuare tutte le criticità della successiva fase di sviluppo.

Abbiamo dovuto sviluppare jobs di varia natura capaci di deployare applicazioni anche a tecnologia mista. La scelta di Jenkins è stata ottimale per le sue caratteristiche di versatilità ma abbiamo comunque dovuto mettere in campo tutte le nostre abilità tecniche per riuscire ad automatizzare i rilasci delle applicazioni più complesse.

I vantaggi

Grazie all’introduzione del deployer  il cliente ha riscontrato i seguenti vantaggi:

  • ottimizzazione dei tempi di rilascio delle applicazioni. I precedenti rilasci manuali portavano con sé potenziali criticità a causa della complessità delle infrastrutture IT del cliente, con molteplicità di ambienti di rilascio, sistemi operativi di diverse tecnologie, ecc.. L’introduzione del deployer automatico ha permesso di analizzare e superare le criticità in fase di sviluppo dei jobs in modo da non lasciarle gestire ogni volta dall’operatore incaricato del rilascio.
  • diminuzione del margine di errore sui rilasci. L’utilizzo dello strumento automatico di deploy ha standardizzato la gestione del versionamento dei software sul repository dei codici sorgenti imponendo i commit agli sviluppatori secondo regole ben precise.

La richiesta

  • Automatizzazione dei rilasci dei software nei vari ambienti di test, QA e PROD

Il nostro contributo

  • Analisi di fattibilità
  • Sviluppo dei jobs di rilascio dei software

Tecnologie usate

  • Jenkins

Risultati raggiunti

  • Ottimizzazione dei tempi di rilascio delle applicazioni
  • Diminuzione del margine di errore sui rilasci

La testimonianza

“Sfruttando la modularità di Jenkins abbiamo realizzato un sistema potente e, allo stesso tempo, semplice da utilizzare.
Il flusso di approvazione e distribuzione può essere gestito facilmente via email.
Con questa soluzione abbiamo consentito al cliente di standardizzare una grande quantità di processi riducendo drasticamente tempi ed errori.” 

Francesco Frosini, Senior Software Architect @Kiwibit