February 2009 - Posts

Azure Details and Limitations - Blobs, Tables, and Queues

The Dallas Azure User Group will be meeting tomorrow at the Microsoft offices in Irving for our second meeting.  I'm teamed up with Mike Holdorf and Rob Vettor to discuss Azure storage, namely Blobs, Tables, and Queues.  The listing below is the document that I put together to hand out at the meeting with the "Details and Limitations".  This should help us in our application designs as we move some of our systems to the cloud.  These details are from the current SDK help file.

 

Windows Azure Details and Limitations
Blobs, Tables, and Queues

( From the Windows Azure SDK Help File )

Blobs

  • Block Id - 64 Bytes Per Block
  • PutBlob - 64 MB Total
  • Blob MetaData - 8 KB Per Blob
  • PutBlock / PutBlockList - 50 GB Each
  • Blocks - 4 MB Each

 

Container Name:

  • Valid DNS Name
  • All Lowercase
  • 3 to 63 Characters
  • Starts With Letter or Number
  • Letters, Numbers, and Dash (-)
  • Every Dash (-) Must Be Immediately Preceded and Followed by a Letter or Number

Blob Name:

  • 1,024 Characters Max
  • Any combination of characters, but reserved URL characters must be properly escaped
  • Specify a delimiter within a blob name to create a virtual hierarchy though blob storage is flat and not a hierarchical

 

Tables

Table Name:

  • Only Alphanumeric Characters
  • Case-Insensitive
  • 3 to 63 Characters
  • May Not Begin With a Numeric Character
  • Up to 255 Entity Properties (including PartitionKey, RowKey, and Timestamp)
  • 1 MB Max for Combined Size of All Data in an Entity's Properties

 

Property Name:

  • Case-Sensitive
  • 255 Characters Max
  • Only Alphanumeric Characters
  • Must Begin With a Letter

Queues

  • Messages - 8 KB Max
  • Messages pushed to end of queue and popped from front of queue (FIFO)
  • Unlimited number of messages

 

Queue Name:

  • Valid DNS name
  • All Lowercase
  • 3 to 63 Characters
  • Start With a Letter or Number
  • Letters, Numbers, and Dash (-)
  • First and Last Letters Must be Alphanumeric
  • Dash (-) character may not be the first or last letter

Posted by vblasberg with 5 comment(s)
Filed under: ,

Azure Services Labs – Blobs, Queues, and Tables

Woohoo!!! The Azure Services Training Kit was updated this week.  Well, maybe it's not that exciting because it means more work or "fun" training.  It all depends on whether the sun is shining and I can ride the Goldwing.  It's overcast and very windy so I'm "enjoying" the Azure Services Training Kit Labs.  I walked through some of the labs this weekend, primarily the Blobs, Table, and Queue labs to better prepare for our Dallas Azure User Group talk on the 18th of this month.  Mike Holdorf, Rob Vettor, and I are teaming up to present the topic of Azure Storage.  It should be noted that the labs use the very useful SDK wrapper to abstract all of the REST complexities.  So if you want to learn everything about Azure REST calls and how to handle retries and storage details, peek into the SDK example classes.  In most cases, people just want to get the job done so these high level labs are very useful.

Now you want the fast track to learning Azure using these labs?

  1. Watch some videos to get acclimated with what the Windows Azure Platform is. These videos are listed in my previous blog post on Windows Azure Resources.
  2. Install the Azure Services Training Kit
  3. Open the file: C:\AzureServicesKit\Labs.htm to list the "Hands-On Labs".
  4. Perform each lab, starting with the first, to get the basic skills such as debugging in the development environment (Dev Fabric). The simplest way to walk through the labs is to just open the Word DOC and follow the instructions.

Leveraging the Azure SDK

The Azure SDK includes a DLL Wrapper located at "\Program Files\Windows Azure SDK\v1.0\samples\StorageClient".  This is well written class library to make Azure Storage development easy.  This is an extremely useful component that saves everyone time by avoiding the time to write individual REST interfaces to the Azure API.  It's the code that we all would have written with at least a week of free time on our hands.  It's also the code we should review to imitate the calls on other platforms such as Mono or non-dotnet environments for our REST calls.  For blob calls, we would then look at the RestHelpers.cs, RestBlobStorage.cs, and the higher level calls in BlobStorage.cs.

Lessons Learned While Using the Azure Storage Labs

  • Read the Windows Azure SDK CHM file. This is a great resource for limitations and error messages.
  • To clear the database when all is done, from the Windows Azure SDK prompt, run "dsinit /forcecreate /server:<SQLServerInstance>"
  • From the SDK Documentation: Development storage supports only a single fixed account and a well-known authentication key. This account and key are the only credentials permitted for use with development storage. They are:
    • Account name: devstoreaccount1
    • Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
  • I manually changed the SQL Server instance from "localhost\SQLExpress" so I could use my local SQL Server 2008 instance in the development fabric. But when the option is selected during the lab to "Create Test Storage Tables", it uses MSBuild tasks to create the tables. The setting in the Targets file is set for SQL Express.

 

For future references, after installing an Azure SDK update that overwrites these files, there are three places in two files to specify a different database location for the development fabric.

  • C:\Program Files\Windows Azure SDK\v1.0\bin\DevelopmentStorage.exe.config
  • C:\Program Files (x86)\MSBuild\Microsoft\Cloud Service\v1.0\ Microsoft.CloudService.targets

-Vince

Posted by vblasberg with no comments
Filed under: ,

Notion Tools for Team System

The company that I work for, Notion Solutions, has just announced a suite of extensions to Microsoft Visual Studio Team System.  Here is an excerpt from the website:

These tools add new capabilities that help teams manage work better, plan schedules, visualize work relationships, manage requirements and requirements documents, record time, and more. The individual products that make up Notion Tools for Team System include:

There is an FAQ available for more information.

I've worked with the team at Notion for quite a while building up these tools.  The tools will continue to gain features through the next few months.  Be sure to download a trial version from the site and see if they boost your TFS productivity. 

-Vince

 

Posted by vblasberg with no comments

If I Ran Microsoft

I saw the "If I Ran Microsoft" video online today.  It mentioned the public image for Microsoft and the great things that they do.  The video showed the "We Are Microsoft Charity Challenge Weekend".  It was a big deal for those charities that now have a great system to do their charity work with.  I'm so glad that I had a part in it this year.

    

No.  This isn't my version of the "If I Ran Microsoft".  I'm not presumptuous enough to think I know how to keep such a huge company running properly with a real profit.  There are marketing engines in place and research being done to ensure its success.  Think about the magnitude of Microsoft (like Wal-Mart unfortunately).

  • Employees and Their Families
  • Microsoft Partners and Their Employees and Families
  • Independent Developers and Companies that Rest on Microsoft Systems and all employees and Families
  • The Auto Industry selling new cars while getting bail-out money (sorry - bridge loans) and the Unknown Loan Companies that bought the auto loans from them a long time ago for all of those people mentioned.

Microsoft has a huge impact on the country where open source software and the expensive support that comes with it cannot replace.

-Vince

 

Posted by vblasberg
Filed under:
More Posts