SlideShare a Scribd company logo
1 of 53
http://images.blob.core.windows.net/
http://<id>.vo.msecnd.net/
      http://cdn.contoso.com/
•   CloudStorageAccount account =
         CloudStorageAccount.FromConfigurationSetting("CloudStorageAccount");

•   //Инициализация локального кеша
    CloudDrive.InitializeCache(localCacheDir, cacheSizeInMB);

•   //Создание диска(страничного блоба)
    CloudDrive drive = account.CreateCloudDrive(pageBlobUri);
    drive.Create(1024 /* sizeInMB */);

•   //Монтирование диска
    string pathOnLocalFS = drive.Mount(cacheSizeInMB, DriveMountOptions.None);

•   //Операции

•   …

•   //Создание снепшота диска
    Uri snapshotUri = drive.Snapshot();

•   //Демонтирование диска
    drive.Unmount();
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage
Windows Azure Storage

More Related Content

Viewers also liked

20110126 azure table in mono meeting
20110126 azure table in mono meeting20110126 azure table in mono meeting
20110126 azure table in mono meetingTakekazu Omi
 
Windows Azure Storage: Overview, Internals, and Best Practices
Windows Azure Storage: Overview, Internals, and Best PracticesWindows Azure Storage: Overview, Internals, and Best Practices
Windows Azure Storage: Overview, Internals, and Best PracticesAnton Vidishchev
 
Distributed Key-Value Stores- Featuring Riak
Distributed Key-Value Stores- Featuring RiakDistributed Key-Value Stores- Featuring Riak
Distributed Key-Value Stores- Featuring Riaksamof76
 
Riak Training Session — Surge 2011
Riak Training Session — Surge 2011Riak Training Session — Surge 2011
Riak Training Session — Surge 2011DstroyAllModels
 
Introduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf TrainingIntroduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf TrainingSean Cribbs
 
Key-Value Stores: a practical overview
Key-Value Stores: a practical overviewKey-Value Stores: a practical overview
Key-Value Stores: a practical overviewMarc Seeger
 
Summary of "Google's Big Table" at nosql summer reading in Tokyo
Summary of "Google's Big Table" at nosql summer reading in TokyoSummary of "Google's Big Table" at nosql summer reading in Tokyo
Summary of "Google's Big Table" at nosql summer reading in TokyoCLOUDIAN KK
 

Viewers also liked (10)

Azure Data Storage
Azure Data StorageAzure Data Storage
Azure Data Storage
 
20110126 azure table in mono meeting
20110126 azure table in mono meeting20110126 azure table in mono meeting
20110126 azure table in mono meeting
 
Windows azure table storage – deep dive
Windows azure table storage – deep diveWindows azure table storage – deep dive
Windows azure table storage – deep dive
 
Windows Azure Storage: Overview, Internals, and Best Practices
Windows Azure Storage: Overview, Internals, and Best PracticesWindows Azure Storage: Overview, Internals, and Best Practices
Windows Azure Storage: Overview, Internals, and Best Practices
 
Distributed Key-Value Stores- Featuring Riak
Distributed Key-Value Stores- Featuring RiakDistributed Key-Value Stores- Featuring Riak
Distributed Key-Value Stores- Featuring Riak
 
Microsoft Azure Storage - Table (NoSQL)
Microsoft Azure Storage - Table (NoSQL)Microsoft Azure Storage - Table (NoSQL)
Microsoft Azure Storage - Table (NoSQL)
 
Riak Training Session — Surge 2011
Riak Training Session — Surge 2011Riak Training Session — Surge 2011
Riak Training Session — Surge 2011
 
Introduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf TrainingIntroduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf Training
 
Key-Value Stores: a practical overview
Key-Value Stores: a practical overviewKey-Value Stores: a practical overview
Key-Value Stores: a practical overview
 
Summary of "Google's Big Table" at nosql summer reading in Tokyo
Summary of "Google's Big Table" at nosql summer reading in TokyoSummary of "Google's Big Table" at nosql summer reading in Tokyo
Summary of "Google's Big Table" at nosql summer reading in Tokyo
 

More from Alexander Feschenko

Microsoft Azure. Troubleshooting and monitoring.
Microsoft Azure. Troubleshooting and monitoring.Microsoft Azure. Troubleshooting and monitoring.
Microsoft Azure. Troubleshooting and monitoring.Alexander Feschenko
 
Azure Powershell. Azure Automation
Azure Powershell. Azure AutomationAzure Powershell. Azure Automation
Azure Powershell. Azure AutomationAlexander Feschenko
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Alexander Feschenko
 
Automating Azure VMs with PowerShell
Automating Azure VMs with PowerShellAutomating Azure VMs with PowerShell
Automating Azure VMs with PowerShellAlexander Feschenko
 
Introduction to Windows Azure IaaS
Introduction to Windows Azure IaaSIntroduction to Windows Azure IaaS
Introduction to Windows Azure IaaSAlexander Feschenko
 
Windows Azure. Scaling, Caching and Performance
Windows Azure. Scaling, Caching and PerformanceWindows Azure. Scaling, Caching and Performance
Windows Azure. Scaling, Caching and PerformanceAlexander Feschenko
 
Windows Azure Security and Diagnostics
Windows Azure Security and DiagnosticsWindows Azure Security and Diagnostics
Windows Azure Security and DiagnosticsAlexander Feschenko
 
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application LifecycleWindows Azure Overview and Application Lifecycle
Windows Azure Overview and Application LifecycleAlexander Feschenko
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureAlexander Feschenko
 
Построение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureПостроение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureAlexander Feschenko
 
Построение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureПостроение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureAlexander Feschenko
 
Продвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerПродвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerAlexander Feschenko
 

More from Alexander Feschenko (17)

Azure Container Service
Azure Container ServiceAzure Container Service
Azure Container Service
 
Microsoft Azure Automation
Microsoft Azure AutomationMicrosoft Azure Automation
Microsoft Azure Automation
 
Microsoft Azure. Troubleshooting and monitoring.
Microsoft Azure. Troubleshooting and monitoring.Microsoft Azure. Troubleshooting and monitoring.
Microsoft Azure. Troubleshooting and monitoring.
 
Azure Powershell. Azure Automation
Azure Powershell. Azure AutomationAzure Powershell. Azure Automation
Azure Powershell. Azure Automation
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.
 
Automating Azure VMs with PowerShell
Automating Azure VMs with PowerShellAutomating Azure VMs with PowerShell
Automating Azure VMs with PowerShell
 
Introduction to Windows Azure IaaS
Introduction to Windows Azure IaaSIntroduction to Windows Azure IaaS
Introduction to Windows Azure IaaS
 
Windows Azure. Scaling, Caching and Performance
Windows Azure. Scaling, Caching and PerformanceWindows Azure. Scaling, Caching and Performance
Windows Azure. Scaling, Caching and Performance
 
Windows Azure Security and Diagnostics
Windows Azure Security and DiagnosticsWindows Azure Security and Diagnostics
Windows Azure Security and Diagnostics
 
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application LifecycleWindows Azure Overview and Application Lifecycle
Windows Azure Overview and Application Lifecycle
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows Azure
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
 
Windows Azure Internals
Windows Azure InternalsWindows Azure Internals
Windows Azure Internals
 
Developer Days 2011, Kharkov
Developer Days 2011, KharkovDeveloper Days 2011, Kharkov
Developer Days 2011, Kharkov
 
Построение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureПостроение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows Azure
 
Построение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureПостроение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows Azure
 
Продвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerПродвинутая web-отладка с Fiddler
Продвинутая web-отладка с Fiddler
 

Windows Azure Storage

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37. CloudStorageAccount account = CloudStorageAccount.FromConfigurationSetting("CloudStorageAccount"); • //Инициализация локального кеша CloudDrive.InitializeCache(localCacheDir, cacheSizeInMB); • //Создание диска(страничного блоба) CloudDrive drive = account.CreateCloudDrive(pageBlobUri); drive.Create(1024 /* sizeInMB */); • //Монтирование диска string pathOnLocalFS = drive.Mount(cacheSizeInMB, DriveMountOptions.None); • //Операции • … • //Создание снепшота диска Uri snapshotUri = drive.Snapshot(); • //Демонтирование диска drive.Unmount();

Editor's Notes

  1. Slide ObjectiveIntroduce the important of ASP.NET in Windows Azure applicationsIntroduce the topics to be covered in this sessionSpeaking NotesWindows Azure can run a very broad variety of application typesASP.NET Applications will be a very common type of applicationWindows Azure supports ASP.NET very wellCore ASP.NET (HttpModules/HttpHandlers)Web FormsMVCBecause of the stateless nature of Windows Azure web roles important things to consider around Session StateAJAX callsWill discuss configuring DNS for Windows AzureWill discuss some advanced features for Windows AzureBoth very much suited to SaaS types of applicationsFinally touch on some Windows Azure common challengesNotesSome notes on Migration http://msdn.microsoft.com/en-us/windowsazure/ff356857.aspxAzure Architecture guidance http://msdn.microsoft.com/en-us/library/ff728592.aspx
  2. Slide ObjectiveIntroduce the simple ASP.NET templates for Windows AzureSpeaking NotesVisual Studio Tools for Windows Azure include templatesWeb Forms and MVC preconfigured web rolesBoth VB.Net and C# supportedBasic Asp.NET web role is equivalent to a new Web project- i.e. very simple and bare bonesASP.NET MVC template includes significant amount of existing code including Account modelAccount and Home ViewsError pages and error handlingAccount and Home controllersEquivalent to creating a new MVC 2 Web Application (rather than an empty MVC site)Notes
  3. Slide ObjectiveIntroduce the simple ASP.NET templates for Windows AzureSpeaking NotesVisual Studio Tools for Windows Azure include templatesWeb Forms and MVC preconfigured web rolesBoth VB.Net and C# supportedBasic Asp.NET web role is equivalent to a new Web project- i.e. very simple and bare bonesASP.NET MVC template includes significant amount of existing code including Account modelAccount and Home ViewsError pages and error handlingAccount and Home controllersEquivalent to creating a new MVC 2 Web Application (rather than an empty MVC site)Notes
  4. Slide ObjectiveIntroduce the simple ASP.NET templates for Windows AzureSpeaking NotesVisual Studio Tools for Windows Azure include templatesWeb Forms and MVC preconfigured web rolesBoth VB.Net and C# supportedBasic Asp.NET web role is equivalent to a new Web project- i.e. very simple and bare bonesASP.NET MVC template includes significant amount of existing code including Account modelAccount and Home ViewsError pages and error handlingAccount and Home controllersEquivalent to creating a new MVC 2 Web Application (rather than an empty MVC site)Notes
  5. This should be a recap as this session will dig deeper into the services.
  6. Slide ObjectiveUnderstand a Windows Azure storage accountSpeaking notesA Windows Azure subscription contains storage accountsCan explicitly geo-locate to a sub region or set affinity with other servicesCan enable CDN at the account level (means that public containers will be retrievable via the CDN URL)
  7. Slide ObjectiveUnderstand a Windows Azure storage accountSpeaking notesA Windows Azure subscription contains storage accountsCan explicitly geo-locate to a sub region or set affinity with other servicesCan enable CDN at the account level (means that public containers will be retrievable via the CDN URL)
  8. Slide ObjectiveUnderstand the Development Storage ServiceSpeaking notesClient side simulator of storage in the cloud. Allows completely disconnected (e.g. while travelling on a plane) development of Windows Azure appsCan consume just like Cloud storage- from Development Fabric, from another application running locallyIs locked down so that it cannot be called from off the boxIf you need this capability run a reverse proxy on the dev machineCan use CSRun to start and stop serviceMore on this in Day 3Uses a single fixed account. The account name and key are always the sameAnyone memorized the Account key yet? Eby8vd…..Noteshttp://msdn.microsoft.com/en-us/library/dd179339.aspxThe Windows® Azure™ SDK development environment includes development storage, a utility that simulates the Blob, Queue, and Table services available in the cloud. If you are building a hosted service that employs storage services or writing any external application that calls storage services, you can test locally against development storage.The development storage utility provides a user interface to view the status of the local storage services and to start, stop, and reset them.This topic contains the following subtopics:
  9. Slide ObjectiveDiscuss the underlying REST APIDiscuss the Client API in the SDK- that provides convenient way to call REST serviceSpeaking notesWindows Azure Storage is exposed as RESTdful web serviceCan be called from any HTTP clientFor .NET developers Microsoft ships a client SDKManaged code library for calling the RESTful servicesHides many of the complexities of the serviceAuto retriesAlso provide a lower level Protocol library with useful helper toolsImportant to understand the fundamentals of the REST APIs.This deck discusses the REST APIsHands on lab demonstrates the SDK
  10. Slide ObjectiveDescribe security principlesSpeaking notesSimple shared secret securityCan use HTTP or HTTPS to accessUse HTTP for public contentUse HTTPS for secure content (i.e. where using es or Shared Access Signatures)Two 512bit keysKeys used to sign priv requestsTwo keys supports rolling of keysE.g. if one key is compromised can use the second key while first is regeneratedMore on SAS’s soonNotesMore on Security on Day 3http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/1e023e8d-0ff9-472e-bcc1-05400a41466c http://blogs.msdn.com/b/usisvde/archive/2010/05/21/best-practices-for-data-storage-security-on-windows-azure.aspx
  11. Slide ObjectivesUnderstand each of the storage types at a high levelSpeaker NotesThe Windows Azure storage services provide storage for binary and text data, messages, and structured data in Windows Azure. The storage services include:The Blob service, for storing binary and text dataThe Queue service, for storing messages that may be accessed by a clientThe Table service, for structured storage for non-relational dataWindows Azure drives, for mounting an NTFS volume accessible to code running in your Windows Azure serviceProgrammatic access to the Blob, Queue, and Table services is available via the Windows Azure Managed Library and the Windows Azure storage services REST APINoteshttp://blogs.msdn.com/b/windowsazurestorage/archive/2010/03/28/windows-azure-storage-resources.aspx
  12. Slide ObjectivesUnderstand the hierarchy of Blob storageSpeaker NotesThe Blob service provides storage for entities, such as binary files and text files. The REST API for the Blob service exposes two resources: Containers Blobs. A container is a set of blobs; every blob must belong to a container. The Blob service defines two types of blobs:Block blobs, which are optimized for streaming. Page blobs, which are optimized for random read/write operations and which provide the ability to write to a range of bytes in a blob. Blobs can be read by calling the Get Blob operation. A client may read the entire blob, or an arbitrary range of bytes. Block blobs less than or equal to 64 MB in size can be uploaded by calling the Put Blob operation. Block blobs larger than 64 MB must be uploaded as a set of blocks, each of which must be less than or equal to 4 MB in size. Page blobs are created and initialized with a maximum size with a call to Put Blob. To write content to a page blob, you call the Put Page operation. The maximum size currently supported for a page blob is 1 TB.Noteshttp://msdn.microsoft.com/en-us/library/dd573356.aspxUsing the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system. Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs. The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group. For example, you can enumerate all blobs organized under MyGroup/.
  13. Slide ObjectivesUnderstand the hierarchy of Blob storageSpeaker NotesPut Blob - Creates a new blob or replaces an existing blob within a container.Get Blob - Reads or downloads a blob from the system, including its metadata and properties.Delete Blob - Deletes a blobCopy Blob - Copies a source blob to a destination blob within the same storage account.SnapShot Blob - The Snapshot Blob operation creates a read-only snapshot of a blob.Lease Blob - Establishes an exclusive one-minute write lock on a blob. To write to a locked blob, a client must provide a lease ID.Using the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system. Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs. The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group. For example, you can enumerate all blobs organized under MyGroup/.NotesThe Blob service provides storage for entities, such as binary files and text files. The REST API for the Blob service exposes two resources: containers and blobs. A container is a set of blobs; every blob must belong to a container. The Blob service defines two types of blobs:Block blobs, which are optimized for streaming. This type of blob is the only blob type available with versions prior to 2009-09-19.Page blobs, which are optimized for random read/write operations and which provide the ability to write to a range of bytes in a blob. Page blobs are available only with version 2009-09-19.Containers and blobs support user-defined metadata in the form of name-value pairs specified as headers on a request operation.Using the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system. Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs. The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group. For example, you can enumerate all blobs organized under MyGroup/.A block blob may be created in one of two ways. Block blobs less than or equal to 64 MB in size can be uploaded by calling the Put Blob operation. Block blobs larger than 64 MB must be uploaded as a set of blocks, each of which must be less than or equal to 4 MB in size. A set of successfully uploaded blocks can be assembled in a specified order into a single contiguous blob by calling Put Block List. The maximum size currently supported for a block blob is 200 GB.Page blobs are created and initialized with a maximum size with a call to Put Blob. To write content to a page blob, you call the Put Page operation. The maximum size currently supported for a page blob is 1 TB.Blobs support conditional update operations that may be useful for concurrency control and efficient uploading. Blobs can be read by calling the Get Blob operation. A client may read the entire blob, or an arbitrary range of bytes. For the Blob service API reference, see Blob Service API.
  14. Slide ObjectivesUnderstand the hierarchy of Blob storageSpeaker NotesPut Blob - Creates a new blob or replaces an existing blob within a container.Get Blob - Reads or downloads a blob from the system, including its metadata and properties.Delete Blob - Deletes a blobCopy Blob - Copies a source blob to a destination blob within the same storage account.SnapShot Blob - The Snapshot Blob operation creates a read-only snapshot of a blob.Lease Blob - Establishes an exclusive one-minute write lock on a blob. To write to a locked blob, a client must provide a lease ID.Using the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system. Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs. The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group. For example, you can enumerate all blobs organized under MyGroup/.NotesThe Blob service provides storage for entities, such as binary files and text files. The REST API for the Blob service exposes two resources: containers and blobs. A container is a set of blobs; every blob must belong to a container. The Blob service defines two types of blobs:Block blobs, which are optimized for streaming. This type of blob is the only blob type available with versions prior to 2009-09-19.Page blobs, which are optimized for random read/write operations and which provide the ability to write to a range of bytes in a blob. Page blobs are available only with version 2009-09-19.Containers and blobs support user-defined metadata in the form of name-value pairs specified as headers on a request operation.Using the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system. Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs. The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group. For example, you can enumerate all blobs organized under MyGroup/.A block blob may be created in one of two ways. Block blobs less than or equal to 64 MB in size can be uploaded by calling the Put Blob operation. Block blobs larger than 64 MB must be uploaded as a set of blocks, each of which must be less than or equal to 4 MB in size. A set of successfully uploaded blocks can be assembled in a specified order into a single contiguous blob by calling Put Block List. The maximum size currently supported for a block blob is 200 GB.Page blobs are created and initialized with a maximum size with a call to Put Blob. To write content to a page blob, you call the Put Page operation. The maximum size currently supported for a page blob is 1 TB.Blobs support conditional update operations that may be useful for concurrency control and efficient uploading. Blobs can be read by calling the Get Blob operation. A client may read the entire blob, or an arbitrary range of bytes. For the Blob service API reference, see Blob Service API.
  15. Slide ObjectivesUnderstand the hierarchy of Blob storageSpeaker NotesPut Blob - Creates a new blob or replaces an existing blob within a container.Get Blob - Reads or downloads a blob from the system, including its metadata and properties.Delete Blob - Deletes a blobCopy Blob - Copies a source blob to a destination blob within the same storage account.SnapShot Blob - The Snapshot Blob operation creates a read-only snapshot of a blob.Lease Blob - Establishes an exclusive one-minute write lock on a blob. To write to a locked blob, a client must provide a lease ID.Using the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system. Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs. The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group. For example, you can enumerate all blobs organized under MyGroup/.NotesThe Blob service provides storage for entities, such as binary files and text files. The REST API for the Blob service exposes two resources: containers and blobs. A container is a set of blobs; every blob must belong to a container. The Blob service defines two types of blobs:Block blobs, which are optimized for streaming. This type of blob is the only blob type available with versions prior to 2009-09-19.Page blobs, which are optimized for random read/write operations and which provide the ability to write to a range of bytes in a blob. Page blobs are available only with version 2009-09-19.Containers and blobs support user-defined metadata in the form of name-value pairs specified as headers on a request operation.Using the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system. Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs. The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group. For example, you can enumerate all blobs organized under MyGroup/.A block blob may be created in one of two ways. Block blobs less than or equal to 64 MB in size can be uploaded by calling the Put Blob operation. Block blobs larger than 64 MB must be uploaded as a set of blocks, each of which must be less than or equal to 4 MB in size. A set of successfully uploaded blocks can be assembled in a specified order into a single contiguous blob by calling Put Block List. The maximum size currently supported for a block blob is 200 GB.Page blobs are created and initialized with a maximum size with a call to Put Blob. To write content to a page blob, you call the Put Page operation. The maximum size currently supported for a page blob is 1 TB.Blobs support conditional update operations that may be useful for concurrency control and efficient uploading. Blobs can be read by calling the Get Blob operation. A client may read the entire blob, or an arbitrary range of bytes. For the Blob service API reference, see Blob Service API.
  16. Slide ObjectiveUnderstand containersSpeaker NotesAccount can contain unlimited number of containersRoot container useful when serving Silverlight and flash out of Blob storage. May need to store Cross domain access policy files in root of the domainMetadata is up to 8KB of name value pairs per containerNoteshttp://msdn.microsoft.com/en-us/library/dd179361.aspxhttp://msdn.microsoft.com/en-us/library/ee395424.aspxA root container serves as a default container for your storage account. A storage account may have one root container. The root container must be explicitly created and must be named $root.A blob stored in the root container may be addressed without referencing the root container name, so that a blob can be addressed at the top level of the storage account hierarchy. For example, you can now reference a blob that resides in the root container in the following manner:
  17. Slide ObjectiveUnderstand basics of listing blobs in a containerSpeaker NotesThe List Blobs operation enumerates the list of blobs under the specified container.Can include uncommitted Blobs- see discussion on Blocks and Block ListsCan include snapshotsNoteshttp://msdn.microsoft.com/en-us/library/dd135734.aspx
  18. Slide ObjectiveUnderstand pagination when listing blobsSpeaker NotesReponses over multiple pages return a marker valueThis marker is sent to get subsequent pageNoteshttp://msdn.microsoft.com/en-us/library/dd135734.aspx
  19. Slide ObjectiveUnderstand different blob typesSpeaker NotesBlock blobs are comprised of blocks, each of which is identified by a block ID. You create or modify a block blob by uploading a set of blocks and committing them by their block IDs. If you are uploading a block blob that is no more than 64 MB in size, you can also upload it in its entirety with a single Put Blob operation.When you upload a block to Windows Azure using the Put Block operation, it is associated with the specified block blob, but it does not become part of the blob until you call the Put Block List operation and include the block&apos;s ID. The block remains in an uncommitted state until it is specifically committed. Writing to a block blob is thus always a two-step process.Each block can be a maximum of 4 MB in size. The maximum size for a block blob in version 2009-09-19 is 200 GB, or up to 50,000 blocks.Page blobs are a collection of pages. A page is a range of data that is identified by its offset from the start of the blob. To create a page blob, you initialize the page blob by calling Put Blob and specifying its maximum size. To add content to or update a page blob, you call the Put Page operation to modify a page or range of pages by specifying an offset and range. All pages must align 512-byte page boundaries.Unlike writes to block blobs, writes to page blobs happen in-place and are immediately committed to the blob.The maximum size for a page blob is 1 TB. A page written to a page blob may be up to 1 TB in size but will typically be much smallerNoteshttp://msdn.microsoft.com/en-us/library/dd135734.aspx
  20. Slide ObjectiveIntroduce Shared Access SignaturesSpeaker NotesShared Access Signatures provide access rights to containers and blobs at a more granular level than by simply setting a container’s permissionsGrant users access to a specific blob or to any blob within a specified container for a specified period of time. Specify what operations a user may perform on a blob that&apos;s accessible via a Shared Access Signature. Use HTTPS to protect the signature (it is like a short dated password)Two approachesAd-hocUse for very short dated single use scenariosPolicy basedUse for longer dated revocable permission setsAlways endeavour to use Least Permission set possibleNoteshttp://msdn.microsoft.com/en-us/library/ee395415.aspx
  21. Slide ObjectiveUnderstand Ad-Hoc Shared Access signaturesSpeaker NotesAd-hocUse for very short dated single use scenariosInclude all permissions and expiry in the signed URLCan only revoke by deleting the blob or waiting for expiryUse very short dated URLsNoteshttp://msdn.microsoft.com/en-us/library/ee395415.aspx
  22. Slide ObjectiveUnderstand Ad-Hoc Shared Access signaturesSpeaker NotesPolicy BasedPoints to a Container level policyUser where want a longer dated permission with ability to revokeInclude all permissions and expiry in the signed URLCan only revoke by deleting the blob or waiting for expiryUse very short dated URLsNoteshttp://msdn.microsoft.com/en-us/library/ee395415.aspx
  23. Slide ObjectivesUnderstand basic concept of a CDNUnderstand at a high level how Windows Azure CDN worksSpeaker NotesThe Windows Azure CDN provides edge nodes around the worldData stored in CDN enabled storage accounts is retrieved from the origin storage container and cached at each edge node in a lazy load fashionWindows Azure Customers have control over how long data is cached for.Windows Azure CDN has 18 locations globally (United States, Europe, Asia, Australia and South America) and continues to expandThe benefit of using a CDN is better performance and user experience for users who are farther from the source of the content stored in the Windows Azure Blob service. Windows Azure CDN provides worldwide high-bandwidth access to serve content for popular events.Noteshttp://blogs.msdn.com/b/windowsazure/archive/2009/11/05/introducing-the-windows-azure-content-delivery-network.aspx
  24. Slide ObjectivesUnderstand Drives at a high levelSpeaker NotesBacked by Page blobsAllows Page blob to be accessed as a drive letter on a Compute instanceRead write is limited to a single instance as a time.Data is cached for reads on local instanceAll write flushed operations are immediately committedNoteshttp://blogs.msdn.com/b/windowsazure/archive/2009/11/05/introducing-the-windows-azure-content-delivery-network.aspx
  25. Slide ObjectivesUnderstand Drives at a high levelSpeaker NotesBacked by Page blobsAllows Page blob to be accessed as a drive letter on a Compute instanceRead write is limited to a single instance as a time.Data is cached for reads on local instanceAll write flushed operations are immediately committedNoteshttp://blogs.msdn.com/b/windowsazure/archive/2009/11/05/introducing-the-windows-azure-content-delivery-network.aspx
  26. Slide ObjectivesUnderstand Drives at a high levelSpeaker NotesCannot specify the drive letter to mount to. The mounted letter is returned as the result to MountDrive callTo snapshot Should flush all writes and then block with a lease while snapshotting driveThen can mount new snapshotHarder to predict storage charges due to unknown transaction counts- be careful and testNoteshttp://blogs.msdn.com/b/windowsazure/archive/2009/11/05/introducing-the-windows-azure-content-delivery-network.aspx
  27. Slide ObjectivesUnderstand Drives Mounting and CachingSpeaker NotesA Windows Azure drive acts as a local drive mounted on the file system and is accessible to code running in a role. The data written to a Windows Azure drive is stored in a page blob defined within the Windows Azure Blob service, and cached on the local file system.Because data written to the drive is stored in a page blob, the data is Durable.Noteshttp://blogs.msdn.com/b/windowsazure/archive/2009/11/05/introducing-the-windows-azure-content-delivery-network.aspx
  28. Slide ObjectivesUnderstand Drives APISpeaker NotesIn Storage Client APINo equivalent REST callsA Windows Azure drive may be mounted as a writable drive, or as a read-only drive if it is created from a snapshot of a page blob.To create a read-only drive, call the Snapshot method to create a new snapshot and return the snapshot&apos;s URI, then create a new instance of the CloudDrive object from the snapshot&apos;s URI and mount the drive Before a role instance mounts a drive for the first time, it must initialize the cache by calling the InitializeCache method.When a role instance mounts a writable drive, it acquires an exclusive-write lease on the associated page blob that it retains as long as the drive is mounted. If the same role instance attempts to mount a drive with the same URI a second time, the operation is ignored and the Mount method returns the local path to the existing drive.Noteshttp://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storageclient.clouddrive_members.aspxhttp://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storageclient.clouddrive.mount.aspx
  29. Slide ObjectivesUnderstand Drives under Failure scenariosSpeaker NotesAll writes must be flushed to be persisted to the underlying Page BlobRead/Write drives maintain a leaseUnmount drives in OnStop method of RoleIn failure will need to wait for lease to expire &lt; 1 minute before remountingNoteshttp://social.msdn.microsoft.com/Forums/en/windowsazure/thread/5742e360-6ea9-44b4-bd59-edf4c95d5e2a
  30. Slide ObjectivesUnderstand TablesSpeaker NotesThe Table service provides structured storage in the form of tables. The Table service supports a REST API that is compliant with the ADO.NET Data Services REST API. Developers may also use the .NET Client Library for ADO.NET Data Services to access the Table service.Noteshttp://msdn.microsoft.com/en-us/library/dd573356.aspx
  31. Slide ObjectivesUnderstand Tables and EntitiesSpeaker NotesTables store data as entities. An entity is a collection of named properties and their values, similar to a row- not an RDBMS thoughTables are partitioned to support load balancing across storage nodes. Each table has as its first property a partition key that specifies the partition an entity belongs to. The second property is a row key that identifies an entity within a given partition. The combination of the partition key and the row key forms a primary key that identifies each entity uniquely within the table.The Table service does not enforce any schema. A developer may choose to implement and enforce a schema on the client sideNoteshttp://msdn.microsoft.com/en-us/library/dd573356.aspxhttp://msdn.microsoft.com/en-us/library/dd179338.aspx
  32. Slide ObjectivesUnderstand Flexible EntitiesSpeaker NotesTables store data as entities. A table can contain entities of any shapeThere is no fixed schemaThere is no schema checkingThere is no strong typing- not that Birthdate is stored as both a datetime value and as a stringNot that we can add additional columnsNoteshttp://msdn.microsoft.com/en-us/library/dd573356.aspx
  33. Slide ObjectivesUnderstand The Basic Query SyntaxSpeaker NotesTables store data as entities. Querying is per the ADO.NET Data Services spechttp://msdn.microsoft.com/en-us/library/cc668784.aspxShould endeavour to always include the Partition key to limit scope of query- partitions always served by a single storage nodeNoteshttp://msdn.microsoft.com/en-us/library/dd573356.aspx
  34. Slide ObjectivesUnderstand The Partition KeySpeaker NotesTables are partitioned to support load balancing across storage nodes. A table&apos;s entities are organized by partition. A partition is a consecutive range of entities possessing the same partition key value. The partition key is a unique identifier for the partition within a given table, specified by the PartitionKey property. The partition key forms the first part of an entity&apos;s unique identifier within the table.The partition key may be a string value up to 1 KB in size.You must include the PartitionKey property in every insert, update, and delete operation.Noteshttp://msdn.microsoft.com/en-us/library/dd573356.aspxhttp://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/07/understanding-the-scalability-availability-durability-and-billing-of-windows-azure-storage.aspx http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstractions-and-their-scalability-targets.aspx
  35. Slide ObjectivesUnderstand QueuesSpeaker NotesThe Queue service provides reliable, persistent messaging within and between services. The REST API for the Queue service exposes two resources: queues and messages.Noteshttp://msdn.microsoft.com/en-us/library/dd573356.aspx
  36. Slide ObjectivesUnderstand the Value of QueuesSpeaker NotesQueues allow the apparent perf of app to be improvedWork can be buffered in queue and performed laterAllows simple async comms between rolesMore on this Day 2Noteshttp://blogs.msdn.com/b/eugeniop/archive/2010/05/11/windows-azure-guidance-the-get-delete-pattern-for-reading-messages-from-queues.aspx
  37. Slide ObjectivesUnderstand Queues in DetailSpeaker NotesThe Queue service provides reliable, persistent messaging within and between services. The REST API for the Queue service exposes two resources: Queuesmessages.Queues support user-defined metadata in the form of name-value pairs specified as headers on a request operation.Each storage account may have an unlimited number of message queues that are named uniquely within the account. Each message queue may contain an unlimited number of messages. The maximum size for a message is limited to 8 KB. When a message is read from the queue, the consumer is expected to process the message and then delete it. After the message is read, it is made invisible to other consumers for a specified interval. If the message has not yet been deleted at the time the interval expires, its visibility is restored, so that another consumer may process itNoteshttp://msdn.microsoft.com/en-us/library/dd573356.aspx
  38. Slide ObjectivesUnderstand Queues in DetailSpeaker NotesThe Queue service provides reliable, persistent messaging within and between services. The REST API for the Queue service exposes two resources: Queuesmessages.Queues support user-defined metadata in the form of name-value pairs specified as headers on a request operation.Each storage account may have an unlimited number of message queues that are named uniquely within the account. Each message queue may contain an unlimited number of messages. The maximum size for a message is limited to 8 KB. When a message is read from the queue, the consumer is expected to process the message and then delete it. After the message is read, it is made invisible to other consumers for a specified interval. If the message has not yet been deleted at the time the interval expires, its visibility is restored, so that another consumer may process itNoteshttp://msdn.microsoft.com/en-us/library/dd573356.aspx
  39. Slide ObjectivesUnderstand the Value of QueuesSpeaker NotesQueues allow the apparent perf of app to be improvedWork can be buffered in queue and performed laterAllows simple async comms between rolesMore on this Day 2Noteshttp://blogs.msdn.com/b/eugeniop/archive/2010/05/11/windows-azure-guidance-the-get-delete-pattern-for-reading-messages-from-queues.aspx
  40. No specific demo identified. Use the MMC or MyAzureStorage.com or Visual Studio to interact with blob storage.