Community Tour 2009 Windows Azure Overview
Upcoming SlideShare
Loading in...5
×
 

Community Tour 2009 Windows Azure Overview

on

  • 1,481 views

 

Statistics

Views

Total Views
1,481
Views on SlideShare
1,460
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 