Φανταστείτε αν αντί να κοιτάτε τα logs ενός ecommerce site το βράδυ για να δείτε ότι κάποιος "τα σήκωσε", μπορούσατε να δείτε σε πραγματικό χρόνο τι συμβαίνει. Και με πιτάκια. Γιατί τα events δεν είναι μόνο για IoT
2. Η περίπτωση Netflix
• The Netflix microservices
architecture is a metrics
generator that occasionally
streams movies
• 750 Bn metrics/μέρα
• 300 Bn app events/μέρα
• Πως πάμε σήμερα παιδιά?
3. Πως το κάνουν?
• Event ingestion με Kafka κ.α.
• Επεξεργασία με RxJava
• Ναι, τα Reactive Extensions είναι!
• Προώθηση σε επόμενα βήματα
4. Όποιος τρώει ξανατρώει
• Σπάσιμο σε βήματα αντί για
περίπλοκη επεξεργασία
• Σταδιακές ομαδοποιήσεις
5. The Old New Thing
• Event Stream Processing/Complex Event Processing
• Ερευνητικό πεδίο το 1990
• The next big thing το 2005+
• Apama 2005
• Esper 2006
• Event Processing Patterns, Gartner, 2009
• SQL Server StreamInsight 2010
6. Unified Log Processing
• Τι είναι
• Συλλογή των log όλων των συστημάτων σε ένα σημείο
• Αποθήκευση σε «αρχική» μορφή
• Επεξεργασία με Hadoop/Spark/ElasticSearch για εξαγωγή metrics, συμπερασμάτων
• Εξαγωγή μετρήσεων σε Data Warehouse, παραγωγή reports κλπ
• Μικρή παρεκτροπή
• Ευτυχώς είχαμε ESP
7. Τι άλλαξε ?
• Αντί για περίπλοκα γεγονότα, πολλά γεγονότα
• Αντί για BPM, IoT και Ops
• Syslog από το RPi ή το ESP8266?
• UDP message για κάθε καρέ του Continuum ?
8. Κι εμένα τι με νοιάζει?
• Θέλω να τρέξω υπηρεσία IoT, όχι να κάνω διδακτορικό
• Θέλω να ξέρω ότι οι καφετιέρες μου θα χαλάσουν πριν χαλάσουν!
• Αστείο? Ford Sync κανείς?
• Θέλω να ξέρω τι γίνεται στο e-Shop μου, όχι να μασάω logs!
• Έχεις δει πόσο πάει το Splunk?
• Θέλω να ξέρω ότι κάποιοι πελάτες της B2B εφαρμογής μου έχουν
πρόβλημα ΠΡΙΝ ακυρώσουν το συμβόλαιο.
• Με ταράξανε οι screen scrapers!
18. Sliding Window
• Όλοι οι δυνατοί συνδυασμοί με επικάλυψη
• SLIDINGWINDOW (timeunit ,windowsize )
19. Ζόρικα Queries – Fraud Detection
SELECT
System.Timestamp as Time,
CS1.CallingIMSI, CS1.CallingNum as CallingNum1, CS2.CallingNum as CallingNum2,
CS1.SwitchNum as Switch1,
CS2.SwitchNum as Switch2
FROM
CallStream CS1 TIMESTAMP BY CallRecTime
JOIN CallStream CS2 TIMESTAMP BY CallRecTime
ON CS1.CallingIMSI = CS2.CallingIMSI
AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5
WHERE CS1.SwitchNum != CS2.SwitchNum
20. Ζόρικα Queries – Διάρκεια σφάλματος
SELECT
LAG(time) OVER (LIMIT DURATION(hour, 24) WHEN weight < 20000 ) [StartFault],
[time] [EndFault]
FROM input
WHERE
[weight] < 20000
AND LAG(weight) OVER (LIMIT DURATION(hour, 24)) > 20000
Σφάλμα στην πλάστιγγα βγάζει το βάρος των αυτοκινήτων > 20 τόνους.
21. Και η Amazon ?
• Kinesis Firehose
• Φόρτωμα Streaming Data
• Kinesis Streams
• Custom Processing. Συνδιασμός
Event Processor και Stream Jobs
(output)
• Kinesis Analytics
• Θα είναι αντίστοιχο του Stream
Analytics
• Περισσότερο IaaS παρά PaaS
22. Κοινά Patterns
• Think big, start small
• Η αρχιτεκτονική θα πρέπει να καλύπτει μεγάλους όγκους αλλά
• Ξεκινήστε με μικρά δείγματα
• Ευκολότερο debugging όταν είναι λίγα τα events!
• Don’t interrupt the fast Path!
• Μην μπλοκάρετε το fast path με επεξεργασίες, ETL. Αυτό γίνεται και μετά.
• Data Lake!
• Βασιστείτε στο IoT Reference Architecture
• Τα υποσυστήματα «κουμπώνουν» σε αυτή την αρχιτεκτονική
23. Azure IoT Reference Architecture
Solution PortalProvisioning API
Identity & Registry Stores
Stream Event Processor
Analytics/
Machine
Learning
Data Visualization
& Presentation
Device State Store
Gateway
Storage
IP capable
devices
Existing IoT
devices
Low power
devices
PresentationDevice and Event Processing
Data
Transport
Devices and
Data Sources
Cloud
Gate-
way
Agent
Libs
Agent
Libs
Control System Worker Role
Agent
Libs
24. Αγοράζω ή φτιάχνω ?
Αγοράζω
• Δεν έχω Bn/μέρα
• Τα αποτελέσματα πιο σημαντικά από το
κόστος
• Τώρα ξεκινάω
• Δεν έχω διδακτορικό στο CEP
• Δεν θέλω να διαχειριστώ το infrastructure
Φτιάχνω
• Έχω πολύ μεγάλους όγκους (Bn/day)
• Ξέρω τι θέλω
• Είδη πληροφορίας, ερωτήσεις, ειδοποιήσεις
• Ξέρω τι κάνω
• Έχω PhD
• Διάβασα ένα white paper
• Καλή Γνώση των διαθέσιμων συστημάτων
• Storm, Spark, Kafka, Docker, Mesos, Kubernetes
• Διαχειρισιμότητα
• Μεγάλη ομάδα, χρηματοδότηση, χρόνος