Monitoring and Managing a Simple Azure AppFabric Application

In my last post we walked through deploying a simple Azure AppFabric Application that consisted of an ASP.Net Web application and a Workflow Service. In this post we are going to walk through some of the features that are available within Application Manager that is available in the Azure AppFabric June 2011 CTP.

Application Manager is not something that is included in the Local Dev Fabric so this is something that will require access to the Azure AppFabric lab that is currently in a public, but limited availability, CTP format. I put in my request on the https://portal.appfabriclabs.com/ site. It took about 2 weeks to get accepted but mileage may vary.

Since deploying my simple workflow application, I have had the chance to call my application a few times so we can start looking at some of the Health and Performance data that has been collected.

The first stop is on the left hand side where we will discover a summary of the applications we have deployed. If we want to take a look at some high level Monitoring details we can do so by clicking on the Monitoring link.

From the Monitoring view we have the opportunity to discover some metrics related to our services that we have deployed to Azure.

Currently we have the ability to see metrics for the past 1 hour or 24 hours and can easily toggle between these two values.

We also have the ability to drill down (a little bit) by clicking on the arrow where a little graph will be displayed. In this graph we can see the ASP.Net Request latency based upon the time slice.

So is this enough info to really monitor a production application? Probably not but do remember it is still in CTP. Coming from a BizTalk background, I like all of the tracking information that it provides where I can see a break down of the execution across Receive Ports, Orchestration and Send Ports. Also the ability to replay the execution of an Orchestration, or in this case a Workflow would be really nice. My expectation around tooling for cloud applications is that it should be the same as on-premise if not better since we may not have as many sources (logs/counters) to look at. But once again this is CTP so I fully expect to see more detailed monitoring in a production release of AppFabric Applications.

The next area we are going to explore is the Admin Log which will highlight Info, Warning and Error events.

Since the application that I have deployed is so robust (err.. Simple) we discover that we have 8 Info events and no Errors or Warnings.

If we click on the Info link we will get a summary of these events. In this case the information is really related to our last publish, deployment and starting of our application.

The last area that we are going to explore in this post is the Scale feature.

Here is where we will discover some of the true benefits of Azure’s elasticity. Organizations look to scale their applications out across multiple, or redundant, sets of hardware. It usually servers two purposes: Reliability and Scalability. In the Reliability area, should one server go down we know that we have at least another server that can pick up the load with the expectation that performance will probably suffer but at least we are not outright down. The second area; Scalability really deals with performance with the idea that two instances (or servers) are better than one.

Having the ability to scale your application out, by simply selecting a value from a dropdown, to multiple “hosting” instances is extremely powerful. Currently, in a typical corporate environment, there is a lot of red tape and procedures that need to take place before provisioning additional server resources. This isn’t to say that organizations don’t have to deal with some red tape when provisioning in the cloud but if you think about some of things involved in adding a server to a data centre it is significant. Things like rack space, storage, network configurations, OS installation, joining it to the domain, installing Service Packs and Security updates. To top it all off, these activities all take place before you can actually install your application.

In the Azure AppFabric world this is as simple selecting the number of instances that you would like to scale out to for a particular container and clicking the Save button.

This convenience doesn’t come for free though. You can expect your credit card to reflect the addition instance(s) that you have just provisioned. If I think about how long it takes to deploy a new server at my organization, this is truly mind blowing!

Conclusion

To date the Application Manager is fairly simplistic but it is definitely a step in the right direction. I am still really impressed with what I have seen with Azure AppFabric Applications. I think it greatly simplifies both building and managing distributed applications for the cloud. I am extremely confident that this technology will only get better.