DevLink 2014 Presentations

Last week I had the privilege to speak at DevLink in Chattanooga, TN.  I had a great time!  It was fun to present.  I was also was able to attend some great sessions.  DevLink is always a top notch event to attend.

I had a full load of presentations – four in three days!  Overall I think the sessions came together very well.  If you attended any of my sessions, I would greatly appreciate any feedback. You can find a copy of all my presentations below and on SlideShare.net

  1. Programming Azure Active Directory
  2. Inside Azure Diagnostics
  3. Automating Your Azure Environment
  4. More Cache for Less Cash

Azure Website & Managed Cache Service

If you’re working with an Azure Website and trying to use the Azure Managed Cache Service, you really need to be on either the Basic or Standard tier for the Azure Website.  Apparently the Azure Managed Cache Service is not supported when on the Azure Websites Free or Shared tiers.

If using the Free or Shared tier of Azure Websites, and trying to access the Azure Managed Cache Service, you’ll get an error similar to this one:

Failure in About. Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode<ERRCA0017>:SubStatus<ES0016>:There is a temporary failure. Please retry later. (CRL Server for SSL Certificate is offline) —> Microsoft.ApplicationServer.Caching.ChannelAuthenticationException: CRL Server is offline —> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.

No amount of retry logic will fix this error.  Gnarly, huh?

The fix is easy enough though. Scale your Azure Website to either the Basic or Standard tier.  You can make the Azure Website change easily via the Azure management portal.

Inside Azure Diagnostics – Pittsburgh Tech Fest (June 2014)

Today I had the pleasure to present at Pittsburgh Tech Fest.  I presented a new session on how to best utilize Azure diagnostics with Cloud Services (web/worker roles).  This was my second time presenting at Pittsburgh Tech Fest, and again it was a great time!

I had several people ask for my presentation.  Cool – no problem.  You can get my slides from my SlideShare.net account.

BONUS: If you want to know more about Azure diagnostics, please be sure to check out my new series at JustAzure.com.

Getting the Windows Azure PowerShell Cmdlets

I’m a big fan of using the Windows Azure PowerShell cmdlets for managing my Windows Azure resources.  They’re incredibly helpful, especially when I need to repeatedly take care of multiple tasks.

There are two ways to get the Windows Azure PowerShell cmdlets – the heavy way and the light way.

Get All the Things!

I would assume most people get the Windows Azure PowerShell cmdlets by taking the path of least resistance.  They go to the Windows Azure downloads page, click the link to “Install” the cmdlet, and let the Web Platform Installer (WebPI) do its thing.  That’s all fine, but it does a lot.  What’s a lot?  Let’s see . . .

Azure PowerShell Web PI

Trying to install the cmdlets via WebPI will also attempt to install a bunch of other software you might not expect, such as:

  • Windows Azure Emulator
  • Microsoft SQL Express LocalDB Edition
  • IIS 8.0 Express
  • Windows Azure Storage Tools
  • Windows Azure Authoring Tools
  • Windows Azure SDK

If you’re an IT Pro / systems admin type of person, that’s probably more than you would expect, or need.

Get Just the One Thing!

If you want just the Windows Azure PowerShell cmdlets, the path of absolute least resistance is to download the latest release from GitHub – https://github.com/WindowsAzure/azure-sdk-tools/releases.  From here you can find links to download via Web PI (we already know what that will bring with it), or get the MSI by itself.

powershell_github

Download and run the MSI and you start off with something pretty familiar and basic.

powershell_msi

Windows Azure Cache Options

This week (January 27th – 31st) is Windows Azure week.  As part of Windows Azure week, I was honored to publish a blog for Microsoft Press where I highlighted the various cache options available in Windows Azure.  In this post I discuss both In Role Cache for Cloud Services (web and worker roles) and the new Cache Service for use with Cloud Services, Web Sites, and VMs.  The post goes into detail on how to set up both options, along with some suggestions on which to select for your scenario.  I had a lot of fun writing the post.  I hope you’ll enjoy reading it.

You can read the post on the Microsoft Press blog at http://bit.ly/1hG4bss.

Windows Azure Week

During this week Microsoft is hosting a series of events to help developers and architects understand the features available in Windows Azure, and techniques for how to use them effectively.

  • Monday, January 27th – Getting Started with Windows Azure Today Jump
  • Tuesday, January 28th – Designing Applications for Windows Azure
  • Wednesday, January 29th – Building Modern Web Applications
  • Thursday, January 30th – Windows Azure IT Pro IaaS
  • Friday, January 31st – Mobile Apps to IoT: Connected Devices with Windows Azure

This is sure to be a great series of webinars lead by some of Microsoft’s top cloud experts.  Learn more and register today at http://aka.ms/Rvo1y0.

CodeMash 2014

Last Friday wrapped up the 8th CodeMash conference. CodeMash is probably . . . no, it is . . . my favorite conference to attend each year. CodeMash is packed with the most passionate technologists I know. Many attendees are from the MidWest, but an increasing amount are from all over the U.S. and even the world! CodeMash is a great way to re-energize and kick off a new year.

I was fortunate this year to again be a speaker at CodeMash. I gave two presentations – “More Cache with Less Cash” and “Windows Azure Mobile Services – The Perfect Partner”. I would like to thank everyone that attended the sessions. I know I had a good time, and I hope you did as well – and hopefully learned a few things along the way. A few people have asked for my slides. You can find slides for both sessions below.

Azure Management Studio and Blob Container ACLs

Here’s a quick tip I recently learned from my friend, and Cerebrata evangelist, Mike Wood . . .

When using Cerebrata’s Azure Management Studio to work with Windows Azure blob storage, you need to explicitly tell AMS to retrieve the access permissions for blob containers.  By default, AMS will only list the containers.

no_acls

To make this tool even more useful, instruct AMS to retrieve the permissions when listing the containers.

  1. Under the “Tools” menu at the top, select “Options”.
  2. In the “Options” window, go to the “Blob” tab.
  3. In the “Blob behaviour” section, check the box next to “Fetch Blob Container ACL when listing Blob Containers”.

set_option

This will instruct AMS to get the permissions and thus color highlight the containers.  Ooooh . . . pretty colors!

with_acls

How is AMS getting this info to know what the permission is for the containers?  Simple – it’s just calling into the Windows Azure storage API.  The Get Container ACL operation retrieves the blob container permissions.  If we open Fiddler and take a look at the requests AMS is making, we can see 4 requests for my example – one to retrieve the list of containers and one for each of the containers.

Note: I instructed AMS to not use HTTPS for connections.  I did this only to make visualizing the requests/responses in Fiddler easier.  I would recommend HTTPS for most production scenarios.

all_reqeusts

Let’s look at just the request to get the ACL for the “myimages” container.

request-response

Notice the “x-ms-blob-public-access” response header.  It is set to “Container”.  This indicates full public read access for the container and blob data.  Therefore, AMS colors this container a lovely shade of green.

A word to the wise – there is a reason why this option is not enabled in Azure Management Studio by default.  If the storage account contains many containers, this could result in many extra requests to Windows Azure to determine the ACL – one roundtrip per container.  This could slow down your time to view all the containers.  If you just have a few containers, it’s probably not a big deal as this request/response dance happens pretty fast.

So that didn’t exactly turn out to be a quick tip.  But, still hopefully useful.  Enjoy!