SlideShare une entreprise Scribd logo
1  sur  24
Περατζάδα στο Event Hub
Παναγιώτης Καναβός, dotNETZone moderator
Η περίπτωση Netflix
• The Netflix microservices
architecture is a metrics
generator that occasionally
streams movies
• 750 Bn metrics/μέρα
• 300 Bn app events/μέρα
• Πως πάμε σήμερα παιδιά?
Πως το κάνουν?
• Event ingestion με Kafka κ.α.
• Επεξεργασία με RxJava
• Ναι, τα Reactive Extensions είναι!
• Προώθηση σε επόμενα βήματα
Όποιος τρώει ξανατρώει
• Σπάσιμο σε βήματα αντί για
περίπλοκη επεξεργασία
• Σταδιακές ομαδοποιήσεις
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
Unified Log Processing
• Τι είναι
• Συλλογή των log όλων των συστημάτων σε ένα σημείο
• Αποθήκευση σε «αρχική» μορφή
• Επεξεργασία με Hadoop/Spark/ElasticSearch για εξαγωγή metrics, συμπερασμάτων
• Εξαγωγή μετρήσεων σε Data Warehouse, παραγωγή reports κλπ
• Μικρή παρεκτροπή
• Ευτυχώς είχαμε ESP 
Τι άλλαξε ?
• Αντί για περίπλοκα γεγονότα, πολλά γεγονότα
• Αντί για BPM, IoT και Ops
• Syslog από το RPi ή το ESP8266?
• UDP message για κάθε καρέ του Continuum ?
Κι εμένα τι με νοιάζει?
• Θέλω να τρέξω υπηρεσία IoT, όχι να κάνω διδακτορικό
• Θέλω να ξέρω ότι οι καφετιέρες μου θα χαλάσουν πριν χαλάσουν!
• Αστείο? Ford Sync κανείς?
• Θέλω να ξέρω τι γίνεται στο e-Shop μου, όχι να μασάω logs!
• Έχεις δει πόσο πάει το Splunk?
• Θέλω να ξέρω ότι κάποιοι πελάτες της B2B εφαρμογής μου έχουν
πρόβλημα ΠΡΙΝ ακυρώσουν το συμβόλαιο.
• Με ταράξανε οι screen scrapers!
Event Hub – Μέλος ευυπόληπτης οικογένειας
Event Hub
Event Hub
Partition
Partition
Partition
Partition
Events
Consumer
Group
Consumer
Group
Cold
Storage
Event
Processor
Event
Processor
Event
Processor
Event
Processor
Χαρακτηριστικά
• Πρωτόκολλα
• AMQP
• HTTP
• MQTT
• Custom Gateway
Stream Analytics
• SQL-based stream data processing
• Windowing functions
• Low Latency
• Πολλά output targets
Τι θα παίξουμε σήμερα?
Outputs
• SQL Database
• Blob storage
• Table Storage
• Service Bus Queue
• Service Bus Topic
• Document DB
• Data Lake
• Power BI
• Event Hub
Windows
• Χρονική ομαδοποίηση event
• Απαραίτητο για την
• Επικάλυψη?
• Tumbling
• Hopping
• Sliding
• Παρκούρ ?
Tumbling Window
• Καμία επικάλυψη
• TUMBLINGWINDOW(timeunit ,windowsize,[offsetsize])
• TUMBLINGWINDOW(minute ,5)
Hopping Window
• Επικαλυπτόμενα
• HOPPINGWINDOW(timeunit ,windowsize, hopsize,[offsetsize])
• HOPPININGWINDOW(minute ,10,5)
Sliding Window
• Όλοι οι δυνατοί συνδυασμοί με επικάλυψη
• SLIDINGWINDOW (timeunit ,windowsize )
Ζόρικα 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
Ζόρικα 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 τόνους.
Και η Amazon ?
• Kinesis Firehose
• Φόρτωμα Streaming Data
• Kinesis Streams
• Custom Processing. Συνδιασμός
Event Processor και Stream Jobs
(output)
• Kinesis Analytics
• Θα είναι αντίστοιχο του Stream
Analytics
• Περισσότερο IaaS παρά PaaS
Κοινά Patterns
• Think big, start small
• Η αρχιτεκτονική θα πρέπει να καλύπτει μεγάλους όγκους αλλά
• Ξεκινήστε με μικρά δείγματα
• Ευκολότερο debugging όταν είναι λίγα τα events!
• Don’t interrupt the fast Path!
• Μην μπλοκάρετε το fast path με επεξεργασίες, ETL. Αυτό γίνεται και μετά.
• Data Lake!
• Βασιστείτε στο IoT Reference Architecture
• Τα υποσυστήματα «κουμπώνουν» σε αυτή την αρχιτεκτονική
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
Αγοράζω ή φτιάχνω ?
Αγοράζω
• Δεν έχω Bn/μέρα
• Τα αποτελέσματα πιο σημαντικά από το
κόστος
• Τώρα ξεκινάω
• Δεν έχω διδακτορικό στο CEP
• Δεν θέλω να διαχειριστώ το infrastructure
Φτιάχνω
• Έχω πολύ μεγάλους όγκους (Bn/day)
• Ξέρω τι θέλω
• Είδη πληροφορίας, ερωτήσεις, ειδοποιήσεις
• Ξέρω τι κάνω
•  Έχω PhD
•  Διάβασα ένα white paper
• Καλή Γνώση των διαθέσιμων συστημάτων
• Storm, Spark, Kafka, Docker, Mesos, Kubernetes
• Διαχειρισιμότητα
• Μεγάλη ομάδα, χρηματοδότηση, χρόνος

Contenu connexe

Similaire à Περατζάδα στο Azure Event Hub

Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup SolutionΣυμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
TicTac Data Recovery
 
9th ssn execution plans in microsoft sql server 2008 r2
9th ssn  execution plans in microsoft sql server 2008 r29th ssn  execution plans in microsoft sql server 2008 r2
9th ssn execution plans in microsoft sql server 2008 r2
Antonios Chatzipavlis
 
9th ssn execution plans in microsoft sql server 2008 r2
9th ssn  execution plans in microsoft sql server 2008 r29th ssn  execution plans in microsoft sql server 2008 r2
9th ssn execution plans in microsoft sql server 2008 r2
Antonios Chatzipavlis
 
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
Manolis Vavalis
 

Similaire à Περατζάδα στο Azure Event Hub (20)

Paperless now
Paperless nowPaperless now
Paperless now
 
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup SolutionΣυμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
 
Jumbo case study - Modus AE
Jumbo case study - Modus AEJumbo case study - Modus AE
Jumbo case study - Modus AE
 
Νέφος στην εκπαίδευση
Νέφος στην εκπαίδευσηΝέφος στην εκπαίδευση
Νέφος στην εκπαίδευση
 
DTW presentation Smart LOB
DTW presentation Smart LOBDTW presentation Smart LOB
DTW presentation Smart LOB
 
Continous integration with jenkins
Continous integration with jenkinsContinous integration with jenkins
Continous integration with jenkins
 
9th ssn execution plans in microsoft sql server 2008 r2
9th ssn  execution plans in microsoft sql server 2008 r29th ssn  execution plans in microsoft sql server 2008 r2
9th ssn execution plans in microsoft sql server 2008 r2
 
SingularLogic Galaxy
SingularLogic GalaxySingularLogic Galaxy
SingularLogic Galaxy
 
Panagiotis Doxopoulos
Panagiotis DoxopoulosPanagiotis Doxopoulos
Panagiotis Doxopoulos
 
9th ssn execution plans in microsoft sql server 2008 r2
9th ssn  execution plans in microsoft sql server 2008 r29th ssn  execution plans in microsoft sql server 2008 r2
9th ssn execution plans in microsoft sql server 2008 r2
 
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
 
Olympiacos MS CRM 3 Microsoft EMEA Case Study
Olympiacos MS CRM 3 Microsoft EMEA Case StudyOlympiacos MS CRM 3 Microsoft EMEA Case Study
Olympiacos MS CRM 3 Microsoft EMEA Case Study
 
Ι. Χρυσάφης OTS
Ι. Χρυσάφης OTSΙ. Χρυσάφης OTS
Ι. Χρυσάφης OTS
 
65ο DotNetZone event: Tpl data flow και railway oriented programming
65ο DotNetZone event: Tpl data flow και railway oriented programming65ο DotNetZone event: Tpl data flow και railway oriented programming
65ο DotNetZone event: Tpl data flow και railway oriented programming
 
Παναγιώτης Τσαντίλας, 2nd Hellenic Innovation Forum
Παναγιώτης Τσαντίλας, 2nd Hellenic Innovation ForumΠαναγιώτης Τσαντίλας, 2nd Hellenic Innovation Forum
Παναγιώτης Τσαντίλας, 2nd Hellenic Innovation Forum
 
VET4SBO Level 3 module 1 - unit 2 - 1.0 gr
VET4SBO Level 3   module 1 - unit 2 - 1.0 grVET4SBO Level 3   module 1 - unit 2 - 1.0 gr
VET4SBO Level 3 module 1 - unit 2 - 1.0 gr
 
Technolocical trends for the next years
Technolocical trends for the next yearsTechnolocical trends for the next years
Technolocical trends for the next years
 
CSB-Fish. Το σύστημα ιχνηλασιμότητας που «μιλά τη γλώσσα» της βιομηχανίας αλι...
CSB-Fish. Το σύστημα ιχνηλασιμότητας που «μιλά τη γλώσσα» της βιομηχανίας αλι...CSB-Fish. Το σύστημα ιχνηλασιμότητας που «μιλά τη γλώσσα» της βιομηχανίας αλι...
CSB-Fish. Το σύστημα ιχνηλασιμότητας που «μιλά τη γλώσσα» της βιομηχανίας αλι...
 
Water_Wine_Spirits_and_Beer_web
Water_Wine_Spirits_and_Beer_webWater_Wine_Spirits_and_Beer_web
Water_Wine_Spirits_and_Beer_web
 
Γνωριμία με την ASP.NET 2.0
Γνωριμία με την ASP.NET 2.0Γνωριμία με την ASP.NET 2.0
Γνωριμία με την ASP.NET 2.0
 

Περατζάδα στο Azure Event Hub

  • 1. Περατζάδα στο Event Hub Παναγιώτης Καναβός, dotNETZone moderator
  • 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!
  • 9. Event Hub – Μέλος ευυπόληπτης οικογένειας
  • 12. Stream Analytics • SQL-based stream data processing • Windowing functions • Low Latency • Πολλά output targets
  • 13. Τι θα παίξουμε σήμερα?
  • 14. Outputs • SQL Database • Blob storage • Table Storage • Service Bus Queue • Service Bus Topic • Document DB • Data Lake • Power BI • Event Hub
  • 15. Windows • Χρονική ομαδοποίηση event • Απαραίτητο για την • Επικάλυψη? • Tumbling • Hopping • Sliding • Παρκούρ ?
  • 16. Tumbling Window • Καμία επικάλυψη • TUMBLINGWINDOW(timeunit ,windowsize,[offsetsize]) • TUMBLINGWINDOW(minute ,5)
  • 17. Hopping Window • Επικαλυπτόμενα • HOPPINGWINDOW(timeunit ,windowsize, hopsize,[offsetsize]) • HOPPININGWINDOW(minute ,10,5)
  • 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 • Διαχειρισιμότητα • Μεγάλη ομάδα, χρηματοδότηση, χρόνος