title: Stream data processing in the cloud for real-time anomaly detection
title: Επεξεργασία ροών δεδομένων στο υπολογιστικό νέφος για την ανίχνευση ανωμαλιών
Creators: name: Κωσταλια Ελισαβετ-Ελλη
Publisher: name: Technical University of Crete
Year: 2019

description: In recent years, data stream processing is becoming extremely popular because of the Big Data era and the increasing number of microservices and IoT devices being used, therefore, the development, deployment and management of distributed services are more important than ever. Data gets stored and analyzed in order to provide predictive and actionable results via frameworks, such as Apache Storm that allows distributed real-time computation of tons of data coming in extremely fast, from various sources. Non-functional requirements often demand a highly-available, high-throughput, fault-tolerant and massively scalable solution. In this context, Apache Kafka is used as a publish-subscribe messaging system that will serve as a broker between various data sources. In our implementation, all services above can reach their highest utility when deployed in containers. This way, the implementation takes advantage of the virtualization features of cloud computing. We ran several experiments based on a simulated (but realistic) use case scenario for detecting un-authorized system accesses (anomalies) in real time. The project runs a distributed cluster of Apache Storm worker nodes (implemented as separate containers) that process incoming data, and uses decision tree classifiers to detect anomalies based on a given dataset. The experimental results demonstrates that Amanda application responds to the increasing resource demands of the application leading to significantly faster response times while more workers are deployed distributed compared to a non-distributed implementation where all service requests are handled by the maximum statically pre-allocated resources.
description: Τα τελευταία χρόνια, η επεξεργασία ροών δεδομένων έχει γίνει εξαιρετικά δημοφιλής, κυρίως λόγω της εποχής του μεγάλου όγκου δεδομένων και του αυξανόμενου αριθμού μικροϋπηρεσιών και συσκευών στο Διαδίκτυο των Πραγμάτων, επομένως η ανάπτυξη, υλοποίηση και διαχείριση των κατανεμημένων υπηρεσιών είναι πιο σημαντική από ποτέ. Τα δεδομένα αποθηκεύονται και αναλύονται για να παρέχουν προβλέψιμα αποτελέσματα τα οποία θα μπορούν να αποτελέσουν μέσο αποφάσεων, μέσω πλατφορμών, όπως το Apache Storm, που επιτρέπει τoν κατανεμημένo υπολογισμό του μεγάλου όγκου δεδομένων σε πραγματικό χρόνο που εισέρχονται με εξαιρετικά γρήγορους ρυθμούς, από διαφορετικές πηγές. Οι μη λειτουργικές απαιτήσεις συχνά απαιτούν μια εξαιρετικά διαθέσιμη, υψηλής απόδοσης, fault-tolerant και μαζικά κλιμακούμενη λύση. Στη λειτουργία του Apache Storm έρχεται να προστεθεί και το Apache Kafka το οποίο χρησιμοποιείται ως σύστημα publish-subscribe messaging που θα λειτουργεί ως broker μεταξύ των διαφόρων πηγών δεδομένων. Όλες οι παραπάνω υπηρεσίες μπορούν να επιτύχουν την υψηλότερη αποτελεσματικότητα τους όταν αναπτυχθούν σε περιβάλλον containers αφού η ανάπτυξη εφαρμογών σε containers παρέχει τις δυνατότητες μιας κατανεμημένης εφαρμογής, αφού κάθε container λειτουργεί ανεξάρτητα από τα υπόλοιπα, χρησιμοποιώντας ελάχιστους πόρους από τον κεντρικό υπολογιστή και προσφέροντας ασφάλεια και ευελιξία. Με αυτόν τον τρόπο, η συγκεκριμένη εφαρμογή εκμεταλλεύεται τα πλεονεκτήματα της εικονοποίησης και του προγραμματισμού στο υπολογιστικό νέφος. Πραγματοποιήσαμε διάφορα πειράματα με βάση ένα προσομοιωμένο (αλλά ρεαλιστικό) σενάριο χρήσης. Η εργασία εκτελέστηκε σε ένα κατανεμημένο cluster Apache Storm σε πραγματικό χρόνο που επεξεργάζεται εισερχόμενα πακέτα δεδομένων δικτύου και χρησιμοποιεί αλγόριθμους Machine Learning και ως classifiers δέντρα αποφάσεων για την ανίχνευση εισβολέων. Τα πειραματικά αποτελέσματα καταδεικνύουν ότι το σύστημά μας ανταποκρίνεται στις αυξανόμενες απαιτήσεις πόρων της εφαρμογής που οδηγούν σε σημαντικά ταχύτερους χρόνους απόκρισης καθώς αυξάνεται ο αριθμός των workers και αξιοποιείται το κατανεμημένο σύστημα, σε σύγκριση με μια μη κατανεμημένη υλοποίηση όπου όλα τα αιτήματα για κλήση υπηρεσιών απασχολούνται από το μέγιστο αριθμό προκαθορισμένων υπολογιστικών πόρων.