Kruisz, M. (2020). Evaluation of microservice implementation approaches for image processing [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2020.58980
E193 - Institut für Visual Computing and Human-Centered Technology
-
Date (published):
2020
-
Number of Pages:
78
-
Keywords:
Microservices; FaaS; Software-Architekturen
de
Microservices; FaaS; Software-Architectures
en
Abstract:
In recent years we can observe an increasing interest in the relatively young topic of Microservice Architectures. As a consequence thereof, the number of experiences with Microservices is increasing and both advantages, as well as disadvantages become a commonly discussed topic. While first best practices and architectural patterns regarding the construction of such systems emerged, there is a lack of discussion regarding the construction and applicability in certain contexts of Microservice Systems. The current state of knowledge revolves primarily around general properties of microservices and therefore use cases in contexts with special characteristics are still uncharted terrain. This thesis provides a closer look at Microservices in the context of image processing systems. The evaluation was performed based on a system offering five commonly used image transformations. With a given set of requirements this system was implemented without the use of a framework, with a framework and with an Function as a Service approach to achieve a Microservice Architecture. All three of the resulting applications were evaluated via quantitative metrics such as the time spent on development and performance characteristics. A qualitative evaluation was performed as well, which compared advantages and disadvantages of the different approaches and yielded findings regarding Microservice Architectures in the context of image processing. The results showed that no single, generally preferable approach exists for such a system. All three implementations offered different advantages and disadvantages in the form of a trade-off between flexibility and development speed. However, there were indications that generally a Function as a Service approach can yield the most benefits, because of a strong reduction in both development time and the complexity of the resulting source code. The combination of image processing and Microservices lead to properties which had a strong influence on the resulting architecture. This was primarily caused by the long processing time of the requests and the high load on the network caused by the transfers of image files between services. As a result thereof, commonly used and simple approaches would often have resulted in serious disadvantages, and more complex mechanisms such as asynchronous communication were necessary throughout the whole system. However, it became apparent that a correct application of microservice principles leads to better maintainability and scalability of such a system.
en
In den letzten Jahren ist ein wachsendes Interesse an dem relativ jungen Thema der Microservice-Architekturen zu beobachten. Einhergehend damit steigt die Anzahl der Erfahrungen zu Microservices und besonders Vorteile dieser Architektur, als auch zunehmend potentielle Nachteile sind ein häufig diskutiertes Thema. Während bereits erste Erfolgsrezepte und Architekturmuster zu der Konstruktion solcher Systeme entstehen, wird noch unzureichend thematisiert, wie ein Microservice System am besten gebaut werden kann und in welchen Fällen dieser Architekturstil wirklich anwendbar ist. Viele Erkenntnisstände und Informationen zu diesem Thema sind noch allgemeiner Natur und spezielle Anwendungsfälle mit besonderen Eigenschaften völlig unerforscht. In dieser Arbeit wurden Microservices im Kontext von Bilderverarbeitungssystemen näher betrachtet. Als Basis der Evaluierung diente ein System, das fünf verschiedene Arten von verbreiteten Bildtransformationen anbietet. Anhand der bestehenden Anforderungen wurde das System ohne Frameworks, mit einem Framework und mit einem Function-as-a-Service Ansatz in der Microservice-Architektur implementiert. Diese drei resultierenden Systeme wurden quantitativ durch den Entwicklungsaufwand und ihre Leistungsfähigkeit bewertet. Qualtiativ wurden Vor- und Nachteile der einzelnen Entwicklungsansätze evaluiert und allgemeine Erkenntnisse zu Microservice-Architekturen im Kontext der Bildverarbeitung festgehalten. In den Resultaten wurde festgestellt, dass für solch ein Bildverarbeitungssystem kein klar zu bevorzugender Ansatz existiert. Jede der drei Implementierungen bietete verschiedenartige Vor- und Nachteile in Form eines Kompromisses zwischen Flexibilität und Entwicklungsgeschwindigkeit. Es zeigte sich jedoch, dass im allgemeinen ein Function-as-a-Service Ansatz hier sehr gut geeignet sein kann und sowohl die Entwicklungszeit als auch die Komplexität des resultierenden Quellcodes positiv beeinflusst. Die Kombination von Bildverarbeitung und Microsrevices brachte Eigenschaften mit sich, die starke Auswirkung auf die resultierende Architektur hatten. Primär wurde diese durch die lange Verarbeitungszeit von einzelnen Anfragen und die Netzwerklast durch den Transfer von Bilddateien zwischen Services beeinflusst. Als Resultat dessen sind verbreitete, simple Ansätze nur mit gravierenden Nachteilen umsetzbar, und es werden komplexe Mechanismen wie asynchrone Kommunikation im gesamten System notwendig. Jedoch zeigte sich, dass die korrekte Anwendung von Microservices zu einfacher Wartbarkeit und Skalierbarkeit eines solchen Systems führen kann.