Non-functional Testing in Cloud Environments

Abstract

Cloud computing is a modern and uprising model to create large distributed systems using dynamically provisioned pools of resources. While infrastructure as a service (IaaS) providers gained high popularity in the last years, platform as a service (PaaS) services still remain a minor part of the growing cloud market. Therefore the focus of scientific research lay on the IaaS model and its real-world implementations. Other models like PaaS have not been evaluated by a broader scientific community. Hence this thesis evaluates a specific PaaS service, namely Google App Engine (GAE). It looks for quantitative and qualitative approaches characterizing the following non-functional requirements of web applications running on GAE: scalability, application elasticity, efficiency, adaptive networking, and testability. It describes sophisticated testing tools and methods to measure the fulfillment of these requirements. A potential user of PaaS platforms should get a set of metrics to estimate if a migration is lucrative or not. The focus lies on the scalability and elasticity of the server-side application and fast response times for clients. Workload generators are used to determine the velocity, scalability and stability behavior of an application. The thesis provides a set of guidelines and performance optimization hints for GAE and its NoSQL data storage backend Google Cloud Datastore. Since the very different design of the Datastore, these results especially help for application migration projects to the cloud.