Virtualizzazione e Cloud Computing 12 marzo 2015 Claudio Bizzarri claudio@bizzarri.net Ordine degli Ingegneri di Pistoia
La virtualizzazione Macchine reali e macchine virtuali Vantaggi della virtualizzazione Software di virtualizzazione La virtualizzazione di un server La virtualizzazione di un client
Macchina reale Utente umano Software applicativo Sistema operativo Software di sistema Hardware
Macchina reale L adozione del sistema operativo ha portato vantaggi enormi, ad ha svincolato il software dall hardware Microsoft ha inventato il software che invecchia ed ha trasformato il sistema operativo in software applicativo Nel tempo i vantaggi del sistema operativo si sono ridotti e l obsolescenza è diventata una strategia
Con il software si può.. Simulare: si replica il comportamento di sistemi anche complessi, scrivendo da zero il programma con l'obiettivo di riprodurre fedelmente il comportamento verso l'utente Emulare: si utilizza un dump del software originale cercando di riprodurre il comportamento dell'hardware (emulatori di processori, di device, ecc.) anche con architetture diverse Virtualizzare
W.i.n.e. Utente umano Software applicativo Strato di compatibilità (librerie w.i.n.e.) Software di sistema Sistema operativo Hardware
Soluzione wine Consente di utilizzare applicativi Windows in ambienti Linux e OS X Gli applicativi girano nativamente alla stessa velocità del sistema operativo ospite Richiede un grande sforzo di sviluppo per far funzionare tutte le possibili combinazioni
Macchina virtuale L aumento esponenziale delle prestazioni hardware consente una nuova strategia: l hardware virtuale Usando un software apposito viene emulato un hardware virtuale (non necessariamente esistente) che si appoggia ad un hardware reale tramite il suo sistema operativo
Macchine virtuali Utente umano Software applicativo Software applicativo Sistema operativo Sistema operativo Hardware virtuale Hardware virtuale Software di virtualizzazione Software di sistema Sistema operativo Hardware
Macchina virtuale (pro) Diventa di fatto un programma Backup e condivisione sono semplici operazioni È possibile fotografare il sistema operativo prima di modifiche importanti Non risente dell obsolescenza dell hardware
Macchina virtuale (con) Abbiamo più software che può malfunzionare L interfaccia con l utente è più scomoda È più lenta di una macchina reale Alcuni hardware potrebbero non funzionare Richiede uno sforzo maggiore per essere usata
Alcuni software di virtualizzazione Standard Microsoft Virtual PC (windows, gratuito, closed) Oracle Virtualbox (multipiattaforma, gratuito, open) VMLite Workstation (windows, gratuito, open) VMWare (multipiattaforma, pay, closed) Hypervisor Microsoft Hyper-V Server (pay, closed) VMWare ESXi (pay, closed)
Virtualizzare un server La virtualizzazione di un server (normalmente su Hypervisor) può avvenire per uno o più dei seguenti motivi server consolidation obsolescenza hardware certezza del backup necessità di gestire più versioni di un software garanzia di continuità di servizio
Virtualizzare un client La virtualizzazione di un client (normalmente su software di virtualizzazione) può avvenire per uno o più dei seguenti motivi test e sviluppo software obsolescenza hardware e software uso di sistemi operativi diversi certezza del backup gestione di ambienti di lavoro con possibilità di ripristino accesso alle risorse da postazioni diverse
Risorse virtuali e reali Oltre alla virtualizzazione del computer, quindi del sistema operativo e dell'hardware, la virtualizzazione può comprendere anche risorse diverse per diversi motivi Virtualizzazione della rete Virtualizzazione del desktop Virtualizzazione delle applicazioni Virtualizzazione dello storage
Esempi Creare una macchina virtuale Usare una macchina virtuale Snapshots Altro
Oltre la macchina virtuale Avere macchine virtuali sul proprio portatile è comodo Avere macchine virtuali sul proprio server in ufficio può aumentare efficacia ed efficienza Avere macchine virtuali richiede hardware potente, quindi immobilizzazione di capitali e nuovi investimenti
Fine prima parte
Il Cloud Computing
Il Cloud Computing Cosa si intende per Cloud Computing Strumenti disponibili (Azure, Digital Ocean, Google, Amazon, ecc.) Architetture complesse
Il Cloud Computing Le prime industrie dovevano generare l energia necessaria al loro fabbisogno, finché non è arrivata la distribuzione della corrente elettrica Fino a pochi anni fa dovevamo generare l energia computazionale necessaria al nostro fabbisogno, finché non è arrivato il Cloud Computing, che suddividendo server fra più utenti, mette a disposizione l esatta quantità necessaria a ciascuno di essi, ottimizzando costi e prestazioni.
Il Cloud Computing I provider di Cloud Computing fanno massiccio uso della virtualizzazione La condivisione di infrastrutture hardware abbassa i costi e consente anche modelli pay per use, con tariffe a tempo
CC: caratteristiche Self-Service: l utente gestisce i servizi (banda, potenza computazionale, applicazioni) autonomamente, senza l intervento dei gestori dell infrastruttura; Accessibilità: i servizi sono accessibili da dispositivi diversi, da posizioni diverse e nei momenti che l utente ritiene necessario. Raggruppamento: le risorse informatiche sono raggruppate e organizzate in modo da essere dinamicamente gestite per servire numeri variabili di utenti. Elasticità: le risorse sono scalabili sia verso l alto che verso il basso, velocemente e volendo automaticamente. Misurabilità: ogni servizio è controllato e monitorato in modo trasparente per poter implementare modelli di pay per use.
CC: modelli di servizio SaaS (Software as a Service): il software è erogato come servizio. Ad esempio: Office 365, Gmail, outlook.com. Si tratta spesso di web application. PaaS (Platform as a Service): la piattaforma di sviluppo e distribuzione viene erogata come servizio. Ad esempio: Windows Azure di Microsoft, con cui è possibile distribuire applicazioni scritte con la piattaforma.net e altri linguaggi di programmazione; Cloud Platform di Google. IaaS (Infrastructure as a Service): l intera infrastruttura è erogata come servizio. Ad esempio: AWS, Digital Ocean.
CC: modelli di distribuzione Private Cloud: il servizio di Cloud, anche se erogato da un provider esterno, viene fruito unicamente dall azienda e dalle sue unità. Community Cloud: il servizio di Cloud viene fruito da un gruppo ristretto di aziende e organizzazioni che condividono alcune caratteristiche di base, come ad esempio livelli di sicurezza, norme legali, ecc. Può essere gestito da un provider esterno o da un azienda del gruppo. Public Cloud: il servizio di Cloud viene erogato attraverso Internet da un service provider a più clienti, che condividono quindi la piattaforma e le applicazioni. Hybrid Cloud: il servizio Cloud è in parte privato (ad esempio l accesso a dati locali) e in parte pubblico (ad esempio interfacce di accesso e archiviazione dati).
CC: motivi di utilizzo L aumento dei dati: in Cloud l aumento di capacità di memorizzazione è un onere a carico del provider e non comporta onerosi acquisti di strumenti che necessiterebbero una pianificazione molto accurata Collaborazione: la condivisione dei dati diventa estremamente facile quando la struttura è trasferita in Cloud, senza bisogno di avere infrastrutture di comunicazione particolarmente efficienti. Accesso mobile: tablet, cellulare o desktop sono sempre più utilizzati come strumenti di lavoro e l azienda deve consentire l utilizzo tramite questi strumenti. Disponibilità: i dati devono poter essere accessibili senza soluzione di continuità, requisito che richiede uno sforzo progettuale ed economico enorme se effettuato privatamente. Variabilità della domanda: la variabilità della domanda deve poter essere supportata dall infrastruttura, erogando più o meno potenza di calcolo, banda e spazio di memorizzazione quando richiesto.
CC: Azure Il CC di Microsoft è sia PaaS e SaaS (e parzialmente IaaS) Punta molto sul Cloud Computing ibrido e fornisce soluzioni che comportano comunque l utilizzo di hardware locale
CC: Google Il CC di Google è SaaS e parzialmente PaaS Google conta molto sull utilizzo di Chrome come accesso universale ai servizi, arrivando a sviluppare un s.o. centrato proprio sul browser
CC: Digital Ocean Il CC di Digital Ocean è sostanzialmente IaaS Digital Ocean fornisce server economici in Cloud su cui installare le proprie applicazioni, i costi sono molto bassi ed i prezzi sono mensili
CC: Amazon Il CC di Amazon (AWS) è IaaS, anche se alcuni servizi vengono erogati come PaaS Erogando una intera infrastruttura Amazon copre ogni possibile aspetto del Cloud Computing, fornendo ad esempio strumenti di storage (S3), cloud private virtuali con accesso vpn (PVC) e addirittura componenti on-premise (Storage Gateway)
Cosa si può fare con il CC (soprattutto IaaS) Disaster Recovery Elastic load balance E-commerce avanzato Archiviazione documentale Sistemi di calcolo on demand
Disaster recovery: RTO e RPO Recovery time objective (RTO) - Il tempo necessario per ripristinare il funzionamento del sistema informativo al livello funzionale specificato. Un RTO di 8 ore ad esempio indica che, dopo un disastro accaduto alle 2:00, alle 10:00 il sistema è nuovamente ad un livello accettabile. Recovery point objective (RPO) la quantità di perdita di dati accettabile misurata in tempo. Ad esempio un RPO di un'ora indica che, se il disastro si verifica alle 2:00 di notte, quando il sistema riparte i dati disponibili sono tutti quelli presenti nel sistema fino alle 1:00. Ovviamente abbassare RTO e RPO implica un grosso impatto economico, è fondamentale scegliere compromessi accettabili. L'organizzazione IT si deve preoccupare di realizzare una infrastruttura in grado di garantire RTO e RPO richiesti dalla politica aziendale.
Disaster recovery tradizionale Creare una postazione dove inserire le infrastrutture, compresi gli impianti di alimentazione, raffreddamento e connettività, Assicurare la protezione fisica della postazione. Assicurare la necessaria capacità di crescita della postazione. Fornire il supporto per la manutenzione dell'infrastruttura. Dimensionare la banda e l'infrastruttura di rete (firewall, router, switch) per un utilizzo a banda piena Fornire abbastanza capacità di elaborazione per assicurare tutti i servizi critici e tutta la capacità memorizzazione necessaria. Garantire il funzionamento dei servizi di gestione necessari allo switch ed al successivo uso, quali DNS, DHCP, ecc. nonché realizzare servizi di monitoraggio e alerting.
Disaster recovery in cloud Tutta l'infrastruttura esiste, non c'è bisogno di prevedere un costo fisso per mantenere una struttura La banda e l'infrastruttura di rete è inesistente finché non necessaria, quindi non ha un costo Il numero di macchine necessarie per assicurare i servizi critici sarà fornito al momento del bisogno, non è necessario riservare una potenza di calcolo definita. Tutti i servizi necessari allo switch (DNS, DHCP, load balancer, ecc.) sono sempre pronti ad intervenire. Non è necessario realizzare servizi di monitoraggio e alerting perché già presenti.
Disaster recovery Funzionamento normale
Disaster recovery Recupero funzionalità
Componenti utilizzati EC2 VPC EBS S3 Storage Gateway
Web application evolute Potendo contare su di un ventaglio di servizi in cloud è possibile creare architetture complesse in poco tempo e con costi ridotti AWS mette a disposizione strumenti di storage, database sia relazionali che non, sistemi di load balance, gestori di code, DNS e tanti altri Usando questi componenti è possibile realizzare web application che utilizzano architetture non convenzionali
Elastic load balance Con architetture in cloud è possibile pensare a strategie non realizzabili con metodologie tradizionali Posso accendere e spegnere macchine quando serve (ad esempio per un guasto oppure perché il carico delle altre è eccessivo) Posso gestire il traffico di rete e dirigerlo dove sarà meglio servito
Elastic load balance
Componenti utilizzati Route 53 CloudFront S3 Elastic Load Balancing EC2 Auto Scaling RDS
Conclusioni Con il CC nella fase iniziale i costi sono molto bassi (è infatti il regno delle startup) Il CC consente una flessibilità non ottenibile con tecnologie tradizionali Abbassa il rischio di obsolescenza e la necessità di competenze di gestione hardware Richiede nuove competenze per poter sfruttare al meglio le opportunità presenti
Grazie per l attenzione Domande? claudio@bizzarri.net