As organizations turn to cloud-based applications to support mobile workers, they need a comprehensive monitoring system to ensure application performance.
There is no shortage of problems that an end user can encounter with a mobile app, especially when it relies on cloud-based services to communicate and synchronize business information. Latency, network downtime and access issues are but a few of the difficulties that can affect performance. And problems with the app itself might also be a factor: A poorly designed tool might be too inefficient to use Web services or manage user tasks.
An effective monitoring strategy can help identify problems and their sources and resolve them before they affect the end users' ability to do their jobs. Your monitoring strategy can also ensure maximum performance and uptime and minimize latency and connectivity issues, no matter what devices users work from or where. With the information monitoring provides, you can more efficiently allocate resources, plan your capacity thresholds and provide key performance indicators to the appropriate stakeholders.
Challenges of monitoring cloud-based applications
When planning a monitoring strategy, consider the client app on the end-user's mobile device, the cloud platform that supports the app and the network that connects them.
More on monitoring systems for cloud-based applications
Managing and monitoring cloud computing services
Managing requirements for cloud-based applications
Delivering cloud-based mobile apps to the enterprise
One of the biggest challenges is the cloud's virtual environment. Although virtualization helps make cloud platforms flexible and affordable, it makes monitoring cloud-based applications complex.
For example, your virtualized environment might include Web, search and database servers, each of which is dynamically provisioned from a pool of computing and storage resources. You must be able to monitor each virtualized node both internally and externally, with each one's dynamic nature in mind. That means looking within the server for information about time and resource consumption, plus looking at the virtual machine (VM) from the outside for details about how it's managed. Your monitoring system must be able to track performance-related issues, despite resource sharing, multi-tenancy, data center distribution and the logical abstraction of systems and services.
Other monitoring challenges come from the fact that the application's delivery chain relies on public networks and wireless service providers, which can differ significantly. Users are geographically distributed moving targets, so identifying network performance issues becomes even more challenging, especially when you factor in resource allocation issues and globally dispersed data centers. Because your application infrastructure must support multiple platforms and devices, monitoring performance across a wide spectrum complicates your ability to identify specific problem areas. Plus, a monitoring system must consider how a device's operating system can affect application performance and other apps and data on that device.
What a monitoring system should do
Despite the challenges, the technology for monitoring cloud-based apps is quickly maturing, and a number of providers (such as Aternity and New Relic) offer comprehensive monitoring.
A company might also decide to build its own system for monitoring applications and infrastructure, perhaps incorporating it into the app development process. Regardless of the approach your organization takes, you should be able to monitor systems across the application delivery chain, including the virtualized environment, the cloud platform, the network, the mobile device and the client app itself.
A monitoring system must be able to deep-dive into application components and check the application's status and performance at any time. The system must also be able to capture accurate information about how users interact with the application environment. Information such as throughput, system responsiveness and service availability should be available for real-time spot-checking and should also be in historical records that let you compare detailed metrics. Monitoring capabilities must also follow virtualized components despite changes to server names or IP addresses. Even dynamically provisioned VMs should not compromise monitoring continuity.
Using probe-based testing and heartbeat monitoring, your monitoring system should be able to keep track of all the components at all times. Monitoring tools must be able to track specific metrics -- database access and Web page load times -- and monitor shared resource contention and peak allocation times.
Be sure you have all the information you need to understand the risks to quality of service and how to manage those risks. To that end, your monitoring system should isolate specific problems and point to cause-and-effect relationships so you have a complete picture of how all the components in the application stack contribute to the end-user experience.
A comprehensive monitoring system requires careful planning and an ongoing effort to understand what applications are doing at specific times or over a defined period. The goal of monitoring applications is to fully comprehend the real end-user experience and the possible risks to that experience. This is a departure from traditional monitoring systems where user experience is less important. The types of measurements for desktop applications aren't invalid; mobile apps just have their own specific requirements. Given the continued influx of mobile devices in the workplace, those requirements deserve serious consideration.