10

Feb

Windows Azure – Platform Overview pt.1

Cos’è il Cloud Computing

Cominciamo con il dire che la definizione che Microsoft dà al Cloud Computing, non sempre mi convince: perciò la sostituisco. Secondo me il Cloud Computing è:

“un modello di accesso e fruizione delle risorse IT basato sul consumo invece che basato sull’ownership e/o sul noleggio delle apparecchiature hardware, del software e del middleware. “

Questo perchè condizione necessaria affinchè il Cloud sia Cloud, è che non esista il concetto di ownership di una risorsa, di controllo diretto della stessa E il modello di pricing/billing deve essere equiparato alle public utilities (che tanto per intenderci sono le bollette). C’è anche chi dice che il Cloud “dovrebbe” essere un set di strumenti standardizzati che offrono risorse di calcolo, di storage etc in via uniforme: ma questa visione, seppur condivisibile è solo una visione immaginaria dello scenario odierno del Cloud Computing.

Un’altra condizione necessaria perchè il Cloud sia Cloud è che sia scalabile by design: ovvero analogamente alle public utilities, dove se ho oggi bisogno di elettricità 1 e domani 100, questo deve essere possibile anche con la computazione. Spesso faccio l’esempio che se l’elettricità non fosse “cloud” nessuno potrebbe permettersi un generatore di corrente fisso in casa, oppure un contratto di erogazione continua di energia elettrica. Primo perchè dovrebbe essere dimensionata sul picco, secondo perchè i costi sarebbero invece fissi nonostante il reale utilizzo. Perciò se ben ci sovviene il perchè della necessità delle bollette “a consumo”, dovrebbe essere più facile convincersi che anche per l’IT questo potrebbe essere un bene.

image

Il grafico qui sopra evidenzia bene quali siano le problematiche di un sistema IT, che per ovvie ragioni (ovvie in un ambito web o consumer) non può prevedere il suo carico o non ci sta a dover pagare per un picco che se si verificherà, probabilmente inciderà sul tempo totale di messa in opera di pochè cifre percentuali. Da cui sarebbe meglio che le risorse si allochino e disallochino all’occorrenza, e si paghi solo l’effettivo consumo (come sotto).

image

In generale, i patterns in cui ha senso utilizzare un modello Cloud sono i seguenti:

  • On and Off: la risorsa passa a un periodo di utilizzo ad uno di completo non utilizzo. Ad esempio un servizio di condivisione documenti di aiuto alla didattica, ha senso sia in funzione 5/7 per circa 8/24.
  • Growing fast: la risorsa è soggetta a dinamiche virali, è una applicazione web consumer e/o è soggetta a crescita esponenziale; da cui è necessario poter scalare velocemente.
  • Unpredictable bursting: la risorsa è sempre utilizzata in un intervallo di confidenza abbastanza certo; tuttavia, durante alcuni eventi, possono verificarsi picchi che ci costringerebbero preallocare inutili risorse tampone.
  • Predictable bursting: la risorsa ha un modello di utilizzo periodico ma “a molla” perciò è sensato allocare/deallocare periodicamente risorse computazionali.

Windows Azure

In tutto questo Windows Azure offre un servizio principalemente PaaS; infatti il SaaS di Microsoft è noto come BPOS o Office 365 e lo IaaS non esiste ancora, se non in fase di sviluppo con la VM Role di Windows Azure. Quindi nei servizi Cloud possiamo discernere tra:

  • SaaS: è un software a tutti gli effetti, tariffato ed erogato nell’ottica di una utilities. In italia è il vecchio ASP (Application Service Provisioning)
  • PaaS: è un middleware che permette di astrarre l’infrastruttura sottostante lo strato applicativo
  • IaaS: è fisicamente tutta la struttura IT di cui si ha bisogno

Un buon grafico che riassume le funzioni SaaS, PaaS e IaaS è qui sotto:

image

Quindi, il PaaS Windows Azure offre:

  • Un servizio di computazione per l’hosting di applicazioni web e processi batch (Windows Azure Compute)
  • Un servizio di storage dei dati via REST (Windows Azure Storage)
    • Accesso a file (Blobs)
    • Accesso a strutture dati (Tables)
    • Code asincrone (Queues)
    • Accesso NTFS (Azure Drive)
  • Un servizio di Content Delivery (Azure CDN)
  • Un servizio di controllo accessi
  • Un service bus

Inoltre c’è SQL Azure (che è un vero e proprio database relazionale) di cui discuteremo in seguito.

by Roberto Freato on 2/10/2011
Post archive