Speciale Devops: la virtualizzazione

Introduzione

Con questo primo articolo iniziamo lo speciale “CoseNonJaviste Devops“. Lo speciale si comporrà di una serie di articoli che copriranno i seguenti argomenti:

  • Cos’è la virtualizzazione (questo post);
  • Crea la tua macchina virtuale con VirtualBox;
  • Cos’è il movimento Devops;
  • Vagrant: le basi;
  • Vagrant: configura la tua infrastruttura;
  • Vagrant: concetti avanzati;
  • Vagrant + Chef per il provisioning;
  • Chef: concetti avanzati;
  • Case study: crea uno stack di lavoro completo.

Pronto a iniziare?

La virtualizzazione

La virtualizzazione è una tecnologia informatica che utililzza uno strato software per simulare macchine fisiche e periferiche (dischi, schede di rete etc) e usarle come se fossero fisiche. Una macchina virtuale non è altro che un insieme di file. Serve poi un software (Oracle VM VirtualBox, VMware Player etc) in grado di utilizzare tali file per consentire all’utente di gestire la macchina (avviarla, fermarla, modificare l’hardware, clonarla etc).

Vantaggi della virtualizzazione

La virtualizzazione permette di ottenere diversi vantaggi:

  • Eseguire piu’ sistemi operativi sullo stesso hardware;
  • Sfruttare al massimo le risorse hardware, ottimizzando i carichi di lavoro;
  • Possibilità di copiare e spostare su altro hardware le macchine virtuali;
  • Ridurre l’ingombro fisico e il traffico sulla rete interna.
virtualization-defined

Svantaggi della virtualizzazione

L’unico svantaggio della virtualizzazione è un leggero calo di performance, misurabile però solo in certi ambiti più estremi. Non è ad esempio indicato utilizzare una macchina virtuale come macchina multimediale.

Chi usa la virtualizzazione?

La virtualizzazione per le aziende

La virtualizzazione è usata dalle aziende per ridurre l’imgombro dei propri data center, aver maggiore flessibilità e sfruttare meglio le risorse hardware, con conseguente riduzione dei costi. In particolare la virtualizzazione è alla base del cloud computing ed è usata dai più grandi player di hosting e servizi cloud (Google, Amazon etc) per la flessibilità, la scalabilità e la riduzione dei costi che offre.

La virtualizzazione per lo sviluppatore

Se sei uno sviluppatore puoi trovare molto utile la possibilità di fare girare diversi sistemi operativi sullo stesso hardware, creando in questo modo ambienti di test replicabili. Oppure puoi creare diverse macchine, una per stack di sviluppo. Ad esempio potresti creare:

  • una macchina virtuale per lo sviluppo Java con Ubuntu, Apache, JDK, JBoss, MySQL, Eclipse;
  • una macchina virtuale per lo sviluppo iOS con Mac OS e Xcode.

il tutto senza “sporcare” la tua macchina fisica, che rimane dedicata a task più generici. Ma attenzione: per fare girare più macchine virtuali sulla propria macchina fisica assicurati di avere sufficiente RAM: sono consigliati almeno 8Gb!

Il prossimo appuntamento

Nel prossimo articolo dello speciale vedremo come creare e usare la nostra prima macchina virtuale: un Ubuntu 14.04 a 64 bit.

manuele_signature

Manuele Piastra

Sono uno Scrum Master e Project Manager i cui skill tecnici sono focalizzati al momento sullo sviluppo di applicazioni Java EE su IBM Websphere 7.0 utilizzando JSF (RichFaces), JPA (EclipseLink) ed EJB3. Presso OmniaGroup ricopro il ruolo di Training Manager: seleziono il personale tecnico, mi occupo della sua crescita formativa organizzando Corsi e Workshop sia interni che esterni, molti dei quali hanno visto me come docente. LinkedIn Profile - Google+