[Back]


Diploma and Master Theses (authored and supervised):

P. Naderer-Piu:
"Non-functional Testing in Cloud Environments";
Supervisor: G. Kappel, M. Wimmer; Institut für Softwaretechnik und Interaktive Systeme, 2016; final examination: 2016-05-24.



English abstract:
Cloud computing affects large parts of the IT industry today. Acquiring computing resources and
services on-demand not only changed how IT is structured, also new frameworks and technologies
emerged in the recent years. Users of cloud services expect better scalability and application
elasticity from migrating into the cloud. Instead of provisioning own hardware to applications
they rely on the providerīs elastic provisioning system and allocate resources if needed.
The area of cloud computing is divided into three essential service models: Infrastructure as
a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). The latter is
the broadest of all models and basically includes software or web applications provided over the
Internet to customers for an usage-only billing. Between IaaS and PaaS the distinction became
harder with recent developments in the field. IaaS providers include more services and are no
longer only virtual infrastructure providers. They enrich IaaS solutions with dynamic service
components and managed software systems. On the other side PaaS solutions developed from
an application-centric model to a service with advanced control over the underlying virtualized
hardware components. This thesis starts with a look on preliminary progress in PaaS, shows
the difficulties of migrating an existing traditional application into a popular PaaS platform,
and evaluates how a PaaS-based application can be tested for the non-functional requirements
scalability and application elasticity.
Google App Engine has been chosen as a representative and popular implementation of
the PaaS service model. It is available since 2008 and is one of the most mature commercial
platforms. With its Java sandboxed runtime it is an ideal target for JVM-based applications and
therefore is open for a wide range of technologies and existing Java applications. The NoSQL
Datastore will be comprehensively investigated and examined as a target data storage backend for
existing relational data models taken out of SQL databases.
In a case study the scalability and elasticity of applications running on top of Google App
Engine will be evaluated and assessed. A load test will be executed in a distributed setup based
on immutable infrastructure created with Docker containers. The goal is to answer three distinct
research questions focused on JMeter as a load test tool, App Engineīs instance provisioning and
load balancing, and on the 1 write per second per entity group limit exposed by App Engineīs
Datastore. This all leads to the overall goal of this thesis: Evaluating if App Engine is a good
target for migrations from existing applications into the cloud. The work will not only cover
functional requirements, but rather will focus especially on non-functional requirements. PaaS
platforms require more adaptions and a deeper integration of third party services into the own
applications, so risks have to be clear before a migration starts and re-evaluated after a functionally
successful migration. Hence, the delivery of what a cloud provider promises has to be proven.

German abstract:
Cloud Computing übt heute umfassenden Einfluss auf die IT-Industrie aus. Die dynamische
Bereitstellung von IT-Ressourcen veränderte dabei nicht nur das grundlegende Verständnis von
IT-Infrastruktur, sondern zeigte auch Auswirkungen auf IT-Prozesse, neue Software-Frameworks
und im Bereich von Datenbanken. Anstatt dem Bereitstellen von angekaufter Hardware in
gemieteten oder In-House-Rechenzentren, wird zunehmend auf virtualisierte Hardware gesetzt.
Diese wird dynamisch bei einem Cloud-Provider angefordert und dieser stellt nur die tatsächliche
verbrauchten Einheiten in Rechnung.
Angebote im Bereich Cloud Computing lassen sich in drei Servicemodelle unterteilen:
Infrastructure as a Service (IaaS), Platform as a Service (PaaS) und Software as a Service (SaaS).
Aktuell verschwimmen die Grenzen zwischen IaaS- und PaaS-Angeboten zunehmend. IaaSAnbieter
erweitern ihr Portfolio um Softwareservices, deren Wartung und laufende Betreuung
ebenfalls vom Anbieter übernommen wird. PaaS-Angebote erhalten hingegen immer mehr
Kontrollmöglichkeiten über die darunter liegenden Softwarekomponenten und die virtuelle
Hardware. Diese Diplomarbeit beschäftigt sich mit den bisherigen Entwicklungen im Feld von
PaaS, zeigt die Schwierigkeiten bei der Migration von existierenden Anwendungen in eine
PaaS-Cloud auf und evaluiert wie PaaS-basierte Anwendungen hinsichtlich nichtfunktionaler
Anforderungen getestet werden können.
Google App Engine wurde zur konkreten Evaluierung für diese Arbeit herangezogen, da
es sich um eine ausgereifte und bereits länger am Markt verfügbare Plattform handelt. Durch
die Unterstützung von Java eignet sich App Engine als Ziel für Java-Applikationen. Dies ist
besonders für den Enterprise-Bereich eine wichtige Eigenschaft und lässt App Engine eine
besondere Bedeutung zukommen. Weiters wird der NoSQL-basierte Google Cloud Datastore
umfassend untersucht. Besonderer eingegangen wird auf die Migration von existierenden SQLbasierten
Datenmodellen.
Diese Arbeit umfasst auch eine Fallstudie zur Skalierbarkeit und Elastizität von Anwendungen.
Beide Eigenschaften werden durch verteilte Lasttests in mehreren Durchläufen getestet. Dabei
sind drei wesentliche Forschungsfragen zu beantworten: Eignet sich JMeter als Lasttestgenerator
für Cloud-Anwendungen? Wie reagiert App Engine auf eine hohe Anzahl an Zugriffen? Wie
wirkt sich das Entity Group Write Limit in der Praxis aus? Die Beantwortung dieser Fragen führt
zur übergeordneten Fragestellung: Eignet sich App Engine als Zielplattform für Migrationen von
bestehenden Java-Applikationen in die Cloud? Dabei fokussiert sich diese Arbeit nicht nur auf die
Überprüfung von funktionalen Anforderungen, sondern legt besonderenWert auf nichtfunktionale
Anforderungen und die daraus entstehenden Konsequenzen für Migrationsprozesse.

Keywords:
IaaS, PaaS, Saas

Created from the Publication Database of the Vienna University of Technology.