Manner, JohannesJohannesManner0000-0002-7298-35742024-03-052024-03-052024978-3-86309-978-7978-3-86309-979-4https://fis.uni-bamberg.de/handle/uniba/92913Dissertation, Otto-Friedrich-Universität Bamberg, 2023Serverless Computing is seen as a game changer in operating large-scale applications. While practitioners and researches often use this term, the concept they actually want to refer to is Function as a Service (FaaS). In this new service model, a user deploys only single functions to cloud platforms where the cloud provider deals with all operational concerns – this creates the notion of server-less computing for the user. Nonetheless, a few configurations for the cloud function are necessary for most commercial FaaS platforms as they influence the resource assignments like CPU time and memory. Due to these options, there is still an abstracted perception of servers for the FaaS user. The resource assignment and the different strategies to scale resources for public cloud offerings and on-premise hosted open-source platforms determine the runtime characteristics of cloud functions and are in the focus of this work. Compared to cloud offerings like Platform as a Service, two out of the five cloud computing characteristics improved. These two are rapid elasticity and measured service. FaaS is the first computational cloud model to scale functions only on demand. Due to an independent scaling and a strong isolation via virtualized environments, functions can be considered independent of other cloud functions. Therefore, noisy neighbor problems do not occur. The second characteristic, measured service, targets billing. FaaS platforms measure execution time on a millisecond basis and bill users accordingly based on the function configuration. This leads to new performance and cost trade-offs. Therefore, this thesis proposes a simulation approach to investigate this tradeoff in an early development phase. The alternative would be to deploy functions with varying configurations, analyze the execution data from several FaaS platforms and adjust the configuration. However, this alternative is time-consuming, tedious and costly. To provide a proper simulation, the development and production environment should be as similar as possible. This similarity is also known as dev-prod parity. Based on a new methodology to compare different virtualized environments, users of our simulation framework are able to execute functions on their machines and investigate the runtime characteristics for different function configurations at several cloud platforms without running their functions on the cloud platform at all. A visualization of the local simulations guide the user to choose an appropriate function configuration to resolve the mentioned trade-off dependent on their requirements.Serverless Computing wird als Wegbereiter für den Betrieb großer Anwendungen gesehen. Obwohl Entwickler und Forscher diesen Begriff oft verwenden, ist das Konzept, über das sie eigentlich sprechen möchten, als Function as a Service (FaaS) bekannt. Bei diesem neuen Servicemodell schreiben FaaS Nutzer einzelne Funktionen und stellen diese auf Cloud-Plattformen bereit. Der Cloud-Anbieter kümmert sich um alle betrieblichen Belange - somit scheint es sich aus der Sicht des Nutzers um serverloses Computing zu handeln. Dennoch ist es bei den meisten kommerziellen FaaS-Plattformen notwendig, einige Funktionskonfigurationen vorzunehmen, da sie die Ressourcenzuweisungen, insbesondere für CPU und Hauptspeicher, beeinflussen. Vergleicht man wesentliche Cloud Computing Charakteristiken bei den Modellen Platform as a Service und FaaS, so zeigt sich bei den beiden Dimensionen Elastizität und Granularität der Serviceabrechnung eine Verbesserung. FaaS ist das erste Cloud Servicemodell, das Funktionen bei Bedarf innerhalb weniger Millisekunden skaliert. Aufgrund unabhängiger Skalierung und starker Isolation durch virtualisierte Umgebungen können Funktionskonfigurationen als unabhängig von anderen Cloud-Funktionen angesehen werden. Daher sind keine Noisy Neighbor Probleme zu beobachten. FaaS-Plattformen messen die Ausführungszeit in Millisekunden und stellen sie Nutzern auf Grundlage der Funktionskonfiguration in Rechnung (Granularität der Serviceabrechnung). Dies führt zu neuen Leistungs- und Kostenabwägungen. In dieser Arbeit wird ein Simulationsansatz vorgeschlagen, um diesen Trade-off in einer frühen Entwicklungsphase zu untersuchen. Eine Alternative zu unserem Simulationsansatz wäre die Funktionen mit verschiedenen Konfigurationen produktiv zu betreiben, die Ausführungsdaten von mehreren FaaS-Plattformen zu analysieren und die Konfiguration anzupassen. Dies würde allerdings zu Mehrkosten und einem höheren Aufwand führen. Um eine realistische Simulation zu ermöglichen, sollten die Entwicklungs- und Produktionsumgebung so ähnlich wie möglich sein. Diese Ähnlichkeit wird auch als Dev-Prod-Parität bezeichnet. Basierend auf einer neuen Methodik zum Vergleich verschiedener virtualisierter Umgebungen, können Benutzer unseres Simulationsframeworks Funktionen auf ihren Rechnern ausführen und die Laufzeiteigenschaften verschiedener Konfigurationen auf verschiedenen Cloud-Plattformen untersuchen. Eine Visualisierung der lokalen Simulationen hilft den Nutzern dabei, eine geeignete Funktionskonfiguration zu wählen, um den erwähnten Trade-off den Anforderungen entsprechend bestmöglich aufzulösen.engServerless ComputingFunction as a ServiceFaaSDev-Prod ParityBenchmarkingSimulation004A Simulation Framework for Function as a Servicedoctoralthesisurn:nbn:de:bvb:473-irb-929135