contatti +39 0542.32640

Hybrid Cloud Center per l’erogazione dei servizi IT innovativi

Progettazione software di una infrastruttura Hybrid Cloud

Il progetto in breve

I sistemi informativi stanno avendo un ruolo sempre più importante nel mantenimento e nello sviluppo dei business aziendali. Questa dinamica comporta una accelerazione dei tempi di rilascio (time to market) di nuove applicazioni o funzionalità che contestualmente devono anche essere più solide (esenti da malfunzionamenti) in quanto sempre più critiche.

È necessario ripensare il modo di approcciare lo sviluppo e il mantenimento del software per rispondere a queste esigenze.

Con questo progetti voglio implementare una piattaforma (in ottica devops) che individui strumenti, definisca automatismi e processi per dare una risposta a queste esigenze.

Obiettivi e finalità

L’obiettivo è predisporre una piattaforma basata su strumenti provenienti esclusivamente dal mondo open source che permetta di creare processi, elementi di integrazione e automatismi per la gestione dell’intero ciclo di vita di una applicazione con un runtime elastico scalabile, il Cloud Ibrido.

Le tecnologie a supporto

Si è proceduto nell’identificazione delle tecnologie più idonee per soddisfare le esigenze di livello enterprise proprie della clientela di Imola Informatica. Come piattaforma di runtime ci si è orientati su Openshift/Kubernetes, che costituisce uno standard per l’orchestrazione di container adatti a sistemi di livello Enterprise e che soddisfa il requisito di scalabilità verso il cloud ibro.

Oltre alla piattaforma di runtime sono stati individuati una serie di strumenti per supportare gli stakeholder nelle varie fasi del ciclo di vita delle applicazioni (sviluppo, provisioning, test, quality assurance, deploy, etc.). L’approccio adottato, coerentemente con gli obiettivi di progetto, è stato quello di affacciarsi al mondo OpenSource e selezionare i seguenti tool:

  • Gitlab come Source Code Management
  • Maven come project build tool
  • JUnit e WireMock per la Test automation
  • Sonarqube per la Software Quality Assurance
  • Jenkins per la Job Automation

I processi e gli automatismi

Individuati i tool, sono stati definiti alcuni processi per indirizzare lo sviluppo e il successivo rilascio negli ambienti target. Il codice sviluppato dovrà essere testato (JUnit e WireMock) al fine di garantire requisiti minimi di qualità (Sonarqube) e rilasciato in un ambiente target il cui provisiong dovrà essere automatizzato (Jenkins).

Integrando questi strumenti in una toolchain e implementando gli automatismi necessari, è stato possibile realizzare un processo devops completamente automatizzato che consenta agli sviluppatori di accelerare il processo di sviluppo e rilascio accrescendo contestualmente la qualità del codice prodotto:

  • Un team di sviluppo avrà il compito di implementare le applicazioni secondo le linee guida aziendali e depositare il tutto su GitLab (Source Code Management)
  • La toolchain verificherà che i requisiti di qualità siano rispettati
  • Se le verifiche di qualità avranno dato esito positivo, la toolchain provvederà ad effettuare il rilascio nell’ambiente target.

Progetto co-finanziato dal Fondo Europeo di sviluppo regionale.