Coming Up Next . . .

Two years ago (almost to the day . . . weird) I wrote a post about me leaving an awesome company to join another awesome company.  Today, I do it again.

I’ve been honored to serve as a National Architect with Neudesic for the past two years.  There I was able to follow my passion and work almost exclusively on cloud projects – specifically Windows Azure projects.  I was fortunate to work on some awesome and fun projects.  I’ve worked with some wicked smart and passionate folks.  I learned a lot.  To the team at Neudesic – “thank you”!

I wanted to take a minute to mention one person specifically – David Pallmann. I knew of David through his community work with Windows Azure.  We were both named Windows Azure MVPs in the first class of Windows Azure MVPs.  That year David posted a message on Twitter shortly before MVP Summit asking if anybody wanted to dive deep into Windows Azure and help him build something cool.  I wanted to learn more about this opportunity!  I talked with David and a few others at MVP Summit and was excited by what they had in mind.  After much personal debate, I decided to join their team.

I’ve been able to work side-by-side with David the past couple of years.  I’ve learned a great deal from him.  He’s crazy smart!  I’m also convinced the man doesn’t sleep.  He gave me a chance to follow my passion, and for that, I’m eternally grateful.  To David Pallmann – “thank you”.

What’s next?  Well, for the next week I’m going to do a whole lot of nothing besides work on my very poor golf game.  The weather is getting nice in Central Ohio, and I’m going to spend some serious time on the golf course.  I’m sure the “honey do” list will also rear it’s head.

After that, I will be joining the team at Aditi as a Principal Cloud Architect.  I’m excited to be joining an amazingly talented and passionate team there.  There is no doubt in my mind that I’ll enjoy working with Wade Wegner, Ryan Dunn, Steve Marx, Nuno Godinho and the rest of their team.  Should be some fun times ahead!

CloudDevelop Call for Speakers

August 2012 saw the first CloudDevelop conference come to Columbus, OH.  This August 30th, CloudDevelop is back.  We’d love to have you help make CloudDevelop bigger and better. The CloudDevelop call for speakers is now open.  Submissions will be accepted at http://bit.ly/CloudDevelopSpeakers until midnight on Friday, April 12thWe’re looking for sessions that fit into, but not neccesarily limited to, the following categories:

  • Windows Azure
  • Amazon AWS
  • Heroku
  • Google Compute/AppEngine
  • AppHarbor
  • EngineYard
  • SalesForce.com
  • Rackspace Cloud
  • VMware
  • Hyper-V
  • Public and Private Cloud
  • Case Studies

If it’s cloud computing, we’re interested!

Keep an eye on www.CloudDevelop.org and follow @CloudDevConf on Twitter for the latest details on CloudDevelop.  

What’s New for the Windows Azure Developer? Lots!! (Presentation)

Recently I had the pleasure of presenting about new Windows Azure features at a few excellent user groups Michigan (Ann Arbor and Lansing) and Boston, MA.  It was great getting to share the updated Windows Azure story with so many passionate developers!

During this presentation we covered Windows Azure Web Sites and Windows Azure Virtual Machines – probably two of the biggest recent platform enhancements.  We also touched on updates to the Windows Azure storage features, Visual Studio tooling updates, and well as a few nice productivity boosters in the Windows Azure SDK.

If you’d like to check out this presentation, you can view it on my SlideShare page.

What’s New for the Windows Azure Developer? Lots!!

The last two weeks have been huge for the Windows Azure platform. The Meet Windows Azure event in San Francisco on June 7th kicked off a week of announcements, which continued into TechEd last week. Getting most of the press, and rightfully so, was the announcements pertaining to the functionality now available in Windows Azure Web Sites and Virtual Machines (IaaS). These are without a doubt “game changing” in the cloud computing and Windows Azure space. There were also announcements related to Cloud Services (formerly known as ‘Hosted Services’ – the traditional PaaS offering), SQL Database (formerly SQL Azure), and Windows Azure Active Directory (which now includes Access Control Services).

Today I’d like to share a few areas of that are new for the Windows Azure developer. With the new Windows Azure SDK 1.7 and tooling now available in Visual Studio 2012 RC, there’s a wealth of new tools and techniques available. Let’s take a look at few of the new features now available.

Custom Health Probes (Pages)

The Windows Azure load balancer has always had the ability to check on the status of a role and remove it from rotation if the role is unhealthy. This was done by sending ping requests to the Guest Agent on the role instance. This was great, but it couldn’t tell if the service itself was able to handle requests. If there was a flaw with the service, such as not being able to connect to the database or a 3rd party web service, the load balancer would still send requests to the instance even though it may not be able to properly handle them.

With the new custom health probes, a custom page can be created that could do whatever checking is necessary and return an HTTP 200 if the service can handle requests. The Windows Azure load balancer uses the custom page in addition to the normal checking it does via the Guest Agent. Setting up a custom health page is easy.

1. Create the page – for example, HealthCheck.aspx. It should do whatever is needed to check that service is healthy (connect to the database, call another web service, etc.)

2. Add the configuration to the ServiceDefinition.csdef

a. Add a new LoadBalancerProbes element

b. Add the ‘loadBalancerProbe’ attribute to the InputEnpoint.

clip_image002

For more information on this feature, please visit http://msdn.microsoft.com/en-us/library/windowsazure/jj151530.aspx.

Service Bus Explorer (in Visual Studio)

Visual Studio’s support for direct management of Windows Azure roles and storage has traditionally been somewhat weak. It looks like Microsoft is investing a little more in this area now, especially for Windows Azure Service Bus. There is a new option in the Server Explorer for managing Service Bus. From there you can view the properties of a Service Bus queue, as well as send and receive test messages.

clip_image004

New Role Templates

When creating a new Windows Azure cloud service, there are now two new role templates to choose from: Cache Worker Role and Worker Role with Service Bus Queue. These new role templates set up a little boiler plate code to make working with the new cache features or Service Bus queues just a little easier.

clip_image005

Emulator Updates

Prior to SDK 1.7 the development emulators for Windows Azure relied on IIS and SQL Server Express or SQL Server. Starting with the June 2012 updates, the compute emulator now uses IIS Express and the storage emulator uses SQL Service Express 2012 LocalDB. This should make the emulators a little faster to start up and hopefully more reliable. If an application requires the full feature set of IIS, you can revert back to the full IIS web server.

clip_image007

Side-by-Side SDK Support

Windows Azure now supports multiple SDK installations on the same machine – starting with SDK 1.6 and SDK 1.7. This means no longer is it necessary to uninstall the previous SDK version whenever a new version comes out. In order to choose the version to use, select it from the dropdown box at the top of the New Windows Azure Cloud Service dialog window when creating a new project.

clip_image008

NuGet Packages

When creating a Windows Azure project in Visual Studio 2012 RC, NuGet packages are used for the Windows Azure dependencies. This means that instead of using whatever version is installed on your machine (via the SDK), Visual Studio will pull the latest version from NuGet. You can see this by looking at the packages.config file in your project. This is done for packages such as WindowsAzure.Storage (the storage client library), WindowsAzure.ServiceBus, and the new Microsoft.WindowsAzure.ConfigurationManager. This allows you to keep current (if you want) much easier.

clip_image009

Additionally, NuGet packages can be used to help speed the deployment and improve maintainability of our Windows Azure Web Sites. Using NuGet Package Restore we can let Visual Studio (or MSBuild) pull down the files we need, removing the need to add the files to our source control system. With Windows Azure Web Sites, the NuGet packages are cached on Microsoft’s servers allowing for faster downloads.

More details on NuGet Package Restore and WAWS at:

New CloudConfigurationManager class

There is a new class in SDK 1.7 that I think will be very welcome by Windows Azure developers. When writing code that needs to run, for whatever reason, both in the cloud (Windows Azure or the emulator) and locally, and that code needs to retrieve a configuration setting, it was often a minor pain to do so. Developers would often resort to writing a utility method that would check if the code was running in the emulator or not, and then retrieve the configuration setting from either the RoleEnvironment class or the ConfigurationManager class. Adding to this pain was that RoleEnvironment.GetConfigurationSettingValue() would throw an exception if the value wasn’t set – unlike ConfigurationManager.AppSettings[].

Now there is one class that can handle it all – CloudConfigurationManager. This class handles checking if the code is executing in a Windows Azure environment or not, and looks in the ServiceConfiguration file for the configuration setting. It also handles falling back to the application configuration (web.config or app.config) if the value isn’t in the ServiceConfiguration file.

clip_image011

Summary

As you can see there is a lot of new features and functionality available to those developing solutions that take advantage of the Windows Azure platform. I’ve only scratched the surface here. There are tons of new features in Windows Azure storage, the Service Management API, virtual networking, etc. I’ll be exploring more new features in upcoming articles. Exciting!!

Detroit Day of Azure – Presentations

On Saturday (3/24/2012) I was honored to be a speaker at Day of Azure in Detroit.  The community in the Heartland is amazing!  The event sold out!!  It is great to see 144 passionate people attend a daylong event to learn more about the possibilities with cloud computing and Windows Azure.

A huge “thank you” should go out to David Giard and the other volunteers at Day of Azure for putting on such a great event. They really did a wonderful spreading the word and hosting the event.  Oh, and the BBQ for lunch . . . oh so very good!

I gave two sessions at Day of Azure – “Windows Phone 7 and Windows Azure – A Match Made in the Cloud” and “Building Hybrid Applications with Windows Azure”.  I was asked by several attendees if I’d be making the presentation available, and so I am.  You can take a look these, and a few other of my presentations, over on SlideShare.

The Hybrid Windows Azure Application

Windows Phone 7 and Windows Azure – A Match Made in the Cloud