Monitoring of Cloud Based Applications II
Understanding the results
In the previous part of this paper we discussed the essential differences between cloud based applications and on-premise ones when it comes to testing applications. A major difference lies in the control that the cloud service provider gives you over the test environment. For tests at a deeper level, the answer in all probability lies in writing a program that uses your application mimicking a user. Such a program can continue to check your application at regular intervals to ensure it is functioning as expected. Any aberrations can be detected and administrators alerted in near real time.
In most other cases, test results may need to be analyzed more deeply since subtle error conditions may give rise to situations that cannot be detected. Analysis may therefore need to go deeper. This can take the following forms:
Simple Boolean checks – The simplest method possible. It checks if your application is giving a response or not. You can compare it to the ‘ping’ command used to check networks. If you get a response, it confirms that the application is on line and the intervening network is working.
Response threshold – Under normal conditions, your application should give a response within milliseconds. Using the cloud, you expect this time to be maintained rigidly because if the application load exceeds a value, a new instance should be automatically created. If this is exceeded beyond limits you set, it indicates a problem.
Check for consistency of response – Quite often, a set of answers from an application will correlate with each other. For example, the numbers of items in your shopping cart must correlate to those in the invoice. If there is a variation, it could be a serious error that needs to be corrected straightaway.
Checking statistically – While there is value in checking spot parameters such as response time at a given instant, the statistical value gives an indication of a long-term trend. Good monitoring programs are able to generate statistical means and compare the spot value to determine the variation. This ensures more intelligent checking.
Triggering responses – Based on how you have programmed your testing environment, you can trigger a response to critical events. Since cloud-based systems are naturally well-suited to mobile and smartphone users, one response can be to send a mail or SMS to an administrator. This ensures that the error condition is handled faster.
Adaptive systems – The more capable monitoring programs come with machine learning and artificial intelligence. They are able to understand results and based on this learning, their future interpretation of results could vary. They are also able to draw inferences and initiate deeper checking if required. For example, if a program is giving out an output faster than anticipated, it could mean that another module that this program depends on is not actually doing a computation but returning a default value.
Managing corrections – Many monitoring programs can follow through on a fault until it is finally resolved. The system works as both a monitoring device and a corrections manager to ensure that the error condition detected is not overlooked.
Multiple warnings – Monitoring programs can use multiple methods to attract the attention of administrators to critical problems. A background script decides which problems are critical and which ones aren’t. It is also able to decide on the individuals to be alerted based on the classification of the problem. As mentioned earlier, cloud-based systems are tightly integrated with mobile phone systems and use this capability very effectively to generate appropriate warnings.
Current trends
Cloud-based app monitoring systems have been evolving into extremely capable tools that can take over a number of managerial tasks themselves. This allows for a faster response to emerging problem areas and allows administrators to correct critical issues much earlier. These systems are also being used to determine when an application is experiencing light loads, and this information is used to compute heavy tasks during this period. This kind of optimization can ultimately reduce costs by distributing load over time and ensuring that fewer numbers of processors are hired.
Be Part of Our Cloud Conversation
Our articles are written to provide you with tools and information to meet your IT and cloud solution needs. Join us on Facebook and Twitter.
About the Guest Author:
Sanjay Srivastava has been active in computing infrastructure and has participated in major projects on cloud computing, networking, VoIP and in creation of applications running over distributed databases. Due to a military background, his focus has always been on stability and availability of infrastructure. Sanjay was the Director of Information Technology in a major enterprise and managed the transition from legacy software to fully networked operations using private cloud infrastructure. He now writes extensively on cloud computing and networking and is about to move to his farm in Central India where he plans to use cloud computing and modern technology to improve the lives of rural folk in India.