Il giusto server per lo sviluppatore web. Test e deploy nella cloud

Il mondo IT sta velocemente migrando verso un nuovo modello di sviluppo e deployment delle applicazioni, il cloud computing e la virtualizzazione forniscono sempre più flessibilità anche negli ambienti di sviluppo. Vantaggi e consigli per adottare questo modello.

Da locale a online, come cambia l’ambiente di sviluppo

Tipicamente chi si occupa di sviluppo lavora quasi sempre in locale, con una installazione ad hoc di tutto l’ambiente di test, quindi: webserver, database (MySQL o altro), PHP o Python e pochi altri accorgimenti. La possibilità di avere più macchine virtuali ha anche facilitato la possibilità di mantenere sul proprio notebook più ambienti di sviluppo e utilizzarli solamente all’occorrenza; questo metodo di lavoro tuttavia sta subendo pian piano dei mutamenti, dovuti principalmente alla disponibilità di servizi online che rendono sempre più facile gestire direttamente il proprio ambiente di sviluppo direttamente online, per comodità  e per esigenza stessa di testing sulle applicazioni web scritte. 

Basti pensare in primis a come sta cambiando l’approccio alla gestione del versioning dei file e al lavoro in team: il vecchio SVN sta pian piano scomparendo in favore di una maggiore popolarità di Git, supportato da piattaforme SaaS come Github e BitBucket. Queste piattaforme permettono di ospitare il proprio codice direttamente online, rendendo molto semplice il lavoro quotidiano in team, dall’aggiornamento con nuovo codice allo sviluppo, spesso diviso in più branch, a seconda di quanto sia estesa l’applicazione che si sta sviluppando: noi stessi in WeTalk Group utilizziamo sia Github sia Bitbucket per ospitare tutto il codice che produciamo su diversi progetti, suddiviso per team e persone a capo di quel progetto; in questo modo possiamo accedere direttamente ai sorgenti del codice, controllarne lo stato di avanzamento e soprattutto rendere ogni membro del team di sviluppo capace di lavorare su una singola parte del progetto, anche da remoto. 

Il deployment del codice da sempre è diviso tra una parte di test e sviluppo, con un server ad hoc, remoto o locale, e un server in produzione; questo consente di testare tutto il codice che produciamo in locale, con un ambiente identico a quello di produzione, e poi passare il codice (partendo sempre da repository su Git) direttamente sul server in produzione, con la certezza che questo funzioni senza problemi. Tuttavia, mentre una volta non era di fatto conveniente mantenere un server di test esterno, perchè costoso e difficile da gestire, oggi il cloud computing e i server virtuali, più in generale, hanno reso davvero semplice la possibilità di creare ambienti di test e produzione in pochi passi e ad un costo ridotto, con la certezza di poter avere ambienti totalmente customizzabili e soprattutto con risorse adeguate, sia in termini di CPU e memoria RAM, sia in termini di banda, un aspetto da non sottovalutare se pensiamo che sempre più spesso chi sviluppa applicazioni web è molto interessato anche alle performance della piattaforma finale su cui dovrà ospitare il codice e decide di eseguire stress test e ottimizzazioni della configurazione dei demoni (da MongoDB e MySQL a Nginx) che rendono necessario anche un ambiente dedicato performante. 

Infine bisogna osservare come gli ambienti di sviluppo siano diventati pian piano sempre più complessi: dal semplice stack LAMP, composto da Linux, Apache, PHP e MYSQL, siamo passati ora ad avere database NoSQL che spesso includono MongoDB, Redis o altri DBMS e infine a framework che richiedono installazioni ad hoc, difficili da replicare velocemente in locale e soprattutto time consuming in queste operazioni. 

Chi lavora nell’ambito dello sviluppo web sa benissimo che si cerca di mantenere quasi sempre il focus sullo sviluppo e poco invece sull’ottimizzazione e preparazione del sistema, in primis perchè questo è sempre stato compito dei sistemisti: oggi le cose sono fortemente cambiate, con un modello di DevOp e non di semplice software engineer o sviluppatore, dove il rapporto fra l’ambiente su cui funziona l’applicazione in termini di demoni e configurazione e il codice scritto, è strettissimo. 

 

SelfServer, Server Virtuali online on demand per CMSQuesto articolo è offerto da SelfServer, il brand di Enter Srl che offre server virtuali già pronti all’uso per diversi utilizzi, dallo sviluppo web ad ambienti virtuali pronti per l’uso dei più comuni CMS. Il server virtuale dedicato allo sviluppo Web con PHP, MySQL, MongoDB e PostgreSQL mette a disposizione un ambiente dedicato virtuale con 2 GB di RAM e 2 Core CPU a soli 21 Euro al mese, in promozione. Scopri tutte le caratteristiche di SelfServer, piattaforma cloud basata su OpenStack per la massima scalabilità.