La richiesta
Aruba, noto top-player europeo nel campo dell’hosting e dei domini, era in procinto di lanciare un nuovo prodotto, una piattaforma di virtualizzazione cloud. Per tale piattaforma, era necessario realizzare un software di controllo (demone) che, comunicando con la piattaforma stessa, implementasse all’interno delle macchine virtuali le configurazioni dei parametri di base (quali rete, logging, installazioni pacchetti) decise dall’utente tramite il pannello di controllo web.
La complessità era legata alla poliedricità della piattaforma cloud in questione, che consentiva all’utente di lanciare VM (Virtual Machine) con ben 6 diversi sistemi operativi: Ubuntu, CentOS, Windows, Openfilter, FreeNAS e pfSense.
Si rendeva necessaria quindi una vasta esperienza nella programmazione di sistema su sistemi operativi UNIX e non, unita quindi alla conoscenza delle specificità relative agli script di rete, e ai gestori pacchetti, di ciascun sistema operativo.
Problemi affrontati
- Difficoltà di testing dovuta all’elevato numero di piattaforme
- Necessità di conoscere nel dettaglio gli script di configurazioni su 6 diversi sistemi operativi.
Soluzioni implementate
- Utilizzo di Python per la portabilità di base
- Utilizzo di una testsuite automatizzata per agevolare il refactoring e l’evoluzione
Le richieste
- Un demone funzionante su 6 OS
- Funzionalità di configurazione di base degli OS
- Rapidità di sviluppo
Cosa ha fatto Develer
- Utilizzo di Python per portabilità e velocità di scrittura
- Testsuite automatizzata per testare il codice su 6 piattaforme
- Sistema a plugin multi-processo per maggiore solidità
Risultati
- Ottima stabilità
- Consegna nei tempi stabiliti
- Nessuna necessità di modifica o bugfix dopo il rilascio iniziale
Vantaggi introdotti dalle nostre soluzioni
- L’utilizzo di Python ha garantito una piena portabilità del codice e un rapido sviluppo;
- La scelta di utilizzare un sistema a plugin tramite processi esterni si è resa importante per garantire la solidità del demone principale;
- Un sistema di test completamente automatizzato ci ha consentito di provare tempestivamente ogni modifica su tutte e 6 le piattaforme con un semplice click.
Cerchi esperti in Python e cloud?
In quale modo la nostra metodologia ci ha aiutato
Abbiamo implementato fin da subito una vasta testsuite automatizzata che copriva ogni funzionalità richiesta, eseguendo i test in parallelo sulle 6 piattaforma, tramite l’uso della libreria “fabric”. Questa modalità operativa ci ha permesso di gestire durante lo sviluppo qualche refactor e modifica del protocollo, richiesta dal cliente, senza dover manualmente testare ogni piattaforma nuovamente.
In quale modo l’open source ha aiutato il progetto
Ci siamo appoggiati ad una vasta gamma di librerie open-source disponibili per il linguaggio Python, in modo da rendere molto più veloce ed efficace lo sviluppo.
Cliente
Top-player europeo nel campo dell’hosting, dei domini e del cloud
Staff
“La nostra competenza di programmazione di sistema su sistemi multipli, unita con l’esperienza del potente linguaggio Python, ci ha reso il partner ideale per realizzare un complesso sistema di configurazione multi-piattaforma”