The 'glue' that makes cloud applications a reality is Web APIs, aka Web Services. The performance of any cloud application is dependent on these data sharing standards. But if you aren’t monitoring them, your Web/cloud application and the customers that are using them, could be out of luck. It’s not easy to monitor the flow of data that traverses different domains and organisations, but it’s critical and it’s possible.
Web APIs are an important way for companies to integrate 3rd party data and service providers, both in the browser and in the data centre. They tend to fall into one of three categories:
- First, all the widgets and mash-ups from companies with Facebook, Google and Twitter are built upon web APIs. However, even traditional companies like National Rail, the BBC and eBay offer APIs.
- Second, most companies talk to one or more 3rd parties directly from their data centres. Examples from this category might include payment vendors like Zuora and PayPal and range to specialised service providers like Quova (IP Geolocation) and Netbiscuits (Mobile site delivery).
- Third, many companies are starting to build their applications using a Web Oriented Architecture, which calls for modularising different components of the application and exposing them via a Web API.
Regardless of the scenario, the reason for monitoring these APIs is the same. API performance can have a significant impact on user experience, especially when it drives critical transactions like checkout, or the delivery of customised content. According to a study by TRAC Research and Keynote Systems, 21 percent of all website performance issues are caused by problems with data feeds from other applications. However, 43 percent of organisations are still not monitoring back-end Web APIs.
While a simple ping check to monitor the availability of a Web API connection is useful, it does not reveal the availability of the operation required by your application. A robust monitoring solution a) proactively tests a Web API connection even if users aren’t invoking it through the application, and b) actually interacts with the underlying API, enabling you to test not only performance but to ensure responses conform to specific parameters, e.g. number of widgets in inventory is a number between 1 and 100. In this way you can reproduce the logic found in the actual application that consumes the API.
Here a few tips on ensuring successful monitoring of your application’s dependent Web APIs:
- Use a tool that makes scripting API interactions simple, without requiring the application developer’s expertise.
- Ensure that it supports the use of variables, like the application would.
- Evaluate API success and health based both on performance attributes, like performance and availability, as well as functional attributes like whether the API is returning meaningful or acceptable content.
- Anticipate the need for error handling, validation and extension.
- Monitor the API from where it will actually be used. If it’s accessed by a broad range of consumers and the API is integrated at the client or browser, choose a service that offers a wide range of geographic locations representing your end users. If it’s accessed within your private cloud, then deploy a monitoring agent in your private cloud or network.