Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title Feedback Driven Development - Predicting the Costs of Code Changes in Microservice Architectures based on Runtime Feedback
Organization Unit
Authors
  • Emanuel Stöckli
Supervisors
  • Philipp Leitner
  • Harald Gall
Language
  • English
Institution University of Zurich
Faculty Faculty of Economics, Business Administration and Information Technology
Number of Pages 117
Date 2015
Abstract Text Building highly scalable and automatized software systems is fostered by Cloud Computing and Microservice Architectures. While loosely-coupled and independently scalable services in the cloud are charged according to actual resource consumption, costs of operation can often be traded against performance. On the contrary, autoscaling is often used to keep the response time on a desired level, while scaling resources up and down. Understanding such complex systems and assessing the costs of operation is difficult for developers. The central issue is the lack of tools. While a plethora of tools bring static code analysis to the IDE, dynamic runtime feedback from production systems is limited to performance-related metrics. We developed a novel approach that brings cost-related metrics into the IDE of developers. The so-called CostHat consists of (1) the Analytical CostHat that maps dynamic information about a microservice such as the number of incoming requests or running instances to the corresponding service method and (2) the Predictive CostHat that predicts the impact of modifying the number of requests to another microservice on its costs of operation. A prototype was implemented and evaluated in a semi-structured interview study that investigated the relationship of software engineers to costs of operation and how they perceive the CostHat tooling. Our findings indicate that costs currently treated in a reactive rather than proactive manner. Also, it is indicated that the overall understanding of the system can be increased by the Analytical CostHat and developers are driven to optimize by the Predictive CostHat. While a serious overhead in build times is shown in the quantitative evaluation, results from the interview study indicate that developers are more concerned about the monitoring overhead.
Zusammenfassung Skalierbare und automatisierte Softwaresysteme werden durch Cloud Computing und Microservice Architekturen begünstigt. Geld kann jederzeit gegen mehr Ressourcen, sprich mehr Leistung eingetauscht werden, da solch lose gekoppelte und eigenständig skalierbare Services in der Cloud nach dem tatsächlichem Ressourcenverbrauch abgerechnet werden. Im Gegenzug kann automatische Skalierung genutzt werden, um die Reaktionszeit von Services auf einem gewünschtem Niveau zu halten, während dem gebuchte Ressourcen hoch- oder runterskaliert werden. Das Verständnis von solch komplexen Systemen und die Beurteilung von Betriebskosten ist schwierig für Software Entwickler. Das zentrale Problem ist der Mangel an Tools. Eine Vielzahl von Tools bringen statische Code-Analyse in die Entwicklungsumgebungen aber dynamisches Runtime Feedback aus produktiven Systemen beschränkt sich auf Metriken, welche auf die Performance ausgerichtet sind. Wir haben einen neuartigen Ansatz entwickelt, welcher finanzielle Metriken in die Entwicklungsumgebung bringt. Der Ansatz, auch CostHat genannt, besteht aus (1) dem Analytical CostHat, welcher dynamische Informationen wie zum Beispiel die Anzahl der laufenden Instanzen oder eingehenden Anfragen zur entsprechenden Microservice-Methode darstellt und (2) der Predictive CostHat, welcher die Auswirkungen einer veränderten Anzahl an Anfragen an einen Drittservice auf die gesamten Betriebskosten berechnet. Ein Prototyp wurde entwickelt und in einer semi-strukturierten Interviewstudie ausgewertet. Diese untersucht das Verhältnis von Softwareentwicklern zu Betriebskosten von Software und erforscht wie die Teilnehmer den Prototypen wahrnehmen. Unsere Ergebnisse zeigen, dass Kosten zur Zeit vor allem rückwirkend und nicht vorausschauend behandelt werden. Auch deuten die Ergebnisse darauf hin, dass das Gesamtverständnis des Systems durch den Analytical CostHat erhöht werden kann und Softwareentwickler durch den Predictive CostHat dazu angetrieben werden zu optimieren. Während dem die quantitative Auswertung aufzeigt, dass der Build-Prozess bedeutend länger dauert, deuten Ergebnisse aus der Interviewstudie darauf hin, dass Softwareentwickler mehr über den Overhead der Monitoringkomponente besorgt sind.
PDF File Download
Export BibTeX