Operational Cost Improvement for Applications running in a Cloud Computing Environment
MetadataShow full item record
Cloud Computing give users access to large pools of resources on demand with a utility price model and thereby introduce the ability for developers to affect operational cost of an application. However, this ability is yet to be fully exploited. The overall goal was to investigate how developers can reduce the operational cost of an application deployed in a Cloud Computing environment. As part of the investigation an explorative approach was used to find the considerations developers need to make when developing in such an environment. The choice of provider, price-model variations, scalability, and the programmatic control of application resources were found to be key areas. The thesis presents different strategies that could potentially reduce operational cost of an application. Some providers use a pay-per-resource-block price model, in which the customer pays for the right to use a given amount of a resource within a given amount of time. This price model is a strong incentive to utilize the entire allocated block of computational resources and experiments were executed to find if the improved utilization will reduce the operational cost when performing asynchronous background tasks.The first experiments used the common design guidelines provided by some Cloud Computing providers to establish a baseline result. The second experiment attempted to improve the utilization by breaking with the guidelines, and the third experiment employed a custom scaling engine developed by the writers, in an attempt to further improve the utilization.The results show an increase in the computational resource block utilization and a reduction in the operational cost from the baseline in both experiment two and three. The effort of creating a production ready scaling engine for utilization of computational resource blocks was proved to be extensive and it was suggested that such mechanisms should be implemented in Cloud Computing platforms.