Ma quanto costa Windows Azure ? 2a parte

Adesso che abbiamo capito quanto ci costa la computazione su Windows Azure (e non solo perchè abbiamo anche un pò di storage), vediamo di capire gli altri componenti. Per il momento abbiamo deciso che tipo di risorse in termini di processore, ram e spazio su disco ci servono. Prima di capire quanto ci costa il resto è importante capire cosa succede quando facciamo il deployment di una nostra soluzione.

Prima di tutto attiviamo una subscription con il nostro Windows Live ID (https://www.microsoft.com/windowsazure/offers/ , le vedremo nel dettaglio più avanti) e all’interno del portale chiediamo ad Azure di creare un nuovo servizio hosted:

image

A questo punto possiamo fare il deployment della nostra soluzione all’interno del servizio hosted appena creato (alla fine di questa serie di post dedicata al costo spiegherò nel dettaglio tutto il processo, per il momento fidatevi Smile). Insieme al nostro packaged che carichiamo sul portale per iniziare il deployment della nostra applicazione esiste un file di configurazione che dice ad Azure che tipo di istanza abbiamo bisogno (vedi la prima parte del post). In realtà esistono due file di configurazione, uno legato alla definizione del servizio e uno alla sua configurazione. All’interno di quello per la definizione del servizio troviamo un paramentro (vmsize) che di fatto definisce che tipologia di istanza vogliamo (piccola, media, etc). Nel secondo file invece diciamo ad azure quante istante vogliamo in esecuzione (count). Immaginiamo per esempio di aver impostato il parametro vmsize=”Small” e il parametro count=”3” ci ritroveremo nell’esempio scelto per la parte uno di questo post. A questo punto il Fabric Controller di Windows Azure sistemerà tutte le cose per noi:

  1. Cercherà N server con le risorse che abbiamo chiesto (dove N è uguale a 3 perchè per fault tollerance non potrà caricare 3 VM sullo stesso server Smile)
  2. Caricherà su questi server una VM base con Windows Server 2008 R2
  3. Caricherà all’interno di questi server il nostro package (Azure utilizza il meccanismo di Virtual Machin Diff per gestire di fatto due file, uno il VHD originale del sistema operativo e uno che ha al suo interno le differenze legate al nostro package)
  4. Manderà in esecuzione la nostra applicazione
  5. Comincerà a contare le ore per farci pagare tutto questo lavoro Smile

Torniamo a noi quindi, adesso abbiamo un applicazione base (diciamo un sito web) che risponde con 3 frontend ognuno dei quali ha un processore e 1,75Gb di RAM.

Storage

Windows Azure mette a disposizione un sistema di memorizzazione chiamato Storage. In realtà mette a disposizione degli sviluppatori quattro tipi di storage diversi : blob, table, queue, drive. Per il momento ci interessa sapere che possiamo scrivere qualcosa da qualche parte e che tutto questo rispetta la scalabilità della nostra applicazione (i 3 frontend scrivono e leggono dagli storage senza neanche sapere dove fisicamente i dati vengono memorizzati). Il costo dello storage dipende da due fattori: lo spazio usato e il numero di transazioni fatte:

image

Quindi paghiamo 0,1064€ al mese per ogni GB di spazio utilizzato e 0,0071 per ogni 10.000 transazioni che la nostra applicazione farà sugli storage. Attenzione : qualunque operazione fatta sullo storage viene considerata una transazione quindi evitate di fare loop infiniti su una coda per aspettare un messaggio in arrivo Smile)

Se però ci ricordiamo, nel post precedente abbiamo scoperto che acquistando un istanza computazionale un pò di storage era compreso nel prezzo. Quindi , all’interno per esempio di un istanza piccola abbiamo 225 GB di spazio storage da utilizzare entro il quale pagheremo solo le transazioni fatte.

Abbiamo un sito web che risponde attraverso 3 frontend e abbiamo 756GB di spazio disco da utilizzare per 190€ al mese, non male direi !!!

Ora, prima di proseguire con il Database vediamo di scoprire come facciamo a capire quanto stiamo pagando !!!

Collegandoci con il nostro Windows Live ID a questo portale https://mocp.microsoftonline.com/site/default.aspx entriamo nella gestione finanziare della nostra sottoscrizione. Tra le tante cose che possiamo fare abbiamo la possibilità di visualizzare costa sta accadendo al billing della nostra sottoscrizione Azure.

image

Cliccando su visualizza fatture possiamo guardare il dettaglio di ogni subscriptio e scoprire cosa stiamo pagando e perchè (funzionalità abbastanza utile Smile). Qui sotto trovate il dettaglio della mia sottoscrizione (che sto pagando solo per fare questo post quindi dovreste almeno ringraziarmi !!!! ).

image

Quindi ad oggi da quello che posso capire sto pagando 32,51€ per la parte di computazione e storage, niente per SQL Azure e niente per la banda che sto utilizzando (lo vederemo pià avanti). Se apro il dettaglio del Windows Azure Usage Charges posso trovare tutti i dettagli che mi servono.

image

Qui posso capire che nella sottoscrizione che ho fatto erano comprese 25 ore di computazione e che io ne sto usando 382 e quindi devo pagare l’eccedenza. Vedo anche che a in termini di transazioni non sto pagando niente e sono ben lontanto dal limite.

Attraverso questo meccaniscmo di billing posso capire esattamente cosa succede alla mia applicazione quindi mettendola sotto stress per qualche giorno (magari usando Visual Studio 2010)  potremmo capire esattamente quanto potrebbe costare l’applicazione e quindi farci un idea del prezzo a cui dovremmo venderla. In questo momento il team di Azure sta sviluppando della API apposite per accedere ai dati di billing e permettere agli sviluppatori per esempio di definire comportamenti diversi della propria applicazione a seconda del consumo delle risorse.

Finisco il post in fretta e vado a distruggere il mio deployment su Azure altrimenti mi tocca continuare a pagare Smile