Digital Repository

Cloud-native Dynamic Scalability for Distributed Stream Processing Systems

Show simple item record

dc.contributor.author Ambalavanar, Senthuran
dc.date.accessioned 2020-05-19T19:14:04Z
dc.date.available 2020-05-19T19:14:04Z
dc.date.issued 2019
dc.identifier.citation Ambalavanar, Senthuran (2019) Cloud-native Dynamic Scalability for Distributed Stream Processing Systems. BSc. Dissertation Informatics Institute of Technology. en_US
dc.identifier.other 2015215
dc.identifier.uri http://dlib.iit.ac.lk/xmlui/handle/123456789/389
dc.description.abstract Distributed stream processing systems separate streaming applications into executable smaller units known as child streaming applications, distribute them across several nodes in clusters and run, in order to cater heavy and growing stream processing use cases. Due to the tremendous benefits provided by cloud infrastructures, distributed stream processing systems are often adopted to be deployed on cloud environments. Scalability is one of the common goals addressed by such systems. With varying amount of resource and event consumptions during the time of execution, the ability of individually scaling each child streaming application as required, increases the efficiency of scalability. Some child streaming applications frequently communicate with their required resources, such as a MySQL database. In cloud environments, network overheads are possible, when the resource and the consuming child streaming application are located in different nodes within the cluster. Focusing on scaling stateless operators in Kubernetes environment, this project addresses these concerns through a framework, for stream processors that offer text-based streaming application development. By natively using Kubernetes container orchestrator to create dedicated Workers for executing child streaming applications, the framework addresses the concern of individually scaling each child streaming application that has different event consumption rates, as required. Collocation of a special resource and its consumer in the same node of the cluster, will reduce possible network overheads, which can facilitate scalability. This has been achieved with Kubernetes pod affinity. A resource requirement for a child streaming application is identified at the time of parsing it, and the containing Worker is applied with labels in order to be eligible for pod affinity based scheduling. By natively using Kubernetes for resource management, the project improves resource utilisation and latency of distributed stream processing systems in cloud environments, and produces a reliable and easy to deploy solution. en_US
dc.subject Cloud computing en_US
dc.subject Distributed Stream Processing en_US
dc.subject Streaming Applications en_US
dc.title Cloud-native Dynamic Scalability for Distributed Stream Processing Systems en_US
dc.type Thesis en_US


Files in this item

This item appears in the following Collection(s)

Show simple item record

Search


Advanced Search

Browse

My Account