• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Community Tour 2009 Windows Azure Overview
 

Community Tour 2009 Windows Azure Overview

on

  • 1,445 views

 

Statistics

Views

Total Views
1,445
Views on SlideShare
1,424
Embed Views
21

Actions

Likes
0
Downloads
14
Comments
0

3 Embeds 21

http://www.linkedin.com 15
http://www.slideshare.net 5
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Community Tour 2009 Windows Azure Overview Community Tour 2009 Windows Azure Overview Presentation Transcript

    • Windows Azure Overview
      Fabio Cozzolino
      DOTNETSIDE
      11/12/2009
    • Cloud computing
      Qualcosadaqualche parte
      Letteralmente “nuvola”
      Perchè ne abbiamobisogno?
      Applicazioni ad altascalabilità in gradodiaccettare un alto numerodiutenticontemporanei
      Zero Downtime
      Load Balancing automatico
      Platform as a Service
      Non mi preoccupodell’hardware
      Pago quellocheconsumo
    • Cos’è Windows Azure?
      “A framework that allows you to scale from 10 users to 10 million users without additional coding” Ray Ozzie - Microsoft Chief Software Architect
    • Unapiattaformadi:
      Hosting diApplicazioni
      Lights-out service management
      Storage ad altascalabilità
      E’ progettato per:
      Ridurreicostitotalidigestione
      E’ pronto per:
      Applicazioni Business-critical
      Adozionedi patterncomplessi
      Cos’è Windows Azure?
    • Agenda
      The road to the Cloud
      Windows Azure Storage
      • Blobs
      • Queues
      • Tables
      Cloud Development
      Windows Azure platform AppFabric
      SQL Azure
    • Windows Azure Storage
      Tables
      Fornisceuno storage strutturato dove unatabella è compostada un set dientitàedognientitàda un set diproprietà
      Queues
      Fornisceuno storage affidabile e la possibilitàdiinviare e riceveremessaggi per le nostre applicazioni
      Blobs
      Fornisceun’interfacciasemplificata per memorizzare files edeventualmentemetadatiassociati
      Drives
      Fornisce un volume didati NTFS duraturo per l’utilizzo in applicazioni Windows Azure
    • Richiedere la creazionediuno Storage Accountunivoco
      Possibilitàdiscegliere la posizionegeografica
      “US Anywhere”, “US North Central”, “US South Central”,
      Can co-locate storage account with compute account
      Creazionediuna secret key a 256 bit
      CapacitàdiunoStorage Account Capacity
      Fino a 100 TB per Storage Account
      Limit di 5 storage accounts per subscription
      Windows Azure Storage Account
    • Windows Azure Portal – Projects
    • Windows Azure Portal – Nuovo Servizio
    • Windows Azure Portal
    • Windows Azure
      Tables
    • Windows Azure Tables
      Structured Storage
      Tabelle ad altascalabilità
      Billionidientità (rows) e TBs didati
      Possibilitàdiutilizzodipiù server al cresceredellerichieste
      Highly Available & Durable
      I dativengonoreplicatinellostesso data store e (dafebbraio) in datastoregeograficamentedistribuiti
      Semplicitiàdiutilizzodelle API
      ADO.NET Data Services – .NET 3.5 SP1
      Classi .NET e LINQ
      REST
    • Table Storage Concepts
      Entities
      Tables
      Accounts
      Email =…
      Name = …
      Authors
      Email =…
      Name = …
      library
      Pages =…
      Title = …
      Books
      Pages =…
      Title = …
    • Table Data Model
      Table
      Uno Storage Account puòcrearepiùtabelle
      Lo scope diunatabella è relativoall’accountdiappartenza
      Set dientitità (i.e. rows)
      Entity
      Set diproprietà (colonne)
      Required properties
      PartitionKey e RowKey
      Identificanounivocamenteunaentità
      Definisconol’ordinamento
      Utilizzate per scalarel’applicazione
      Timestamp
      Read only
      Optimistic Concurrency
    • Required Entity Properties
      PartitionKey & RowKey
      Identificanounivocamenteunaentità
      Definisconol’ordinamento
      Utilizzate per scalarel’applicazione
      Timestamp
      Read only
      Optimistic Concurrency
    • PartitionKey e Partitions
      PartitionKey
      Utilizzata per raggruppare le entità in unapartizione
      Unapartizioneditabelle
      Raggruppatutte le entità con la stessa partition key
      Singolaunitàdiscalabilità
      Controllo del posizionamentodelle entity
      Row key forniscel’univocitàall’internodiunapartizione
    • Table Operations
      Table
      Create
      Query
      Delete
      Entities
      Insert
      Update
      Merge – Partial Update
      Replace – Update entire entity
      Delete
      Query
      Entity Group Transaction (new)
    • Table Schema
      Define the schema as a .NET class
      [DataServiceKey("PartitionKey", "RowKey")]
      publicclassBook
      {
      ///<summary>
      /// Category is the partition key
      ///</summary>
      publicstringPartitionKey { get; set; }
      ///<summary>
      /// Title is the row key
      ///</summary>
      publicstringRowKey { get; set; }
      publicDateTime Timestamp { get; set; }
      publicstring Author { get; set; }
      publicintPages { get; set; }
      }
    • Windows Azure Tables
      Demo
    • Scalable Partition
      A cosa mi servono diverse PartitionKeys?
      Inseriscol’Account name come Partition Key
      Inseriscoiltitolodi un libro come RowKey, mi serve per ordinare la tabella
      La categoriava in unaproprietàseparata
      Ma…è scalabile?
    • Solution 1
      Singolapartizione – Tutta la tabella è su un unico server
      Di conseguenzatutte le richiesteverrannogestiteda un unico server
      …chiaramente non è scalabile
      Client
      Client
      Request
      Request
      Request
      Request
      Server A
    • Solution 2
      Partizioniamo per categoria
      Consentiamo al sistemadibilanciareilcaricodellepartizionipiùrichieste
      E’ meglio … 
      Server A
      Client
      Client
      Request
      Request
      Request
      Request
      Request
      Request
      Request
      Request
      Server B
    • Windows Azure
      Queues
    • Windows Azure Queues
      Le code risultanoefficienti, ad altadisponibilità e consentonol’inviosicuroedaffidabiledimessaggi
      Sempliceedasincrono
      Un messaggiopuòessereprocessatoalmenounavolta
      Accesso via REST
    • Queue Operations
      Queue
      Create Queue
      Delete Queue
      List Queues
      Get/Set Queue Metadata
      Messages
      Add Message (i.e. Enqueue Message)
      Get Message(s) (i.e. Dequeue Message)
      Peek Message(s)
      Delete Message
    • Queue Storage Concepts
      Messages
      Queues
      Accounts
      bookId: 1http://...
      bookmsgs
      bookId: 2 http://...
      fabstorage
      http://...

      http://...
    • Account, Queues and Messages
      Un Account puòcrearepiù code
      Il nomediuna coda è relazionatoall’account (scope)
      Una codacontienemessaggi
      Nessunlimitedimessaggipresenti in una coda
      E’ importanteimpostare un limite per la scadenzadi un messaggio
      Messages
      Dimensione <= 8 KB
      Utilizzarei blob o le entities per memorizzaredatididimensionimaggiori
      Vieneconteggiatoilnumeroditentatividiletturadalla coda (dequeue)
    • Removing Poison Messages
      Producers
      Consumers
      C1
      P2
      1. GetMessage(Q, 30 s)  msg 1
      2
      1
      1
      1
      1
      1
      2
      1
      3
      4
      0
      3
      0
      1
      1
      2
      1
      1
      0
      2
      0
      C2
      P1
      2. GetMessage(Q, 30 s)  msg 2
    • Removing Poison Messages
      Producers
      Consumers
      1
      1
      C1
      P2
      1. GetMessage(Q, 30 s)  msg 1
      5. C1 crashed
      4
      0
      1
      1
      2
      1
      3
      0
      1
      2
      1
      1
      1
      2
      3
      6. msg1 visible 30 s after Dequeue
      2
      1
      C2
      P1
      2. GetMessage(Q, 30 s)  msg 2
      3. C2 consumed msg 2
      4. DeleteMessage(Q, msg 2)
      7. GetMessage(Q, 30 s)  msg 1
    • Removing Poison Messages
      Producers
      Consumers
      1. Dequeue(Q, 30 sec)  msg 1
      5. C1 crashed
      10. C1 restarted
      11. Dequeue(Q, 30 sec)  msg 1
      12. DequeueCount > 2
      13. Delete (Q, msg1)
      C1
      P2
      4
      0
      1
      2
      3
      0
      1
      3
      1
      2
      1
      3
      3
      1
      2
      C2
      P1
      6. msg1 visible 30s after Dequeue
      9. msg1 visible 30s after Dequeue
      2. Dequeue(Q, 30 sec)  msg 2
      3. C2 consumed msg 2
      4. Delete(Q, msg 2)
      7. Dequeue(Q, 30 sec)  msg1
      8. C2 crashed
    • Windows Azure Queues
      Demo
    • Windows Azure
      Blobs
    • Windows Azure Blob Storage
      Fornisce la possibilità di memorizzare qualsiasi tipo files
      Capacità di gestione dei blocchi
      Due tipologie di Blobs
      BlockBlob
      PageBlob (new)
    • Blob
      Container
      Account
      Blob Storage Concepts
      PIC01.JPG
      covers
      BOOK1.XPS
      PIC02.JPG
      books
      previews
    • Blocks or Pages
      Blob
      Container
      Account
      Blob Storage ConceptsAdding Blocks and Pages
      PIC01.JPG
      covers
      PIC02.JPG
      books
      Block or Page 1
      previews
      BOOK1.XPS
      Block or Page 2
      Block or Page 3
    • Blob Containers
      Possibilitàdiaverediversi blob containers
      Blob Container
      Un container è un set di blobs
      Impostazionedellepolitichediaccesso a livellodi container
      Accessibilitàprivata o pubblica
      Possibilitàdiassociaremetadati
      Coppienome - valore
      Fino a 8KB per container
      Elencodei blobs in un container
    • Funzioni e caratteristichedei Blobs
      Store Large Objects (100s of GBs in size)
      Possibilitàdiassociaremetadati
      Coppienome – valore
      Fino ad 8KB per blob
      Set e Get contestuale o separato
      Standard REST Interface
      PutBlob
      New blob (sostituisceil blob esistente)
      GetBlob
      Get blob (o un range specifico)
      DeleteBlob
      CopyBlob (new)
      SnapshotBlob (new)
      LeaseBlob (new)
    • Composizionedell’indirizzodei Blobs
      Blob URL
      http://<Account>.blob.core.windows.net/<Container>/<BlobName>
      Example:
      Storage Account – fabstorage
      Container – images
      BlobName – holidays/sea.tiff
      http://fabstorage.blob.core.windows.net/images/holidays/sea.tiff
    • Copia e Snapshot dei Blob (new)
      CopyBlob
      Copianellostesso storage account
      Rename (copia e rimuovi)
      SnapshotBlob
      Puòessereutilizzato per creare backup o versionidi blob
      Creazionediuno snapshot
      Specifichiamoil blob con ilparametrocomp=snapshot
      http://account.blob.core.windows.net/images/sea.jpg?comp=snapshot
      Recupero con timestamp
      http://account.blob.core.windows.net/images/pic1.jpg?snapshot=<DateTime>
      Storage
      Vengonomemorizzate solo le modifiche del blob
    • Windows Azure Blobs
      Demo
    • Content Delivery Network (new)
      Accessoai blobs utilizzandoilproprionomedidominio:
      http://account.blob.core.windows.net/
      http://market.cohowinery.com/
      http://market.cohowinery.com/images/pic1.jpg
      Registrazione del nomedidominioattraversoil Windows Azure Developer Portal:
      Vieneeffettuato un processodivalidazione
      Accessoesclusivamente via HTTP
      E’ possibileregistrare solo un nomedidominio per storage account
    • Windows Azure XDrive
      Fornisce un volume NTFS per l’utilizzo in applicazioni Windows Azure
      Affidabilità e mantenimentodeidati in casodi system failure
      E’ sostanzialmente un PageBlobformattato con NTFS e disponibile come VHD
      DisponibiledaFebbraio 2010
    • Windows Azure
      Hosted Services
    • From “On-Premises” to “in-the-cloud”
      Le attuali applicazioni vengono definite “On-Premises”
      Se abbiamo ben sviluppato le nostre applicazioni il passaggio risulterà “quasi” indolore
      Posso progettare una nuova applicazione per Azure utilizzando qualsiasi tecnologia
      Qualsiasi tecnologia Web (Silverlight, ASP.NET, ASP.NET MVC, etc...)
      Con le applicazioni desktop posso utilizzare Windows Azure Storage o SQL Azure
      Hybrid Cloud Application con Windows Azure e AppFabric
    • Web vs Worker Role
      Worker Role
      Web Role
      System Host
      IIS Host
      Your Code
      Your Code
    • Roles
      Role
      Code
      Configuration
    • Development Fabric and Storage
      Local Machine
      Windows Azure Simulation Environment
      Development Storage
      Development Fabric
    • Sviluppo Web in-the-cloud
      Demo
    • Application Deployment
    • Application Deployment
    • Windows Azure
      AppFabric
    • Windows Azure platform AppFabric
      Access Control Service
      Servizio per il controllo degli accessi
      Gestione dell’autenticazione
      Rilascio di token di autorizzazione
      Gestione di regole
      Service Bus
      Offre un feed ATOM dei servizi in ascolto
      Risolve i problemi di connettività tra client geograficamente distribuiti
    • AppFabric - Access Control Service
      Tremodalitàdirilasciodi token
      Plaintext
      Nessunacriptazionerichiesta
      Signed token
      Semplice scenario didelega
      Richiesta firma HMAC SHA 256
      SAML bearer token
      Consentel’integrazione in ambienti enterprise
      L’ACS ritornasempre lo stessotipodi token:
      Simple Web Token (SWT)
    • Esempio di SWT
      role=Admin%2cUser&
      customerName=Contoso%20Corporation&
      Issuer=https%3a%2f%2fadatum.accesscontrol.windows.net%2fWRAPv0.8&
      Audience=http%3a%2f%2fadatum%2fbillprint&
      ExpiresOn=1255912922&
      HMACSHA256=yuVO%2fwc58%2ftYP36%2fDM1mS%2fHr0hswpsGTWwgfvAbpL64%3d
    • Windows Azure platform AppFabric
      Demo
    • Windows Azure
      SQL Azure
    • SQL Azure
      E’ praticamente SQL Server portato in-the-cloud
      Accedo al database utilizzando TDS (Tabular Data Stream)
    • SQL Azure
    • SQL Azure
    • SQL Azure
    • Windows Azure Tools
      Azure Storage Explorer
      http://azurestorageexplorer.codeplex.com/
      Cloud Storage Studio
      http://www.cerebrata.com/Products/CloudStorageStudio/
      CloudBerry Explorer for Azure Blob Storage
      http://www.cloudberrylab.com
      Access Control Service Management Browser
      http://code.msdn.microsoft.com/acmbrowser
    • Windows Azure, The Next Few Weeks
      Feb
      • Paid usage
      Jan
      • Commercial platform
      Now
      CTP with launch feature set
    • Domande?
    • GRAZIE 