If you haven’t tried Fluent Management yet try it now! It’s beginning to shape up into quite a powerful library. There are several features which are on cards for the lib between v0.4 and v0.5 most of which revolve around ServiceSystemWatchers and Upgrades but the deployment side of things is done now. We’re also going to update the Service Bus side of things to create multiple service identities with new queue creation. There are a few updates which need to be done to support rdp, ssl enablements across multiple roles instead of a single one as well as an error router which will deal with common web exceptions through a notification interface but on the whole it can do some pretty good things in a very easy to understand manner. We’ve had 187 downloads so hopefully people are using it even though we haven’t had that much feedback.

A common scenario we’re using it for now are as follows:

  • Upload a package to Blob storage
  • Auto-update the configs (.cscfg, .csdef on the fly using business rules)
  • Deploy the package with 3 roles, rdp support and an autgenerated self-signed SSL/RD certificate in the name of the role
  • Create a SQL Azure instance, logins, firewall rules, single database, new admin user and populate the database
  • Add a storage account and return the keys

Of course the beauty around these scenarios is that this is an all or nothing thing so we’ll have a rollback occur if there is a failure at any point. The logging support is okay at the moment to help determine the failure scenarios but it will be much better by the next v0.5 release.

Hope you enjoy using this. Remember this is beta and it was released to try and get feedback from the community so if you have any comments or suggestions let us know.

UPDATE: Added the framework this morning for watching things. It should be really easy now to drop in a watcher to keep an eye on whether someone deletes your database, database server, storage account, hosted service, deployment in staging or production etc. can lead to some very useful scenarios.

The only one I’ve implemented is the one that Michael Collier from Neudesic requested since I think it may be useful for a number of people but when I get time I’ll add the others because it would be nice to have a simple monitoring and supporting reference service off the back of the lib.

Anyway, the code from my test looks like this (it will poll every 15 seconds by default) – if you haven’t got it Azure Fluent Management from nuget:


var man = new ManualResetEvent(false);

var subscriptionManager = new SubscriptionManager(TestConstants.LwaugSubscriptionId); var manager = subscriptionManager.GetRoleStatusChangedWatcher(TestConstants.LwaugServiceName, TestConstants.LwaugRoleName,                  DeploymentSlot.Staging, TestConstants.LwaugThumbprint);

manager.RoleStatusChangeHandler += (status, oldStatus) =>  {

Assert.AreNotEqual(oldStatus, status);

man.Set();

};

man.WaitOne(10000);