COS371-INT How to Monitor and Manage Windows Azure-Hosted Applications
Microsoft follows their standard online service life cycle of design, engineer, operate, and optimize. They are now developing some Azure applications for lower start-up costs and faster turnaround (it takes up to three months to get servers resourced).
Casey Jacobs (Sr. Director of Operations) gave some real-world examples of their Azure experience.
With typical application releases, the stages for release are development, test, integration, internal dog food, CTP, and production. As with most enterprises, inconsistency between the environments will cause problems.
With Windows Azure, all of the environments are identical – there is no ‘test’ cloud. That said, the same environments are needed, but are all located in the same cloud. To not follow typical release patterns is not recommended.
Typically upgrades are done one compute resource at a time, and because both old and new versions may be running, backward compatibility must be maintained. Azure does provide an additional upgrade method – virtual IP swap. In this case, bring up a staging subscription, configure and test the new version, and switch the virtual IP (public facing IP for the application) to the staging farm. This has additional subscription costs but can balance out by removing the backward compatibility issue.
A recommendation for all upgrades and deployments is to fully automate them. To this end, PowerShell can be used (add in AzureManagementToolsSnapIn).
Monitoring with SCOM can be done with the Windows Azure Management Pack, which connects to the data storage API’s to get events and performance data.
To do this, you must configure the Azure roles to log to a storage pool, and to write events and performance data and .NET trace events to the storage pool. It’s recommended to have this as a separate storage pool from any application role for separation of application data from administrators.
Though this is not specific to Azure but a general development practice, write application events that are useful to be taken action on, plus create custom performance counters that are relevant to the health of the application.
Monitoring can be done both outside-in by monitoring synthetic transactions, and ouside-in of role and storage components. Actual daily usage data can be gathered. Two references for this are the Azure MP Guide and Monitoring and Diagnostic Guidance for Windows Azure-hosted Applications.
Subscribe to:
Post Comments (Atom)


0 comments:
Post a Comment