Release Engineering
RCP Vision impiega quotidianamente tecniche e tecnologie per il TDD e la Continuous Integration . Grazie all’adozione di questi strumenti, la qualità del nostro software è costantemente monitorata e garantita e siamo in grado di monitorare e condividere con i nostri clienti lo stato di avanzamento dei progetti con precisione e facilità.
Continuous Integration
Continuous Integration
Il termine ‘Continuous Integration’ (Integrazione Continua) identifica una serie di operazioni automatiche, utili per la compilazione del progetto.
L’obiettivo primario è quello di verificare che il codice, anche subendo modifiche da diversi sviluppatori, sia sempre in uno stato compilabile ed utilizzabile da tutto il team. In caso di errori, il processo di compilazione viene interrotto e viene immediatamente inviata una notifica agli sviluppatori, in modo tale che sia possibile risolvere il problema il prima possibile.
Con ‘Continuos Delivery’ (Distribuzione Continua) si fa riferimento alla pratica della distribuzione automatica di ogni nuova versione del progetto direttamente in produzione. In questo modo ogni nuova versione che abbia superato tutti i test è disponibile in produzione attraverso un processo completamente automatizzato.
Test Automation
Tra i molteplici strumenti che permettono di implementare l’integrazione continua, una menzione particolare spetta a Jenkins, un tool open source scritto in java. Jenkins è capace di monitorare ogni cambiamento del codice sorgente con i maggiori sistemi di versionamento (GIT, SVN, CVS..) e generare automaticamente codice compilato usando Ant o Maven.
Jenkins permette con estrema facilità di controllare l’introduzione di errori e generare automaticamente nuove builds. In questo modo si riducono notevolmente i tempi per la risoluzione dei bugs e si ha la certezza che il codice sorgente sia sempre in una condizione stabile.
Docker
Docker è un progetto open-source che automatizza il deployment di applicazioni all’interno di contenitori software, fornendo un’astrazione aggiuntiva grazie alla virtualizzazione a livello di sistema operativo di Linux.
Utilizziamo Docker in combinazione con la Continuous Integration per realizzare i processi automatici di delivery delle soluzioni software.
Continuous Delivery
Si fa riferimento alla pratica della distribuzione automatica di ogni nuova versione del progetto direttamente in produzione. Ogni commit fatto da uno sviluppatore arriva in produzione automaticamente, in modo che ogni nuova versione che abbia superato tutti i test sia disponibile in produzione attraverso un processo completamente automatizzato.
DevOps
Il metodo DevOps aiuta le aziende nella gestione dei rilasci, standardizzando gli ambienti di sviluppo. Le aziende con problemi di automazione dei rilasci solitamente hanno già un processo automatico in essere ma lo vorrebbero più flessibile e controllabile, senza per questo dover agire da riga di comando per ottenere ciò. Idealmente tale automazione potrebbe essere utilizzata anche da risorse non operative (non appartenenti alle IT operations) su ambienti non di produzione; in questo modo gli sviluppatori hanno a disposizione un maggiore controllo degli ambienti, dando all’infrastruttura una visione più incentrata sull’applicazione.