Premessa
Per seguire con profitto questa serie di articoli è consigliabile scaricare la versione gratuita di Windows Server 2012, la versione gratuita di System Center 2012 e ottenere una sottoscrizione a Windows Azure. Si possono facilmente utilizzare le versioni di prova messe gratuitamente a disposizione da Microsoft:
- Prova gratuita Windows Server 2012 R2
- Prova gratuita System Center 2012 R2
- Prova gratuita Windows Azure
Come gestire i datacenter con il Cloud OS
Negli articoli precedenti di questa serie dedicata al Cloud OS abbiamo, in un primo articolo, analizzato i vari cambiamenti che stanno letteralmente rivoluzionando l’IT moderna e, in un secondo, abbiamo esaminato quali sono le tecnologie che mettono in grado il professionista IT di non farsi trovare impreparato di fronte a questa mutazione architetturale. Al termine del precedente articolo abbiamo anche indicato le caratteristiche che, a nostro parere, dovrebbe avere la soluzione tecnologica scelta per affrontare questo cambiamento e abbiamo sintetizzato questa scelta nella frase “una piattaforma consistente”.
È indubbio infatti che, soprattutto per evitare di aggiungere complessità al proprio datacenter nel momento di transizione dal modello tradizionale al modello cloud, sia necessario utilizzare tecnologie e software che sappiano armonizzare le diverse operazioni coinvolte nella gestione di un modello cloud in interfacce coerenti e usabili, sappiano integrare con fluidità i vari modelli di piattaforma (pubblico, privato e ibrido) , sappiano ridurre al minimo il numero di applicazioni da acquistare o integrare.
Nel panorama dei servizi Cloud l’offerta che più di tutte si avvicina a questo modello è quella di Microsoft che, con System Center 2012 R2, Windows Server 2012 R2 e Windows Azure, riesce a coprire tutte le necessità di infrastruttura che l’IT di oggi richiede. Se a questo aggiungiamo anche i servizi SaaS (Office 365 o Dynamics CRM) e i software di sviluppo (Visual Studio), abbiamo un’immagine unica di un ecosistema coerente. Ciò per l’IT significa minori investimenti in licenze, una più semplice gestione dell’intero comparto tecnologico, un unico partner da gestire.
Questo articolo è dedicato ad analizzare in modo dettagliato l’offerta di Microsoft e il suo Cloud OS. Prima di addentrarci in questa analisi, è tuttavia legittimo rispondere ad una delle domande che spesso ci viene rivolta quando affrontiamo questi argomenti: cos'è un Cloud OS?
Il Cloud OS di Microsoft
Un sistema operativo cloud (un Cloud OS) fa quello che ci si aspetta da un sistema operativo tradizionale: gestisce l’hardware del server su cui è installato e permette di eseguire software. Ciò che cambia rispetto al sistema operativo tradizionale è, in primo luogo, quello che intendiamo per “hardware” e “software”.
Hardware e software del Cloud OS
In un Cloud OS l’hardware sottostante non è formato da singole risorse fisiche. Per elaborare dati non abbiamo uno o più processori, per gestire le connessioni all’interno della rete non ci sono più singole schede di rete o singoli switch e per archiviare dati non abbiamo a disposizione un singolo hard disk o una singola SAN. In un Cloud OS l’hardware viene astratto attraverso tecnologie di virtualizzazione ed organizzato in gruppi (o pools) omogenei. In questo modo il Cloud OS può gestire un gran numero di dispositivi hardware, anche differenti per produttore o tecnologia, come se fossero un unico dispositivo e così poter abilitare su ogni gruppo attività di gestione, automazione e orchestrazione.
Per quanto riguarda il software, un Cloud OS non è utilizzato per eseguire singole applicazioni, ma per esporre, e consumare, servizi. Un servizio in questo senso è un’architettura di uno o più server virtuali che, gestiti come un'unica entità, sono dedicati a distribuire una singola applicazione. Un tipico servizio distribuito dal Cloud OS può essere un’applicazione web costituita dai classici componenti di un’architettura three-tier: un web server per la gestione dell’interfaccia utente, un application server per la gestione della logica dell’applicazione e un database server per gestire la conservazione dei dati. In un Cloud OS questi livelli sono distribuiti attraverso un pool di macchine virtuali interconnesse da reti virtuali, mentre gli eventuali dati sono conservati in un pool di dispositivi di archiviazione.
La piattaforma del Cloud OS
Il pool di risorse virtualizzate (l’hardware) e i servizi (il software) devono essere gestiti attraverso una piattaforma che permetta di eseguire le macchine virtuali e distribuire i servizi. Un Cloud OS dovrebbe permettere di utilizzare almeno tre differenti piattaforme: una piattaforma privata conservata all’interno del proprio datacenter, una piattaforma privata o pubblica gestita attraverso un service provider o una piattaforma pubblica disponibile attraverso un provider di servizi cloud. Aspetto fondamentale da considerare in questo modello è l’integrazione fra i servizi forniti dal provider remoto e quelli forniti dal datacenter locale, in modo da garantire la possibilità di trasferire facilmente i servizi da e verso il service provider e da e verso l’azienda quando se ne presenta la necessità.
Nel Cloud OS di Microsoft queste piattaforme sono abilitate attraverso tre prodotti progettati per condividere processi, interfacce e dati: Windows Server 2012 R2, System Center 2012 R2 e Windows Azure. Il Cloud OS di Microsoft, proprio perché basato su componenti omogenei e comuni, è in grado in questo modo di utilizzare indistintamente una delle piattaforme citate ed abilitare in questo modo, a seconda delle necessità dell’utente, le diverse modalità di cloud computing: privato, pubblico o ibrido.
Di questi tre, l’ultimo modello è quello che maggiormente si avvicina alle necessità di IT moderna. Un cloud ibrido, ossia la possibilità di distribuire i propri servizi utilizzando risorse sia conservate in una piattaforma privata sia in una piattaforma pubblica, è una delle più efficienti architetture offerte alle imprese che si avvicinano per la prima volta al Cloud OS poiché permette di estendere il proprio datacenter verso un sistema cloud, e dunque acquisire elasticità, scalabilità e innovazione, senza dover rivoluzionare internamente l’architettura del proprio reparto IT e affrontando una spesa flessibile in base alle necessità.
Le componenti chiave
Tuttavia non basta offrire applicazioni che sappiano gestire l’hardware, abilitare servizi oppure permettere di sfruttare piattaforme pubbliche, private o ibride. Il Cloud OS deve sapere garantire, attraverso specifiche caratteristiche-chiave, gli stessi livelli di efficienza e omogeneità in tutti i suoi aspetti: dallo sviluppo alla gestione dei dati.
La virtualizzazione. La virtualizzazione disponibile attraverso Hyper-V rappresenta lo stato dell’arte in questo campo. Windows Server 2012 R2 permette così di virtualizzare non solo i server, ma anche le reti, lo storage e le applicazioni, sempre garantendo l’applicabilità delle soluzioni attraverso i diversi Cloud.
La flessibilità nella gestione dei pool. Poiché le condizioni tecnologiche dei datacenter da gestire possono essere le più diverse, il Cloud OS di Microsoft offre tecnologie aperte alle più diverse tecnologie. Le macchine virtuali gestite con Windows Server 2012 R2, ad esempio, possono ospitare anche sistemi operativi non Microsoft, come ad esempio sistemi operativi Linux. Stessa flessibilità si trova anche nella gestione dei pool di archivazione: Storage Spaces, il servizio di gestione delle tecnologie di archiviazione incluso in Windows Server 2012 R2, permette di aggregare in un unico gruppo virtuale (Storage pool) lo spazio di diversi dischi connessi o fisicamente presenti in un server ed è una soluzione che si basa su hardware comune e supporta anche dischi tradizionali a basso costo (SATA o USB).
La gestione delle identità. Al centro di un sistema operativo ci sono sempre sistemi di autenticazione e gestione delle identità. Ancor di più in un sistema operativo che gestisce servizi da distribuire verso l’esterno. Active Directory e Windows Azure Active Directory forniscono lo strumento ideale per gestire singole identità attraverso i vari tipi di Cloud.
La flessibilità nello sviluppo delle applicazioni. Il Cloud OS di Microsoft permette di creare applicazioni lasciando agli sviluppatori la decisione su quale linguaggio e strumento utilizzare (Java, PHP, Python, Ruby o NodeJS). Visual Studio rimane lo strumento di sviluppo ideale per creare applicazioni da distribuire sul Cloud OS.
Sistemi di gestione unificati. System Center 2012 R2 e Windows Intune forniscono agli amministratori strumenti coerenti e uniformi per gestire applicazioni, dispositivi, pool di macchine virtuali e sistemi nei cloud pubblici, privati o ibridi.
La gestione dei dati. La piattaforma per gestire i dati è SQL e permette di gestire small e big data, sia on premise, sia su un cloud pubblico.
Con la soluzione di Microsoft, in altre parole, si ottiene una piattaforma coerente per la propria infrastruttura, per i propri servizi e per i propri dati. Sta solo nelle mani del professionista IT decidere come comporre questa piattaforma, quali combinazioni di servizi cloud, servizi locali o servizi di service provider utilizzare.
Per analizzare nel dettaglio il Cloud OS di Microsoft, nelle prossime pagine esamineremo analiticamente le caratteristiche e le funzionalità dei tre principali prodotti che sono in grado di abilitare tecnologie di cloud computing: Windows Server 2012 R2, System Center 2012 R2 e Windows Azure. Software che trasformano il proprio datacenter e lo rendono conforme alle aspettative degli utenti e più semplice da gestire per amministratori e team IT.
Windows Server 2012 R2
Al cuore del Cloud OS c’è Windows Server 2012, il sistema operativo per server che ha raggiunto lo scorso ottobre la sua seconda release (Windows Server 2012 R2). Il sistema operativo è stato, rispetto alla versione 2008, completamente reingegnerizzato per introdurre quelle funzionalità che sono necessarie all’evoluzione dei datacenter moderni. Windows Server 2012 (e la versione R2) è stato progettato avendo in mente per prima cosa gli ambienti cloud: le tecnologie utilizzate sono le stesse che si possono trovare nella cloud pubblica di Microsoft o nelle soluzioni di cloud privato, rendendo la transizione verso il modello cloud la più coerente e fluida possibile.
Per abilitare tutti gli scenari che possono interessare grandi e piccole aziende, in Windows Server 2012 R2 si troveranno alcune delle più moderne tecnologie IT, a partire dalla virtualizzazione, fino alle tecnologie di gestione dello storage, automazione e gestione.
Virtualizzazione
Window Server 2012 R2 include lo stato dell’arte delle tecnologie di virtualizzazione. Hyper-V, il componente che si occupa di astrarre le capacità server e metterle a disposizione di un cloud, è progettato per supportare grandi carichi di lavoro (64 processori virtuali, 1 TB di memoria, 64 TB di hard disk per ogni virtual machine), per rendere semplice ed efficace la gestione delle macchine virtuali e per garantire configurazioni ad alta affidabilità su un ampio spettro di dispositivi e configurazione.
Hyper-V Replica
Con Hyper-V Replica è possibile clonare macchine virtuali tra due server attraverso una connessione di rete (locale o internet) consentendo di salvare periodicamente una o più virtual machine tra due server residenti nello stesso datacenter o in un due datacenter remoti. Ciò permette, in definitiva, di avere un sistema di backup facile ed efficace in grado di ripristinare lo stato di un datacenter anche quando questo viene colpito da problemi tali da renderlo inoperabile.
Live Migration e Live Storage Migration
Uno dei principi del cloud computing è la “percezione della continua disponibilità dei servizi”: dal punto di vista di chi consuma i servizi del Cloud, questi devono essere sempre disponibili, da qualsiasi luogo e in ogni momento. Una delle tecnologie che abilita questa capacità è la Live Migration, ossia la possibilità di spostare una virtual machine da un server ad un altro senza interromperne il funzionamento. In Windows Server 2012 R2, oltre a spostare virtual machine tra due nodi dello stesso cluster in contemporanea, è possibile anche eseguire Live Migration quando le macchine non sono in una configurazione di Failover Clustering: fra virtual machine che utilizzano uno storage su una condivisione SMB oppure fra due host che hanno uno storage locale. La Live Storage Migration permette invece di spostare il disco virtuale collegato ad una virtual machine da un dispositivo di storage ad un altro, senza interrompere l’attività della macchina virtuale stessa.
Network Virtualization
La Network Virtualization permette di utilizzare in Hyper-V più reti virtuali su un’unica rete fisica. La Network Virtualization permette così di isolare il traffico delle diverse sezioni della propria rete senza dover utilizzare le complesse VLAN. Ancor più importante, la Network Virtualization consente di esportare la propria rete in una nuova infrastruttura senza dover riconfigurare tutte le impostazioni di rete e tutte le altre configurazioni che ne derivano, come, ad esempio, le regole del firewall. È così possibile, ad esempio, clonare un datacenter virtualizzato in Windows Azure, senza dover riconfigurare tutte le connessioni.
Shared virtual hard disk
Hyper-V in Windows Server 2012 permette di progettare con semplicità infrastrutture ad alta affidabilità. Tra le tante possibilità offerte per raggiungere questo obiettivo, la funzione Shared virtual hard disk, introdotta in Windows Server 2012 R2, permette di collegare più di una virtual machine ad un unico hard disk virtuale (vhdx) e configurare in questo modo un cluster failover di virtual machine (un cosiddetto Hyper-V guest failover cluster) senza necessariamente mettere a disposizione lo spazio condiviso fornito da connessioni Fibre Channel o iSCSI. Questa configurazione diventa decisiva soprattutto in quegli ambienti in cui i servizi cloud siano forniti da un service provider che ha difficoltà a (o semplicemente non vuole) esporre alle macchine virtuali lo storage block-level.
Storage Spaces
Per venire incontro alla proliferazione dei dati (quello che abbiamo chiamato il fenomeno dei big data), in Windows Server 2012 sono stati introdotti diverse tecnologie che, da un lato, migliorano la gestione dei dispositivi di archiviazione e, dall’altro, ne permettono un utilizzo più efficiente, avendo come risultato, in entrambi i casi, anche una riduzione dei costi. Fondamentale in questo campo e, ad esempio, la funzionalità Storage Spaces che aggiunge a Windows Server la capacità di virtualizzare l’hardware dello storage in modo da ottimizzare e rendere scalabili, flessibili e più economiche le disponibilità di spazio di archiviazione. Storage Spaces, in pratica, aggrega in un unico gruppo virtuale (chiamato Storage pool) lo spazio di diversi dischi connessi ad un server. Questo gruppo viene suddiviso successivamente in segmenti da assegnare a macchine virtuali o server fisici. I segmenti saranno dunque dei dischi virtuali il cui spazio può spalmarsi su più dischi fisici appartenenti allo stesso pool.
In Windows Server 2012 R2 questa funzionalità è stata migliorata in modo da aumentare performance e sicurezza. In particolare, attraverso gli Storage tiers è possibile distribuire automaticamente i file da uno storage SSD (più veloce) ad uno storage HHD (meno veloce) in base al loro utilizzo, mentre la funzionalità Write-back cache consente di salvare sui dischi SSD presenti nel pool i dati prima di essere scritti sui dischi HHD.
Gestione dei server (Server Manager)
In Windows Server 2012 troviamo una generale semplificazione di tutti i principali processi di configurazione dei principali servizi. Sono stati ridotti, in alcuni casi anche drasticamente, i passaggi necessari alla configurazione di ruoli e funzionalità. Gli strumenti principali di configurazione e gestione sono raccolti nel Server Manager. Da un’unica console è ora possibile monitorare e gestire server locali e server remoti: è possibile, ad esempio, installare ruoli e funzionalità senza avere un accesso fisico alla macchina collegandosi ad un server remoto o installando ruoli e funzionalità anche in un file VHD offline. In datacenter più grandi, i server possono essere gestiti in gruppi in modo da eseguire procedure di configurazione su più sistemi in un colpo solo. Alcuni servizi, infine, sono stati direttamente inclusi nel Server Manager. I remote desktop services (RDS) e la console di gestione dello storage beneficiano di un pannello chiaro e trasparente dal quale diventa estremamente semplice gestire questi due aspetti critici in un’infrastruttura moderna.
Automazione
Le operazioni di gestione dei server, delle virtual machine, dello storage e di gran parte delle operazioni di Windows Server possono essere automatizzate utilizzando Powershell. Il linguaggio di scripting di Microsoft è stato arricchito in Windows server 2012 con centinaia di nuovi comandi che coprono un enorme numero di operazioni. Un reparto IT, una volta che ha definito quali sono tutte le principali attività ripetitive e i ritmi delle sue operazioni, può programmare degli script che eseguono in automatico le operazioni necessarie. In Powershell inoltre sono state integrate le tecnologie messe a disposizione dalla Windows Workflow Foundation, cosa che ha reso la shell più adatta a gestire carichi di lavoro complessi in ambienti multi-server. I workflow permettono di eseguire operazioni in parallelo, consentono di riprendere un’operazione interrotta, sospenderla o rimandarla. Adesso è possibile utilizzare script anche quando il processo che si deve compiere può facilmente incorrere in blocchi, riavvii, interruzioni delle connessioni di rete e così via.
In Windows Server 2012 R2, Powershell ha raggiunto la versione 4.0 (era la 3.0 in Windows Server 2012). Questa versione introduce in particolare il Windows PowerShell Desired State Configuration (DSC), un’estensione del linguaggio di scripting che permette di configurare in modo veloce un’infrastruttura IT e i suoi servizi. Attraverso la DSC è possibile così abilitare o disabilitare ruoli, gestire il file di registro, gestire file e directory e così via. Il tutto, ed è questa la principale novità, attraverso una semplice sintassi dichiarativa, molto più semplice da scrivere e manutenere.
Gestione delle identità
Active Directory è la tecnologia di Windows Server che garantisce la gestione delle identità in modo trasversale per utenti, dispositivi e applicazioni. Nel nuovo modello di IT che stiamo descrivendo in questa serie, il modello di autenticazione ha bisogno di evolvere sia a causa della frammentazione degli accessi (che possono provenire da dispositivi personali o da luoghi non controllati dall’IT), sia a causa della necessità di estendere queste autenticazioni anche ai modelli di cloud ibrido. In Windows Server 2012 e Windows Server 2012 R2, Active Directory è stato profondamente ridisegnato: sono state semplificate le procedure di configurazione, è stato migliorato il supporto per ospitare i domain controller in macchine virtuali ed è stato introdotta la funzionalità Workplace join, che consente di autenticare, attraverso un certificato, il proprio dispositivo all’interno della rete (sia dispositivo Windows, sia dispositivo iOS).
Per quanto riguarda il cloud ibrido, già dalla versione Windows Server 2012 era possibile ospitare un domain controller in una macchina virtuale di Windows Azure e trasferire così la gestione delle identità nel cloud. In Windows Server 2012 R2 questo aspetto è stato potenziato: attraverso, ad esempio, le nuove funzionalità degli Active Directory Federation Services, è stata migliorata l’integrazione fra Active Directory in Windows Azure (Windows Azure AD) e Active Directory in Windows Server (Windows Server AD), rendendo così molto più semplice collegare in modo coerente gli utenti della propria rete locale con gli utenti dei propri servizi che sono ospitati nel Cloud.
System Center 2012 nel Cloud OS
Il secondo pilastro del Cloud OS di Microsoft è System Center 2012 arrivato, lo scorso ottobre, alla release R2. System Center 2012 è un unico software composto da otto diversi componenti che permette di far raggiungere al proprio datacenter un più alto grado di efficienza, monitoraggio e automazione. System Center 2012 permette di rendere automatiche le attività più laboriose in un datacenter, crea e gestisce gruppi di risorse in Cloud, definisce ruoli e policy per l’accesso a servizi e applicazioni, monitora e gestisce le applicazioni e l’infrastruttura virtualizzata secondo i principi di cloud computing, estende il proprio datacenter verso servizi di Cloud pubblico o verso service provider. Il tutto in un’ottica di massima interoperabilità: System Center 2012 R2 gestisce anche datacenter eterogenei che, ad esempio, hanno delle risorse virtualizzate con prodotti VMware o Citrix o hanno server con sistemi operativi Linux.
Il software viene distribuito in due diverse edizioni: System Center 2012 R2 Datacenter Edition e System Center 2012 R2 Standard Edition. Entrambe le edizioni comprendono tutti e otto i componenti; l’unica differenza riguarda il numero di ambienti virtuali che si possono gestire: illimitati per l’edizione Datacenter, limitati a due per l’edizione Standard. Le licenze sono inoltre legate al numero di processori del server: è necessario acquistare una licenza ogni due processori per server.
Per analizzare questa soluzione, la cosa migliore da fare è analizzare in dettaglio ogni suo singolo componente suddividendo l’analisi in tre ambiti dell’infrastruttura: applicazioni, servizi e infrastruttura.
System Center 2012 R2: applicazioni
Immaginando gli ambiti di applicazione di System Center come in una sorta di pila alla cui base c’è il mondo fisico e virtualizzato del datacenter e, al livello più alto dell’infrastruttura – quello in cui opera l’utente che dovrà consumare le applicazioni – i componenti che si occupano della gestione delle applicazioni e della loro distribuzione, il livello delle applicazioni include due componenti: App Controller e Service Manager.
System Center 2012 App Controller R2
App Controller permette di abilitare le funzionalità di self serving delle applicazioni, dei servizi e delle virtual machine disponibili in un datacenter privato oppure in un datacenter pubblico basato su Windows Azure.
App Controller è, dal punto di vista operativo, un portale Web basato su Internet Information Services e Silverlight che rappresenta la prima linea di raccordo fra i reparti di business dell'azienda e il reparto IT. Il componente permette infatti agli utenti di un Cloud OS di creare istanze dei servizi configurati nel datacenter, di configurarle al momento del deploy e di distribuirle sia in un Cloud privato sia in un Cloud pubblico con Windows Azure. L'accesso è garantito dalla granularità dei ruoli configurati nel datacenter che consentono di suddividere in modo molto specifico permessi e quote.
Attraverso App Controller gli utenti aziendali non solo possono usufruire in autonomia dei servizi e delle virtual machine configurate nel datacenter, ma anche visualizzare il loro stato, la loro composizione, la quota utilizzata, è possono fermare o avviare virtual machine o collegarsi ad esse in desktop remoto, scorrere la libreria dei profili e dei servizi.
System Center 2012 Service Manager R2
Service Manager è un il cuore di ogni processo che riguarda l'IT e i servizi all'interno di un datacenter. Il suo compito è sostanzialmente rendere standard i processi IT all'interno di un'organizzazione, automatizzarli e fornire all'azienda strumenti self service per poter avviare, controllare o richiedere servizi.
Attraverso Service Manager si rendono operative le migliori pratiche di un reparto IT definite dal Microsoft Operations Framework (MOF) e dalle Information Technology Infrastructure Library (ITIL), come ad esempio l'Incident Management, il Release Management, il Change Management e così via. Service Manager gestisce inoltre il CMDB o Configuration Management Database, l'archivio centrale dell'intera infrastruttura IT. Il CMDB tiene traccia di tutti i componenti presenti all'interno di un'infrastruttura, ne tiene d'occhio le relazioni, traccia i cambiamenti avvenuti, conserva una knowledge base dei problemi, dei cambiamenti, degli incidenti avvenuti e così via.
Service Manager inoltre funziona anche da service desk. Dalla sua console è possibile segnalare incidenti, inoltrare richieste di servizi e interfacciarsi con il reparto IT attraverso moduli di richiesta basati su template predefiniti che assicurano procedure standard per tutti i processi.
System Center 2012 R2: servizi
Il livello dedicato alla distribuzione e all’automazione dei servizi, siano essi applicazioni o macchine virtuali, è quello in cui avvengono i processi più specifici di un datacenter basato sul Cloud OS.
System Center 2012 Orchestrator R2
Orchestrator organizza in flussi di lavoro processi e attività tipiche di un ambiente IT, anche non basati su software Microsoft, e li rende automatici. Conosciuto un tempo con il nome in codice Opalis, società acquisita da Microsoft nel 2009, è il componente che si occupa di gestire la maggior parte dei processi automatici all'interno di un'infrastruttura IT, sia essa basata su software Microsoft sia essa basata su software di altri produttori.
Un primo compito di Orchestrator è quello di reagire ad un incidente. Quando, in un’infrastruttura IT gestita attraverso System Center 2012 R2, Service Manager registra un incidente, può invocare un'attività in Orchestrator per verificare se può essere risolta in modo automatico. Non solo: grazie alla stretta integrazione di tutti i componenti di System Center 2012 Orchestrator può, tra l'altro, monitorare eventi in Operations Manager, componente che vedremo più avanti, oppure lo stesso Operations Manager può invocare un'attività in Orchestrator.
Oltre a questo, Orchestrator è in grado di creare server nel datacenter in modo automatico, configurare virtual machine, gestire database e così via. Tutto ciò è possibile grazie a particolari componenti chiamati runbook: set di attività che vengono eseguite, una per una, automaticamente e in successione. Le attività sono le più disparate: riavviare un sistema o un servizio, eseguire un programma, eseguire uno script, controllare lo spazio su disco, comprimere o copiare file, inviare email, confrontare informazioni e così via. Quasi un centinaio di attività sono già integrate nell'installazione standard, mentre altre possono essere aggiunte successivamente attraverso delle estensioni chiamate Integration pack dedicate a uno specifico prodotto o ad una tecnologia. La creazione dei runbook è estremamente semplice: si possono disegnare attraverso il Runbook Designer che consente, anche senza scrivere una sola linea di codice, di creare flussi di attività utilizzando un drag and drop del mouse e avendo sotto controllo, attraverso semplici icone, tutti i task coinvolti nel processo.
System Center 2012 R2: infrastruttura
Il livello dedicato all’infrastruttura è il più basso ed è dedicato all’interazione con l’hardware sottostante.
System Center 2012 Virtual Machine Manager R2
Virtual Machine Manager (conosciuto anche come VMM) crea e gestisce macchine virtuali basate su tecnologie Microsoft (Hyper-V), Citrix e VMWare. VMM permette inoltre di creare i “modelli di servizio”, o service template: modelli preconfigurati che, includendo tutte le caratteristiche del servizio (dall’hardware ai pacchetti applicativi), ne permettono una facile distribuzione attraverso procedure self-service.
VMM organizza e gestisce direttamente l'hardware, virtualizzato o no, che compone il datacenter, crea Cloud basate su determinate capacità e funzionalità, gestisce servizi e virtual machine ed esegue diverse altre operazioni che toccano il cuore della gestione di un datacenter. Dalla sua elegante e semplice interfaccia basata sul ribbon, che ne aumenta l'usabilità, VMM rende semplice l’organizzazione delle virtual machine in un'unica struttura omogenea dalla quale servire applicazioni.
VMM permette di includere nel datacenter macchine bare-metal (senza sistema operativo) in modo automatico: le accende, configura le partizioni, vi installa sistema operativo e driver e le include nel dominio. Supporta, oltre agli hypervisor di Microsoft e VMWare, anche Citrix Xen, è in grado di gestire Load Balancer, può interfacciarsi direttamente con lo storage attraverso il protocollo SMI-S, può creare reti logiche.
Tra le altre cose, da VMM è possibile spostare virtual machine su server diversi in base ai carichi di lavoro e alle opzioni stabilite dal gestore del datacenter, è possibile spegnere server fisici liberi da compiti, risparmiando energia e inquinando di meno, è possibile creare e gestire cluster Hyper-V o clonare macchine virtuali.
System Center 2012 Operations Manager R2
Operations Manager monitora le applicazioni e altri aspetti del livello delle applicazioni intervenendo automaticamente quando rileva problemi. È il componente che monitora l’infrastruttura, siano essi server fisici Windows, Linux o Unix, server virtuali, intere Cloud o anche, dalla versione 2012, singoli apparati di rete. Monitora anche le applicazioni dal punto di vista delle funzionalità interne e delle performance percepite dagli utenti. I dati possono essere visualizzati attraverso dei piccoli box di contenuto chiamati widget organizzati in dashboard che si creano attraverso wizard passo per passo.
Operations Manager si basa su una combinazione di agent e management pack. Gli agent sono servizi installati (automaticamente o manualmente) sui diversi componenti che Operations Manager deve monitorare. Gli agent raccolgono le informazioni sullo stato del server e dei servizi, creano avvisi, collezionano dati e inviano tutto al management server di Operations Manager ad intervalli definiti da specifiche regole. Ciò che gli agent devono fare è specificato da istruzioni contenute in strumenti di configurazione chiamati management pack. Distribuiti gratuitamente o, più raramente, a pagamento, sono differenti per ogni tecnologia cui devono applicarsi e contengono tutte le logiche per il monitoraggio, il reporting e l'esecuzione di determinate attività.
System Center 2012 Configuration Manager R2
Configuration Manager permette di configurare l’infrastruttura, applicare patch di sicurezza e garantire la sicurezza e conformità della distribuzione dei servizi. Il componente può essere considerato, con una definizione sintetica, un prodotto per l’asset management e si occupa, quindi, di gestire i computer all’interno del datacenter, di fare inventario hardware e software e di distribuire applicazioni.
Una delle caratteristiche peculiari di Configuration Manager è quella di gestire la sicurezza dei dispositivi, la loro conformità alle policy aziendali e, soprattutto, l’uso e la gestione delle applicazioni. Quello che distingue la soluzione di Microsoft rispetto ai concorrenti è l’approccio alla gestione dei dispositivi e dei client connessi: non più una gestione basata esclusivamente sul singolo dispositivo, ma basata sull’utente che lo utilizza (quella che Microsoft chiama People Centric IT management). Ciò si raggiunge in primo luogo ampliando il numero di dispositivi supportati, che comprendono naturalmente anche i più recenti smartphone e tablet e, in secondo luogo, distribuendo applicazioni e patch di sicurezza controllando automaticamente non solo le caratteristiche di ogni singolo dispositivo, ma raccogliendo informazione sull’utente, sulle applicazioni che ha già installato, sulla banda che utilizza, sul luogo in cui si trova.
System Center 2012 Data Protection Manager R2
Data Protection Manager garantisce la sicurezza centralizzata delle risorse nel datacenter gestendo i backup e il ripristino dei sistemi. Il componente fornisce le più complete ed efficienti soluzioni di business continuity e disaster recovery per diversi prodotti come database SQL, macchine virtuali, database Exchange e altri prodotti Microsoft. Le sue funzionalità sono in grado di preservare la qualità del servizio di un datacenter ripristinando velocemente dati persi o corrotti. Data Protection Manager si integra perfettamente all’interno della suite System Center 2012 ed è in grado di attivare automaticamente, in base alle informazioni ricevute dagli altri componenti, procedure di recupero delle informazioni che sono state perse o danneggiate.
Data Protection Manager, che offre un pannello di gestione centralizzata di tutte le operazioni e può essere gestito interamente anche attraverso script Powershell, permette di salvare e recuperare dati su disco o su nastri. Uno dei principali vantaggi di questo componente, oltre alla semplicità di configurazione, è la granularità delle tipologie di protezioni che può attivare all’interno di un datacenter. Data Protection Manager fornisce protezioni su singoli file (siano essi semplici cartelle, cartelle condivise o intere partizioni), su singoli dati di applicazioni, come ad esempio i singoli database di SQL, file e applicazioni di server in cluster, virtual machine oppure interi host Hyper-V (anche se le virtual machine sono state spostate su un altro host dopo una Live Migration).
Le modalità di backupsono le più varie: backup completi, incrementali, differenziali fino a backup bare-metal che sono in grado di ripristinare un sistema senza dover prima installare un sistema operativo sulla macchina da recuperare. Estremamente flessibili anche le possibilità di scelta dei luoghi di backup: oltre ai backup disk-to-disk, si può decidere se salvare i backup sul cloud storage di Windows Azure oppure se replicare i backup su un altro server DPM off site in modo da poter recuperare dati anche quando il problema coinvolge l’intero datacenter.
Windows Azure nel Cloud OS
L’ultimo componente del Cloud OS di Microsoft è Windows Azure, la piattaforma di servizi cloud aperta e flessibile introdotta sul mercato nel febbraio 2010 e andatasi via via arricchendo di servizi e funzionalità. Nata inizialmente come piattaforma puramente PaaS, ossia come piattaforma per la distribuzione di applicazioni, dal luglio 2012, e poi con la general availability di aprile 2013, consente anche di creare ed eseguire macchine virtuali, abilitando in questo modo le funzionalità di infrastruttura (IaaS, Infrastructure as a Service).
Windows Azure abbina dunque le capacità di infrastruttura e le capacità di piattaforma, tutto in un’unica soluzione, permettendo così non solo di sviluppare applicazioni fortemente integrate con servizi cloud, ma anche di creare ed eseguire macchine virtuali per estendere il proprio datacenter fisico verso il Cloud, creare applicazioni ibride che abbiano back-end sul Cloud, eseguire e ripristinare backup di piccoli o grandi archivi e così via.
Windows Azure è inoltre una piattaforma aperta, compatibile con sistemi Microsoft, ma anche con sistemi Linux o open source. Offre supporto per diversi linguaggi (.NET, Java, Node.js, Python, Php), si integra con database, SQL, No SQL o Hadoop, ha un supporto e livelli di servizio eccellenti e, soprattutto, è stata progettata partendo dall’esperienza ventennale di Microsoft nello gestire servizi online, dal sistema di posta elettronica Hotmail ai servizi di gaming online di Xbox Live. Inoltre i pannelli di configurazione sono i più usabili che si possono trovare sul mercato, rendendo del tutto semplice la vita a sviluppatori e amministratori.
In questo articolo, dedicato alla descrizione del Cloud OS di Microsoft, ci soffermeremo soprattutto sugli aspetti di infrastruttura di Windows Azure, lasciando, alla fine, lo spazio per la descrizione delle altre funzionalità.
Azure come IaaS
Sono due i servizi principali di Windows Azure dedicati alle infrastrutture IaaS: Macchine Virtuali e Rete Virtuale. Il primo serve per creare nel Cloud macchine virtuali Windows o Linux o distribuire macchine virtuali esistenti nella propria infrastruttura; Rete virtuale serve invece per creare all’interno di Windows Azure una sezione logica isolata di macchine e collegarla ad un datacenter locale o a una singola macchina cient.
Macchine Virtuali
Macchine virtuali di Windows Azure consente di eseguire nel Cloud server che possono essere gestiti e configurati secondo le esigenze dell’azienda o dell’IT. Il servizio permette, in primo luogo, di costruire da zero un’infrastruttura virtualizzata senza dover necessariamente sostenere i costi dell’acquisizione dell’hardware. In secondo luogo, il servizio permette di estendere il proprio datacenter privato quando si presenta la necessità di avere nuovi server o nuove applicazioni. In entrambi i casi, l’infrastruttura che si crea sfrutta tutte le caratteristiche di cloud computing della piattaforma Azure in termini di elasticità, scalabilità, qualità del servizio e gestione.
Le macchine virtuali possono essere create a partire da un’immagine preconfigurata di sistema operativo (Windows o Linux) oppure caricando sulla piattaforma il proprio file vhd con un sistema già installato e configurato. Le macchine virtuali possono essere di otto taglie diverse (da core condiviso e 768 MB di memoria a 8 core e 56 GB di memoria) e possono essere distribuite in un datacenter scelto fra otto diverse alternative (due in Europa, due in Asia, quattro negli Stati Uniti).
Fondamentale per la creazione di un Cloud ibrido è comprendere che la virtualizzazione di Windows Azure è la stessa che si può trovare su Windows Server 2012. Questo significa non solo che i file vhd che si intende caricare sulla piattaforma cloud non hanno bisogno di nessuna conversione o adattamento, ma anche che è possibile eseguire anche il percorso inverso: creare una macchina virtuale su Azure e, una volta che la si intende portare nel datacenter, scaricare il file vhd ed eseguirlo all’interno di Windows Server 2012.
Le macchine virtuali così create possono essere macchine isolate, possono essere incluse in un medesimo cloud service, in modo da poter abilitare su di esse le funzionalità di bilanciamento del carico (gratuito), e possono essere inoltre collegate ad una rete virtuale in modo da consentire una comunicazione diretta fra loro e fra loro e il datacenter aziendale.
Naturalmente le macchine virtuali sono veri e propri server eseguiti nel Cloud. Possono essere gestiti attraverso comandi remoti Powershell, attraverso connessioni di desktop remoto, attraverso il Server Manager di Windows Server 2012 R2 oppure attraverso System Center. Nel caso la macchina creata fosse un server Linux, si potranno eseguire configurazioni anche attraverso connessioni SSH.
Una macchina virtuale in Windows Azure può ospitare ruoli specifici di Windows Server come, ad esempio, Active Directory per la gestione delle autenticazioni e autorizzazioni degli utenti, Server DNS, Server Web, servizi di Desktop remoto e così via. Per impostazione predefinita, Macchine Virtuali di Windows Azure include una licenza per l'utilizzo di Windows Server, mentre alcune delle immagini disponibili su Windows Azure sono già configurate per eseguire alcuni dei software Microsoft più diffusi: Sharepoint, SQL Server e Biztalk Server.
Reti virtuali
Reti virtuali di Windows Azure è il potente strumento con cui creare, all’interno di Azure, infrastrutture di rete che possano estendersi dal Cloud al datacenter privato. Grazie a questo servizio diventa così possibile connettere una rete on premise ad una rete di server nel Cloud, sia con configurazione client (point-to-site) sia con configurazione server (site-to-site), utilizzando connessioni sicure IPSec. Ma non solo. Grazie alle reti virtuali è possibile creare una virtual private network (VPN) dedicata; isolare servizi e applicazioni in modo da aumentare la sicurezza e semplificare la gestione delle credenziali di autenticazione; configurare dei server DNS per garantire servizi di risoluzione dei nomi.
La creazione di una rete virtuale, come del resto tutte le funzionalità di Windows Azure, è abilitata grazie ad un wizard passo per passo estremamente semplificato (in figura).
Altri servizi
Accanto a questi servizi più propriamente infrastrutturali, Windows Azure mette a disposizione dell’IT un gran numero di altri servizi indirizzati alla distribuzione e alla gestione di applicazioni e dati. I servizi sono srutturati in quattro grandi aree: Calcolo, Data Services, Servizi App e Rete.
Calcolo
All’ambito del calcolo afferiscono tutti i servizi che sono destinati ad ospitare applicazioni o estensioni di applicazioni. Al centro ci sono i Servizi Cloud, le funzionalità che definiscono tutti i componenti di un’applicazione o un servizio da distribuire attraverso Windows Azure (il vero e proprio PaaS). Siti Web fornisce un dominio personalizzato per eseguire un’applicazione Web, sia essa scritta in proprio utilizzando uno dei tanti linguaggi supportati (ASP.NET, PHP, Node.js, Python o Classic ASP) oppure creata attraverso modelli di applicazioni (WordPress, Umbraco, DotNetNuke, Drupal) o framework (Django, CakePHP, Express). Servizi Mobile è invece un set di servizi completo destinato a supportare lo sviluppo di applicazioni per dispositivi mobile, siano essi Windows, Android, iOS oppure compatibili con HTML5.
Data services
Sono tutti i servizi dedicati all’archiviazione di dati e informazioni sul Cloud. Il servizio principale è Archiviazione, indirizzato sia ad ospitare in una configurazione di Cloud ibrido dati aziendali di un’infrastruttura on premise, sia dati di applicazioni o servizi. Il tutto in un’infrastruttura geo-ridondata ad altissima efficienza. Tra i Data services troviamo anche le istanze di SQL Server nel Cloud (chiamato Database SQL di Windows Azure), il database relazionale destinato a conservare dati delle proprie applicazioni aziendali, mobile o web anche in una configurazione ibrida. Completano l’offerta HDInsight, per la gestione dei big data, Cache, per l’accesso a dati a bassa latenza, Backup, per la gestione semplice dei backup aziendali nel Cloud, e Gestione ripristino Hyper-V, un motore di orchestrazione che monitora lo stato di salute di un Cloud privato e, in caso di disastro di tale datcenter, attiva un Cloud privato replicato e parallelo.
Servizi app
Sono tutti i servizi dedicati allo sviluppo di applicazioni moderne. Tra questi servizi troviamo i Media Services, con cui gestire servizi multimediali ad alta diffusione (come i video), i Service Bus, l’infrastruttura di messaggistica per collegare le applicazioni e i servizi che risiedono nel datacenter locale con le applicazioni e i servizi che risiedono nel Cloud, i servizi di Active Directory, per la gestione di autenticazione e autorizzazione degli utenti, l’Autenticazione a più fattori, che aggiunge al semplice login servizi di autenticazione basati su messaggi SMS, chiamate telefoniche o codici “usa e getta”, l’Hub di notifica, per la gestione delle notifiche push, l’Utilità di pianificazione, per la gestione di azioni da eseguire via HTTP o HTTPS in base ad una programmazione periodica. All’interno dei servizi app troviamo anche il nuovo servizio Visual Studio Online, attualmente in preview. Una piattaforma collaborativa per lo sviluppo di applicazioni che offre tutto ciò che serve oggi agli sviluppatori per creare applicazioni moderne: collaborazione in team, controllo delle versioni del codice, debug, test di carico e così via.
Rete
Oltre ai servizi di reti virtuali, che abbiamo già analizzato, tra i servizi di networking di Windows Azure troviamo il Traffic Manager, il componente che, attraverso il bilanciamento del traffico fra i diversi servizi Azure, permette di aumentare disponibilità e reattività dell’applicazione.