Many IT organisations depend upon the performance of large-scale applications in order to generate revenue. For example, a movie site may use an application to stream movies; or a travel site may depend upon an application to allow customers to make travel reservations.
In order to make these applications as agile as possible—and ensure they have the required capacity to scale at all times—some organisations are migrating their critical apps to the cloud. But in order to do so successfully, it’s necessary to monitor those applications and ensure that they’re performing as strongly as possible at all times.
Easier said than done, you say? You have good instincts. Monitoring apps in the cloud is best done with care and caution. Here is a list of ‘gotchas’ you should look out for when monitoring apps in the cloud.
1. Don’t just monitor infrastructure
With applications that run in the cloud, monitoring infrastructure metrics indicates very little about your end-user experience, or the performance of your apps or business that’s running in the cloud. End users experience business transactions—an action generated by the user, such as “Add to Basket” or “Make Travel Reservation.” Make sure your monitoring gives you end users’ business transaction visibility.
2. Understand how capacity works in the cloud
One of the main reasons to host your application in the cloud is the ability to increase or reduce capacity as needed. To do this, your application may provision and de-provision servers frequently. If you’re monitoring your application, you should be prepared to deal with this. The monitoring solution has to work in a dynamic, virtual and elastic environment where change is constant. Otherwise, you’ll end up with blind spots in your monitoring.
3. Make sure you’re deep in the app—don’t just monitor network performance
The “easy way out” to monitoring app performance is to simply monitor the network, such as with using a packet sniffer or other network monitoring tool. Many application support teams use this shortcut to monitor their apps. The problem is, it doesn’t work in the cloud: you won’t be able to place these kinds of devices in PaaS or IaaS environments to monitor your application performance. And even if you could, you won’t get the deep diagnostics truly needed. It may be necessary to use agents on the server level in order to get the deep diagnostics that are required to understand app performance.
4. Avoid high network bandwidth costs
Cloud providers typically charge per gigabyte of inbound and outbound traffic. If your cloud application has 100 nodes and you are collecting megabytes of performance data every minute, all of that data has to be communicated outside of the cloud to your monitoring solution’s management server, which can be on-premise or in another cloud. Monitoring what’s relevant in your application,- versus monitoring everything – means you’ll avoid exorbitant cloud usage bandwidth costs for transferring monitoring data.
5. Avoid inflexible licensing
If you want to monitor specific nodes will your application monitoring vendor lock each license down to a physical server, hostname or IP? Or can your licenses float to monitor any server/node? This can be a severe limitation as now your agents are locked down to a specific node indefinitely. Make sure your cloud and application vendor offer a flexible licensing model.
The benefits of running your applications in the cloud can be tremendous. You can automatically gain the capacity you need at peak usage times, thus avoiding costly outages and performance slowdowns. What’s more, you can make significant savings on hardware costs. But if your apps are in the cloud, you’ll want to carefully monitor their performance – and make sure you don’t lose more than you gain.