Your SlideShare is downloading. ×
0
Windows Azure Overview<br />Fabio Cozzolino<br />DOTNETSIDE<br />11/12/2009<br />
Cloud computing<br />Qualcosadaqualche parte<br />Letteralmente “nuvola”<br />Perchè ne abbiamobisogno?<br />Applicazioni ...
Cos’è Windows Azure?<br />“A framework that allows you to scale from 10 users to 10 million users without additional codin...
Unapiattaformadi:<br />Hosting diApplicazioni<br />Lights-out service management<br />Storage ad altascalabilità<br />E’ p...
Agenda<br />The road to the Cloud<br />Windows Azure Storage<br /><ul><li>Blobs
Queues
Tables</li></ul>Cloud Development<br />Windows Azure platform AppFabric<br />SQL Azure<br />
Windows Azure Storage<br />Tables<br />Fornisceuno storage strutturato dove unatabella è compostada un set dientitàedognie...
Richiedere la creazionediuno Storage Accountunivoco<br />Possibilitàdiscegliere la posizionegeografica<br />“US Anywhere”,...
Windows Azure Portal – Projects<br />
Windows Azure Portal – Nuovo Servizio<br />
Windows Azure Portal<br />
Windows Azure<br />Tables<br />
Windows Azure Tables<br />Structured Storage<br />Tabelle ad altascalabilità<br />Billionidientità (rows) e TBs didati<br ...
Table Storage Concepts<br />Entities<br />Tables<br />Accounts<br />Email  =…<br />Name = …<br />Authors<br />Email  =…<br...
Table Data Model<br />Table<br />Uno Storage Account puòcrearepiùtabelle<br />Lo scope diunatabella è relativoall’accountd...
Required Entity Properties<br />PartitionKey & RowKey<br />Identificanounivocamenteunaentità<br />Definisconol’ordinamento...
PartitionKey e Partitions<br />PartitionKey<br />Utilizzata per raggruppare le entità in unapartizione<br />Unapartizioned...
Table Operations<br />Table<br />Create<br />Query<br />Delete<br />Entities<br />Insert<br />Update <br />Merge – Partial...
Table Schema<br />Define the schema as a .NET class<br />   [DataServiceKey(&quot;PartitionKey&quot;, &quot;RowKey&quot;)]...
Windows Azure Tables<br />Demo<br />
Scalable Partition<br />A cosa mi servono diverse PartitionKeys?<br />Inseriscol’Account name come Partition Key  <br />In...
Solution 1<br />Singolapartizione – Tutta la tabella è su un unico server<br />Di conseguenzatutte le richiesteverrannoges...
Solution 2<br />Partizioniamo per categoria<br />Consentiamo al sistemadibilanciareilcaricodellepartizionipiùrichieste<br ...
Windows Azure<br />Queues<br />
Windows Azure Queues<br />Le code risultanoefficienti, ad altadisponibilità e consentonol’inviosicuroedaffidabiledimessagg...
Queue Operations<br />Queue<br />Create Queue<br />Delete Queue<br />List Queues<br />Get/Set Queue Metadata<br />Messages...
Queue Storage Concepts<br />Messages<br />Queues<br />Accounts<br />bookId: 1http://...<br />bookmsgs<br />bookId: 2 http:...
Account, Queues and Messages<br />Un Account puòcrearepiù code<br />Il nomediuna coda è relazionatoall’account (scope)<br ...
Removing Poison Messages<br />Producers<br />Consumers<br />C1<br />P2<br />1. GetMessage(Q, 30 s)  msg 1<br />2<br />1<b...
Removing Poison Messages<br />Producers<br />Consumers<br />1<br />1<br />C1<br />P2<br />1. GetMessage(Q, 30 s)  msg 1<b...
Removing Poison Messages<br />Producers<br />Consumers<br />1. Dequeue(Q, 30 sec)  msg 1<br />5. C1 crashed<br />10.  C1 ...
Windows Azure Queues<br />Demo<br />
Windows Azure<br />Blobs<br />
Windows Azure Blob Storage<br />Fornisce la possibilità di memorizzare qualsiasi tipo files<br />Capacità di gestione dei ...
Blob<br />Container<br />Account<br />Blob Storage Concepts<br />PIC01.JPG<br />covers<br />BOOK1.XPS<br />PIC02.JPG<br />...
Blocks or Pages<br />Blob<br />Container<br />Account<br />Blob Storage ConceptsAdding Blocks and Pages<br />PIC01.JPG<br ...
Blob Containers<br />Possibilitàdiaverediversi blob containers<br />Blob Container<br />Un container è un set di blobs<br ...
Funzioni e caratteristichedei Blobs<br />Store Large Objects (100s of GBs in size)<br />Possibilitàdiassociaremetadati<br ...
Composizionedell’indirizzodei Blobs<br />Blob URL<br />http://&lt;Account&gt;.blob.core.windows.net/&lt;Container&gt;/&lt;...
Copia e Snapshot dei Blob (new)<br />CopyBlob<br />Copianellostesso storage account <br />Rename (copia e rimuovi)<br />Sn...
Windows Azure Blobs<br />Demo<br />
Content Delivery Network (new)<br />Accessoai blobs utilizzandoilproprionomedidominio:<br />http://account.blob.core.windo...
Windows Azure XDrive<br />Fornisce un volume NTFS per l’utilizzo in applicazioni Windows Azure<br />Affidabilità e manteni...
Windows Azure<br />Hosted Services<br />
From “On-Premises” to “in-the-cloud”<br />Le attuali applicazioni vengono definite “On-Premises”<br />Se abbiamo ben svilu...
Web vs Worker Role<br />Worker Role<br />Web Role<br />System Host<br />IIS Host<br />Your Code<br />Your Code<br />
Roles<br />Role<br />Code<br />Configuration<br />
Development Fabric and Storage<br />Local Machine<br />Windows Azure Simulation Environment <br />Development Storage<br /...
Sviluppo Web in-the-cloud<br />Demo<br />
Application Deployment<br />
Application Deployment<br />
Windows Azure<br />AppFabric<br />
Windows Azure platform AppFabric<br />Access Control Service<br />Servizio per il controllo degli accessi<br />Gestione de...
AppFabric - Access Control Service<br />Tremodalitàdirilasciodi token<br />Plaintext<br />Nessunacriptazionerichiesta<br /...
Esempio di SWT<br />role=Admin%2cUser&<br />customerName=Contoso%20Corporation&<br />Issuer=https%3a%2f%2fadatum.accesscon...
Windows Azure platform AppFabric<br />Demo<br />
Windows Azure<br />SQL Azure<br />
SQL Azure<br />E’ praticamente SQL Server portato in-the-cloud<br />Accedo al database utilizzando TDS (Tabular Data Strea...
SQL Azure<br />
SQL Azure<br />
SQL Azure<br />
Windows Azure Tools<br />Azure Storage Explorer<br />http://azurestorageexplorer.codeplex.com/<br />Cloud Storage Studio<b...
Windows Azure, The Next Few Weeks<br />Feb<br /><ul><li>Paid usage</li></ul>Jan<br /><ul><li>Commercial platform</li></ul>...
Upcoming SlideShare
Loading in...5
×

Community Tour 2009 Windows Azure Overview

1,077

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,077
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Community Tour 2009 Windows Azure Overview"

  1. 1. Windows Azure Overview<br />Fabio Cozzolino<br />DOTNETSIDE<br />11/12/2009<br />
  2. 2. Cloud computing<br />Qualcosadaqualche parte<br />Letteralmente “nuvola”<br />Perchè ne abbiamobisogno?<br />Applicazioni ad altascalabilità in gradodiaccettare un alto numerodiutenticontemporanei<br />Zero Downtime<br />Load Balancing automatico<br />Platform as a Service<br />Non mi preoccupodell’hardware<br />Pago quellocheconsumo<br />
  3. 3. Cos’è Windows Azure?<br />“A framework that allows you to scale from 10 users to 10 million users without additional coding” Ray Ozzie - Microsoft Chief Software Architect<br />
  4. 4. Unapiattaformadi:<br />Hosting diApplicazioni<br />Lights-out service management<br />Storage ad altascalabilità<br />E’ progettato per:<br />Ridurreicostitotalidigestione<br />E’ pronto per:<br />Applicazioni Business-critical<br />Adozionedi patterncomplessi<br />Cos’è Windows Azure?<br />
  5. 5. Agenda<br />The road to the Cloud<br />Windows Azure Storage<br /><ul><li>Blobs
  6. 6. Queues
  7. 7. Tables</li></ul>Cloud Development<br />Windows Azure platform AppFabric<br />SQL Azure<br />
  8. 8. Windows Azure Storage<br />Tables<br />Fornisceuno storage strutturato dove unatabella è compostada un set dientitàedognientitàda un set diproprietà<br />Queues<br />Fornisceuno storage affidabile e la possibilitàdiinviare e riceveremessaggi per le nostre applicazioni<br />Blobs<br />Fornisceun’interfacciasemplificata per memorizzare files edeventualmentemetadatiassociati<br />Drives<br />Fornisce un volume didati NTFS duraturo per l’utilizzo in applicazioni Windows Azure<br />
  9. 9. Richiedere la creazionediuno Storage Accountunivoco<br />Possibilitàdiscegliere la posizionegeografica<br />“US Anywhere”, “US North Central”, “US South Central”, <br />Can co-locate storage account with compute account<br />Creazionediuna secret key a 256 bit<br />CapacitàdiunoStorage Account Capacity<br />Fino a 100 TB per Storage Account<br />Limit di 5 storage accounts per subscription <br />Windows Azure Storage Account<br />
  10. 10. Windows Azure Portal – Projects<br />
  11. 11. Windows Azure Portal – Nuovo Servizio<br />
  12. 12. Windows Azure Portal<br />
  13. 13. Windows Azure<br />Tables<br />
  14. 14. Windows Azure Tables<br />Structured Storage<br />Tabelle ad altascalabilità<br />Billionidientità (rows) e TBs didati<br />Possibilitàdiutilizzodipiù server al cresceredellerichieste<br />Highly Available & Durable<br />I dativengonoreplicatinellostesso data store e (dafebbraio) in datastoregeograficamentedistribuiti<br />Semplicitiàdiutilizzodelle API<br />ADO.NET Data Services – .NET 3.5 SP1<br />Classi .NET e LINQ<br />REST<br />
  15. 15. Table Storage Concepts<br />Entities<br />Tables<br />Accounts<br />Email =…<br />Name = …<br />Authors<br />Email =…<br />Name = …<br />library<br />Pages =…<br />Title = …<br />Books<br />Pages =…<br />Title = …<br />
  16. 16. Table Data Model<br />Table<br />Uno Storage Account puòcrearepiùtabelle<br />Lo scope diunatabella è relativoall’accountdiappartenza<br />Set dientitità (i.e. rows)<br />Entity<br />Set diproprietà (colonne)<br />Required properties<br />PartitionKey e RowKey<br />Identificanounivocamenteunaentità<br />Definisconol’ordinamento<br />Utilizzate per scalarel’applicazione<br />Timestamp<br />Read only<br />Optimistic Concurrency<br />
  17. 17. Required Entity Properties<br />PartitionKey & RowKey<br />Identificanounivocamenteunaentità<br />Definisconol’ordinamento<br />Utilizzate per scalarel’applicazione<br />Timestamp <br />Read only<br />Optimistic Concurrency<br />
  18. 18. PartitionKey e Partitions<br />PartitionKey<br />Utilizzata per raggruppare le entità in unapartizione<br />Unapartizioneditabelle<br />Raggruppatutte le entità con la stessa partition key<br />Singolaunitàdiscalabilità<br />Controllo del posizionamentodelle entity<br />Row key forniscel’univocitàall’internodiunapartizione<br />
  19. 19. Table Operations<br />Table<br />Create<br />Query<br />Delete<br />Entities<br />Insert<br />Update <br />Merge – Partial Update<br />Replace – Update entire entity<br />Delete<br />Query<br />Entity Group Transaction (new)<br />
  20. 20. Table Schema<br />Define the schema as a .NET class<br /> [DataServiceKey(&quot;PartitionKey&quot;, &quot;RowKey&quot;)]<br />publicclassBook<br /> {<br />///&lt;summary&gt;<br />/// Category is the partition key<br />///&lt;/summary&gt;<br />publicstringPartitionKey { get; set; }<br />///&lt;summary&gt;<br />/// Title is the row key<br />///&lt;/summary&gt;<br />publicstringRowKey { get; set; }<br />publicDateTime Timestamp { get; set; }<br />publicstring Author { get; set; }<br />publicintPages { get; set; }<br /> }<br />
  21. 21. Windows Azure Tables<br />Demo<br />
  22. 22. Scalable Partition<br />A cosa mi servono diverse PartitionKeys?<br />Inseriscol’Account name come Partition Key <br />Inseriscoiltitolodi un libro come RowKey, mi serve per ordinare la tabella<br />La categoriava in unaproprietàseparata<br />Ma…è scalabile?<br />
  23. 23. Solution 1<br />Singolapartizione – Tutta la tabella è su un unico server<br />Di conseguenzatutte le richiesteverrannogestiteda un unico server<br />…chiaramente non è scalabile<br />Client<br />Client<br />Request<br />Request<br />Request<br />Request<br />Server A<br />
  24. 24. Solution 2<br />Partizioniamo per categoria<br />Consentiamo al sistemadibilanciareilcaricodellepartizionipiùrichieste<br />E’ meglio … <br />Server A<br />Client<br />Client<br />Request<br />Request<br />Request<br />Request<br />Request<br />Request<br />Request<br />Request<br />Server B<br />
  25. 25. Windows Azure<br />Queues<br />
  26. 26. Windows Azure Queues<br />Le code risultanoefficienti, ad altadisponibilità e consentonol’inviosicuroedaffidabiledimessaggi<br />Sempliceedasincrono<br />Un messaggiopuòessereprocessatoalmenounavolta<br />Accesso via REST<br />
  27. 27. Queue Operations<br />Queue<br />Create Queue<br />Delete Queue<br />List Queues<br />Get/Set Queue Metadata<br />Messages<br />Add Message (i.e. Enqueue Message)<br />Get Message(s) (i.e. Dequeue Message)<br />Peek Message(s)<br />Delete Message<br />
  28. 28. Queue Storage Concepts<br />Messages<br />Queues<br />Accounts<br />bookId: 1http://...<br />bookmsgs<br />bookId: 2 http://...<br />fabstorage<br />http://...<br />…<br />http://...<br />
  29. 29. Account, Queues and Messages<br />Un Account puòcrearepiù code<br />Il nomediuna coda è relazionatoall’account (scope)<br />Una codacontienemessaggi<br />Nessunlimitedimessaggipresenti in una coda<br />E’ importanteimpostare un limite per la scadenzadi un messaggio<br />Messages<br />Dimensione &lt;= 8 KB<br />Utilizzarei blob o le entities per memorizzaredatididimensionimaggiori<br />Vieneconteggiatoilnumeroditentatividiletturadalla coda (dequeue)<br />
  30. 30. Removing Poison Messages<br />Producers<br />Consumers<br />C1<br />P2<br />1. GetMessage(Q, 30 s)  msg 1<br />2<br />1<br />1<br />1<br />1<br />1<br />2<br />1<br />3<br />4<br />0<br />3<br />0<br />1<br />1<br />2<br />1<br />1<br />0<br />2<br />0<br />C2<br />P1<br />2. GetMessage(Q, 30 s)  msg 2<br />
  31. 31. Removing Poison Messages<br />Producers<br />Consumers<br />1<br />1<br />C1<br />P2<br />1. GetMessage(Q, 30 s)  msg 1<br />5. C1 crashed<br />4<br />0<br />1<br />1<br />2<br />1<br />3<br />0<br />1<br />2<br />1<br />1<br />1<br />2<br />3<br />6. msg1 visible 30 s after Dequeue<br />2<br />1<br />C2<br />P1<br />2. GetMessage(Q, 30 s)  msg 2<br />3. C2 consumed msg 2<br />4. DeleteMessage(Q, msg 2)<br />7. GetMessage(Q, 30 s)  msg 1<br />
  32. 32. Removing Poison Messages<br />Producers<br />Consumers<br />1. Dequeue(Q, 30 sec)  msg 1<br />5. C1 crashed<br />10. C1 restarted<br />11. Dequeue(Q, 30 sec)  msg 1<br />12. DequeueCount &gt; 2<br />13. Delete (Q, msg1)<br />C1<br />P2<br />4<br />0<br />1<br />2<br />3<br />0<br />1<br />3<br />1<br />2<br />1<br />3<br />3<br />1<br />2<br />C2<br />P1<br />6. msg1 visible 30s after Dequeue<br />9. msg1 visible 30s after Dequeue<br />2. Dequeue(Q, 30 sec)  msg 2<br />3. C2 consumed msg 2<br />4. Delete(Q, msg 2)<br />7. Dequeue(Q, 30 sec)  msg1<br />8. C2 crashed<br />
  33. 33. Windows Azure Queues<br />Demo<br />
  34. 34. Windows Azure<br />Blobs<br />
  35. 35. Windows Azure Blob Storage<br />Fornisce la possibilità di memorizzare qualsiasi tipo files<br />Capacità di gestione dei blocchi<br />Due tipologie di Blobs<br />BlockBlob<br />PageBlob (new)<br />
  36. 36. Blob<br />Container<br />Account<br />Blob Storage Concepts<br />PIC01.JPG<br />covers<br />BOOK1.XPS<br />PIC02.JPG<br />books<br />previews<br />
  37. 37. Blocks or Pages<br />Blob<br />Container<br />Account<br />Blob Storage ConceptsAdding Blocks and Pages<br />PIC01.JPG<br />covers<br />PIC02.JPG<br />books<br />Block or Page 1<br />previews<br />BOOK1.XPS<br />Block or Page 2<br />Block or Page 3<br />
  38. 38. Blob Containers<br />Possibilitàdiaverediversi blob containers<br />Blob Container<br />Un container è un set di blobs<br />Impostazionedellepolitichediaccesso a livellodi container<br />Accessibilitàprivata o pubblica<br />Possibilitàdiassociaremetadati<br />Coppienome - valore<br />Fino a 8KB per container<br />Elencodei blobs in un container<br />
  39. 39. Funzioni e caratteristichedei Blobs<br />Store Large Objects (100s of GBs in size)<br />Possibilitàdiassociaremetadati<br />Coppienome – valore<br />Fino ad 8KB per blob<br />Set e Get contestuale o separato<br />Standard REST Interface<br />PutBlob<br />New blob (sostituisceil blob esistente)<br />GetBlob<br />Get blob (o un range specifico)<br />DeleteBlob<br />CopyBlob (new)<br />SnapshotBlob (new)<br />LeaseBlob (new)<br />
  40. 40. Composizionedell’indirizzodei Blobs<br />Blob URL<br />http://&lt;Account&gt;.blob.core.windows.net/&lt;Container&gt;/&lt;BlobName&gt;<br />Example: <br />Storage Account – fabstorage<br />Container – images<br />BlobName – holidays/sea.tiff<br />http://fabstorage.blob.core.windows.net/images/holidays/sea.tiff<br />
  41. 41. Copia e Snapshot dei Blob (new)<br />CopyBlob<br />Copianellostesso storage account <br />Rename (copia e rimuovi)<br />SnapshotBlob<br />Puòessereutilizzato per creare backup o versionidi blob<br />Creazionediuno snapshot<br />Specifichiamoil blob con ilparametrocomp=snapshot<br />http://account.blob.core.windows.net/images/sea.jpg?comp=snapshot <br />Recupero con timestamp<br />http://account.blob.core.windows.net/images/pic1.jpg?snapshot=&lt;DateTime&gt;<br />Storage<br />Vengonomemorizzate solo le modifiche del blob<br />
  42. 42. Windows Azure Blobs<br />Demo<br />
  43. 43. Content Delivery Network (new)<br />Accessoai blobs utilizzandoilproprionomedidominio:<br />http://account.blob.core.windows.net/<br />http://market.cohowinery.com/<br />http://market.cohowinery.com/images/pic1.jpg<br />Registrazione del nomedidominioattraversoil Windows Azure Developer Portal:<br />Vieneeffettuato un processodivalidazione<br />Accessoesclusivamente via HTTP<br />E’ possibileregistrare solo un nomedidominio per storage account<br />
  44. 44. Windows Azure XDrive<br />Fornisce un volume NTFS per l’utilizzo in applicazioni Windows Azure<br />Affidabilità e mantenimentodeidati in casodi system failure<br />E’ sostanzialmente un PageBlobformattato con NTFS e disponibile come VHD<br />DisponibiledaFebbraio 2010<br />
  45. 45. Windows Azure<br />Hosted Services<br />
  46. 46. From “On-Premises” to “in-the-cloud”<br />Le attuali applicazioni vengono definite “On-Premises”<br />Se abbiamo ben sviluppato le nostre applicazioni il passaggio risulterà “quasi” indolore<br />Posso progettare una nuova applicazione per Azure utilizzando qualsiasi tecnologia<br />Qualsiasi tecnologia Web (Silverlight, ASP.NET, ASP.NET MVC, etc...)<br />Con le applicazioni desktop posso utilizzare Windows Azure Storage o SQL Azure<br />Hybrid Cloud Application con Windows Azure e AppFabric<br />
  47. 47. Web vs Worker Role<br />Worker Role<br />Web Role<br />System Host<br />IIS Host<br />Your Code<br />Your Code<br />
  48. 48. Roles<br />Role<br />Code<br />Configuration<br />
  49. 49. Development Fabric and Storage<br />Local Machine<br />Windows Azure Simulation Environment <br />Development Storage<br />Development Fabric<br />
  50. 50. Sviluppo Web in-the-cloud<br />Demo<br />
  51. 51. Application Deployment<br />
  52. 52. Application Deployment<br />
  53. 53. Windows Azure<br />AppFabric<br />
  54. 54. Windows Azure platform AppFabric<br />Access Control Service<br />Servizio per il controllo degli accessi<br />Gestione dell’autenticazione<br />Rilascio di token di autorizzazione<br />Gestione di regole<br />Service Bus<br />Offre un feed ATOM dei servizi in ascolto<br />Risolve i problemi di connettività tra client geograficamente distribuiti<br />
  55. 55. AppFabric - Access Control Service<br />Tremodalitàdirilasciodi token<br />Plaintext<br />Nessunacriptazionerichiesta<br />Signed token<br />Semplice scenario didelega<br />Richiesta firma HMAC SHA 256<br />SAML bearer token<br />Consentel’integrazione in ambienti enterprise<br />L’ACS ritornasempre lo stessotipodi token:<br />Simple Web Token (SWT)<br />
  56. 56. Esempio di SWT<br />role=Admin%2cUser&<br />customerName=Contoso%20Corporation&<br />Issuer=https%3a%2f%2fadatum.accesscontrol.windows.net%2fWRAPv0.8&<br />Audience=http%3a%2f%2fadatum%2fbillprint&<br />ExpiresOn=1255912922&<br />HMACSHA256=yuVO%2fwc58%2ftYP36%2fDM1mS%2fHr0hswpsGTWwgfvAbpL64%3d<br />
  57. 57. Windows Azure platform AppFabric<br />Demo<br />
  58. 58. Windows Azure<br />SQL Azure<br />
  59. 59. SQL Azure<br />E’ praticamente SQL Server portato in-the-cloud<br />Accedo al database utilizzando TDS (Tabular Data Stream)<br />
  60. 60. SQL Azure<br />
  61. 61. SQL Azure<br />
  62. 62. SQL Azure<br />
  63. 63. Windows Azure Tools<br />Azure Storage Explorer<br />http://azurestorageexplorer.codeplex.com/<br />Cloud Storage Studio<br />http://www.cerebrata.com/Products/CloudStorageStudio/<br />CloudBerry Explorer for Azure Blob Storage<br />http://www.cloudberrylab.com<br />Access Control Service Management Browser <br />http://code.msdn.microsoft.com/acmbrowser<br />
  64. 64. Windows Azure, The Next Few Weeks<br />Feb<br /><ul><li>Paid usage</li></ul>Jan<br /><ul><li>Commercial platform</li></ul>Now<br />CTP with launch feature set<br />
  65. 65. Domande?<br />
  66. 66. GRAZIE <br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×