This course will provide a deep and thorough understanding of the Windows Azure storage services. After covering the basics the content will cover the more advanced topics, and round off with real-world scenarios of how the storage services can be used in distributed applications. The first modules will cover the use of storage accounts and the storage client library. The next three modules will cover the Windows Azure Storage Services, blobs, tables and queues. The final three modules will cover performance and scalability, using shared access signatures and transient fault handling.
Alan Smith is a Windows Azure developer, trainer, mentor and evangelist at Active Solution in Stockholm. He has a strong hands-on philosophy and focusses on embracing the power and flexibility of cloud computing to deliver engaging and exciting demos.
Windows Azure Storage Accounts Hi. My name's Alan Smith and in this module we're going to look at Windows Azure Storage Accounts. We'll take a quick overview of Storage Accounts before going into the management details, looking at service level agreements and scalability targets. We'll take a look at the billing model and the types of charges that can be incurred when using Windows Azure Storage services and we'll take a look at some of the useful tools that developers and administrators can use when working with Windows Azure Storage Accounts.
Storage Account Management & Monitoring Hi. My name's Alan Smith and in this module we're going to look at Storage Account Management and Monitoring. We'll start off looking at managing accounts using the Windows Azure portal. We'll then look at using Windows Azure PowerShell and using PowerShell cmdlets to automate the management operations. We'll then look at combining those PowerShell cmdlets to do scripted account management. Look at how we can configure monitoring and logging for Windows Azure Storage accounts and then we'll look at how we can view this monitoring data to get an insight into how our storage accounts are performing.
Windows Azure Storage Client Library Hi. My name is Alan Smith and this modules going to take an overview of the Windows Azure Storage Client Library. We'll start off by taking a high-level overview of the Client Library, we'll then look at how we can install the Client Library, we'll look at the various tools and SDKs, and also how we can obtain the Client Library as a NuGet package and get the source code to the Client Library on GitHub. We'll then take a look at some of the core classes in the Client Library before moving on to look at some basic storage client programming. The storage services in Windows Azure expose a REST API for all of their operations, so it is possible to build applications that work directly with this REST API. However, when we're creating an application we may want an easier way of being able to work with the storage services. What we can do is use the Storage Client Library within the application to provide both management and runtime operations against the storage services. The Storage Client Library is updated fairly regularly. The version 2. 0 for Client Library, released in October 2012, saw some major changes. The dll name itself was changed. There was a major rework of the namespaces and some of the methods for working as blobs, such as directly uploading text and files, had been removed in that SDK version. In September 2013 we got version 2. 1 of the SDK. The major changes there were support for IQueryable on the Table Services Layer asynchronous task methods and, due to popular demand from developers, they added the Blob Text, File, and Byte Array methods back into the SDK. These two version changes required developers to do quite a bit of work in modifying their applications to update to the new versions, especially with table query operations. Hopefully, going forward from version 2. 1, there aren't going to be too many breaking changes in the SDKs.
Windows Azure Storage Queues Hi. My name's Alan Smith and in this module we're going to be taking an in-depth look at Windows Azure Storage Queues. We'll start off by looking at using queues in applications, some of the advantages of using queues, and how they can help in the design of distributed applications. We'll then look in depth at programming with queues and messages. We'll look at the various options for sending and receiving messages and techniques that can help us improve performance. We'll look at message serialization and how we can use data contract serialization to serialize. NET classes onto Windows Azure queues. We'll also look at how we can handle poison messages. We'll compare the Windows Azure Storage Queues with Windows Azure Service Bus Queues and we'll round off the module looking at a couple of real world queue scenarios. The first scenario that we'll look at is Workload Distribution and we'll look at the implementation of the global render lab that was used during the global Windows Azure boot camp. The lab involved boot camp attendees from around the world, creating a massive scale 3D render form in Windows Azure, which, at one point, had up to 4500 Worker Roles rendering 3D animations. Windows Azure Storage Queues were used to distribute the load between all these Worker Roles. The second scenario is a pet project that I've recently started working on and it will focus on using Windows Azure Storage Queues for distributed messaging. The scenario is based on an open source driving game for the Windows XNA platform. The driving game has been modified to send telemetry information to Windows Azure Storage Queues. We then have a pit lane telemetry application that can receive the messages from the queues and display detailed information about how the drivers are driving around the laps, showing the position on the track, and the speed of the car.
Windows Azure Table Storage Hi. My name's Alan Smith and in this module we're going to take an in-depth look at Windows Azure Table Storage. We'll start off by discussing non-relational entity storage and comparing it with traditional, relational data storage systems, such as SQL Server. We'll then look at programming with tables and look at some of the basic table operations and some of the more advanced features like using batches and optimistic concurrency. We'll then use the racing game scenario to look at table storage design strategy and look at how a lap data and telemetry data can be efficiently stored and queried in table storage. Once we've covered the strategy, we'll examine the implementation of the data storage access class in the driving game, and we'll round off the module with a fun demo looking at how we can use this telemetry data to attempt to beat the fastest lap. In the previous module one of the scenarios was a driving game that was modified to send lap and telemetry data to queues in a Windows Azure Storage Account. The scenario has now been enhanced to store this data in Windows Azure Table Storage. We have a Worker Roles in Windows Azure that's dequeuing the data from the queues and inserting that data into the tables. We also have a Windows Azure website hosted in Windows Azure that allows drivers to view their lap times and also query the telemetry data for each lap. We also have a Windows presentation foundation application that allows race engineers to query and analyze the telemetry data and get detailed information about how drivers are driving around the lap. The game itself has also been modified. With the addition of a kinetic energy recovery system, or KER system, to the game. The telemetry data that the game generates will be useful in analyzing how drivers use this new KER system.
Windows Azure Blob Storage Hi, my name's Alan Smith, and in this module we're going to take an in-depth look at Windows Azure blob storage. We'll start off with an introduction to programming with blobs and see scenarios where blob storage can be useful in applications. We'll then look at a scenario where we can use blob storage to store website content. Storing photos and video files for a website that hosts webcasts. We'll then look at how we can optimize blob operations, looking in-depth at the way the storage client uploads large blobs and seeing how we can configure the client to optimize this process and make use of parallel operations. We'll then look at a scenario where we use blob storage as an offsite backup for photos. And we'll round off the module by looking at how blob storage can be used to store replay data for ghost cars in a 3D driving game.
Windows Azure Storage Scalability and Performance Hi, my name's Alan Smith and this module's going to look at the scalability and performance of Windows Azure Storage. In the scenario for this module we'll be taking the text content of over 4. 3 million Wikipedia articles, storing the article text data in blobs, and providing a simple text search index using a Windows Azure Storage table that contains over 1 billion entities. We'll start off by running through the data import process. I'll then demo the data import process with a small subset of the Wikipedia content data. And we'll round off the module looking at the table query performance on an index table containing over 1 billion entities.
Using Shared Access Signatures Hi, my name's Alan Smith and this module's going to look at using Shared Access Signatures. We'll start off by taking an overview of shared access signatures and look at some of the advantages of using them. We'll then look at using shared access signatures for blobs and queues and then look at using shared access signatures for tables. We'll round off the module by looking at using server stored access policies and also covering best practices for using shared access signatures.
Transient Fault Handling Hi, my name's Alan Smith and this module's going to look at Transient Fault Handling. We'll start off by examining transient faults in distributed applications. We'll then look at the Windows Azure Storage client API and look at how to handle storage exceptions and the default behavior that the API provides for transient fault handling. We'll then look at how we can override this default behavior by creating customized retry policies. We'll round off the module by looking at more advanced transient fault handling using the transient fault handling application block. Although I'm going to be focusing on Windows Azure storage in this module, there are many other scenarios where we'll need to understand how to handle transient faults correctly.