Cloud application monitoring is the Rodney Dangerfield of cloud technologies - it gets no respect... but it ought to. Notice how much of the discussion around cloud computing is about how to design, build or deploy cloud applications. There are healthy debates around frothy topics like security and vendor lock-in. However, when it comes to how cloud applications (SaaS) are monitored and managed on an ongoing basis, there's a dearth of information and interest.
Perhaps there's a working assumption that monitoring cloud applications is only marginally different from monitoring internal enterprise applications. That assumption couldn't be more wrong. Undoubtedly, there are similarities in the monitoring of enterprise applications that transpose seamlessly to the cloud. But monitoring cloud applications bring new challenges that need to be addressed by the IT organization.
Here are just five challenges that make monitoring cloud applications fundamentally different from monitoring the traditional on-premise enterprise application.
Virtualized Resourcing - Virtualization in both private and public clouds pose a new challenge to systems monitoring tools. Instead of simply monitoring the key system elements of each individual physical node, the use of virtualization creates a dynamic capacity pool of compute and storage resources that needs to be monitored and ultimately managed in a completely different way. For example - monitoring the hypervisor layer for performance, resource capacity isn't something traditional systems management tools were built to handle.
Profiling End User Response Times - End user performance monitoring is different for a cloud application for two reasons. First, cloud applications operate across the open public network - a fact that poses its own challenges in being able to effectively monitor response times. Also, due to nature of SaaS, end users are often distributed across the globe - location is no longer a limitation in application accessibility. This makes determining end user response time particularly difficult. If users in Singapore experience slow performance, how do you measure the effective application response times and determine if its due to the Internet or the application? End user response times used to be easier with on premise, enterprise applications.
Web Scale Load Testing - One difference between on premise enterprise applications and cloud applications is scale - in short, enterprise scale vs web scale. Enterprise scale is bounded, predictable and measurable. Web scale experienced by cloud applications isn't. The traffic spikes with cloud application are seemingly unlimited and unpredictable. Performing load testing in web scale is a present challenge in testing and monitoring cloud applications.
Multi-tenancy - Multi-tenancy is an architectural construct that introduces new challenges to monitoring. Conventional multi-tenant architectures provide a single instance of the application, founded on common data model servicing multiple tenants (customer/client accounts). This logical abstraction makes it more challenging to monitor and profile individual client performance indicators. Application administrators need to be able to not only monitor overall health of the application but also the performance issues related to a specific tenant.
Trend to Rich Clients/RIA Clients - As cloud applications move toward richer HTML5 clients, profiling application performance will become more difficult. Finding the root cause of performance in older SaaS applications is easier in some ways due to the limited client side processing. With most of the processing happening on server side, it's within the visibility of the IT monitoring team. But the introduction of HTML5 means richer clients with more processing and potentially more systems issues happening client side. However, gaining visibility into the client side processing is near impossible - current monitoring tools are severely limited in this area. It's an example of how old models of monitoring SaaS won't work in the new world. However, due to the widespread and increasing adoption of HTML5, you can expect more tools to show up on the market to address this issue.
In a future post, I'll be highlighting some of the tools available today to handle some of these challenges. I'd like to hear your thoughts and stay tuned for more on this topic.