Big Data analytics is the process of collecting and analyzing big volumes of data in order to extract hidden information. One area of Big Data analytics is made of stream processing technologies, which are used for analyzing continuously arriving data. They have emerged as a natural answer for analytics of ever-growing data sets, which require insight at real-time. Most prevalent systems for stream processing today are deployed on cluster of machines, usually in the Cloud, which allows them to use large amount of resources. Unfortunately, the resources are rarely used in an efficient way because streaming systems cannot leverage resource elasticity, which makes then unnecessarily expensive. Also, these systems are projected for average load and struggle to respond efficiently to peaks in load, which can clog the system. This thesis lays the foundations of a novel approach in implementation of stream processing systems. Our system is built on top of a serverless platform, Apache OpenWhisk in this particular case, that provides both scalability and elasticity natively, but also relieves the user from having to set up and manage a cluster. The API of our system provides simple, yet powerful abstractions that conform to the dataflow programming model for processing data in a stateful way. With this work we also explore some of the important problems related to providing stateful computation in serverless environments which are intrinsically stateless, composing serverless functions into larger and more complex applications and providing high-level APIs for programming of serverless function. These problems, as well as other problems related to communication in the system are highlighted in several experiments that we perform in order to better evaluate the system.

Big Data analytics è il processo di raccolta e analisi di grandi volumi di dati per estrarre informazioni nascoste. Un’area di Big Data analytics è composta dalle tecnologie di stream processing, che sono utilizzate per analisi dei dati in continuo arrivo. Sono emerse come risposta naturale per analisi dei dataset sempre crescenti, i quali richiedono approfondimenti in tempo reale. I sistemi più comuni per lo stream processing oggi sono distribuiti sui computer cluster, tipicamente nel Cloud, ciò che gli permette di usare grandi quantità di risorse. Purtroppo, le risorse sono raramente usate in modo efficace perché i sistemi per streaming non possono sfruttare l’elasticità di risorse, che li rende inutilmente costosi. Inoltre, questi sistemi sono progettati per carico medio, e hanno difficoltà a rispondere in modo efficace ai picchi di carico, che possono bloccare il sistema. Questa tesi pone le basi di un nuovo approccio nella implementazione dei sistemi di stream processing. Il nostro sistema è costruito su una piattaforma serverless, Apache OpenWhisk in questo caso particolare, che offre sia scalabilità che elasticità in modo nativo, ma anche solleva l’utente dal dover impostare e gestire un cluster. Le API del nostro sistema offrono semplici, ma tuttavia potenti astrazioni conformi al modello di programmazione del flusso di dati per elaborazione sui data in maniera stateful. In questo lavoro di tesi esploriamo anche alcuni problemi importanti legati alla fornitura della computazione stateful in ambienti serverless che sono intrinsecamente stateless, alla composizione delle funzioni serverless nelle applicazioni più grandi e più complesse, e alla fornitura delle API di alto livello per programmazione delle funzioni serverless. Questi problemi, oltre agli problemi legati alla comunicazione nel sistema, sono accentuati nei parecchi esperimenti che eseguiamo per valutare meglio il sistema.

Dataflow abstractions for serverless computing

Vukovic, Nikola
2019/2020

Abstract

Big Data analytics is the process of collecting and analyzing big volumes of data in order to extract hidden information. One area of Big Data analytics is made of stream processing technologies, which are used for analyzing continuously arriving data. They have emerged as a natural answer for analytics of ever-growing data sets, which require insight at real-time. Most prevalent systems for stream processing today are deployed on cluster of machines, usually in the Cloud, which allows them to use large amount of resources. Unfortunately, the resources are rarely used in an efficient way because streaming systems cannot leverage resource elasticity, which makes then unnecessarily expensive. Also, these systems are projected for average load and struggle to respond efficiently to peaks in load, which can clog the system. This thesis lays the foundations of a novel approach in implementation of stream processing systems. Our system is built on top of a serverless platform, Apache OpenWhisk in this particular case, that provides both scalability and elasticity natively, but also relieves the user from having to set up and manage a cluster. The API of our system provides simple, yet powerful abstractions that conform to the dataflow programming model for processing data in a stateful way. With this work we also explore some of the important problems related to providing stateful computation in serverless environments which are intrinsically stateless, composing serverless functions into larger and more complex applications and providing high-level APIs for programming of serverless function. These problems, as well as other problems related to communication in the system are highlighted in several experiments that we perform in order to better evaluate the system.
ING - Scuola di Ingegneria Industriale e dell'Informazione
24-lug-2020
2019/2020
Big Data analytics è il processo di raccolta e analisi di grandi volumi di dati per estrarre informazioni nascoste. Un’area di Big Data analytics è composta dalle tecnologie di stream processing, che sono utilizzate per analisi dei dati in continuo arrivo. Sono emerse come risposta naturale per analisi dei dataset sempre crescenti, i quali richiedono approfondimenti in tempo reale. I sistemi più comuni per lo stream processing oggi sono distribuiti sui computer cluster, tipicamente nel Cloud, ciò che gli permette di usare grandi quantità di risorse. Purtroppo, le risorse sono raramente usate in modo efficace perché i sistemi per streaming non possono sfruttare l’elasticità di risorse, che li rende inutilmente costosi. Inoltre, questi sistemi sono progettati per carico medio, e hanno difficoltà a rispondere in modo efficace ai picchi di carico, che possono bloccare il sistema. Questa tesi pone le basi di un nuovo approccio nella implementazione dei sistemi di stream processing. Il nostro sistema è costruito su una piattaforma serverless, Apache OpenWhisk in questo caso particolare, che offre sia scalabilità che elasticità in modo nativo, ma anche solleva l’utente dal dover impostare e gestire un cluster. Le API del nostro sistema offrono semplici, ma tuttavia potenti astrazioni conformi al modello di programmazione del flusso di dati per elaborazione sui data in maniera stateful. In questo lavoro di tesi esploriamo anche alcuni problemi importanti legati alla fornitura della computazione stateful in ambienti serverless che sono intrinsecamente stateless, alla composizione delle funzioni serverless nelle applicazioni più grandi e più complesse, e alla fornitura delle API di alto livello per programmazione delle funzioni serverless. Questi problemi, oltre agli problemi legati alla comunicazione nel sistema, sono accentuati nei parecchi esperimenti che eseguiamo per valutare meglio il sistema.
File allegati
File Dimensione Formato  
2020_07_Vukovic.pdf

accessibile in internet per tutti

Dimensione 1.76 MB
Formato Adobe PDF
1.76 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/167466