7. The Oracle Peak 🏔
/…/ In the field of security engineering, an oracle attack is
an attack that exploits the availability of a weakness in a
system that can be used as an "oracle" to give a simple
go/no go indication to tell an attacker whether he or
she has reached, or is nearing, their goal. /../
8. The Path
1. Build the device
2. Capture the data
3. Process the data
4. Visualise the results
9.
10. The Path V2
1. Build the devices
2. Capture all the data real-time
3. Process the data anywhere
4. Visualise the results in real-time
+Don’t loose ANY DATA
+Modernise!
+Have fun!!!
21. Core S/W concepts
• Event streaming
• Devices emit
events
• State is evil* and
hard to scale
• Resiliency
• Network can be
down/broken
• Power is
unreliable.
• H/W and S/W can
and will fail 💥
• Rapid cycles
• Deployment
• Development
22. What is event streaming?
“Your database stores the current state of your data.
But the current state is always caused by some
actions that took place in the past. The actions are
the events. Your inventory table is the state that
results from the purchase and sale events that have
been made, bank balances are the result of credits
and debits, and the latency graph for your web server
is an aggregation of the stream of HTTP request
times.”
- Confluent Blog
23.
24. Advantages of event streaming
• Events are immutable
• Easy to reason about
• Easy to distribute => easy to scale easy to partition
• State can always be rebuild
• Change* is just another event
25.
26. The Oracle Peak Agent
• Written in Akka Streams with Scala
• Packaged as Docker Container (x86_64
and arm32v7)
• Experimentally compiled to native
image with GraalVM*
• Deployed w/ Ansible* 🐍
33. What is Kafka Connect?
Kafka Connect, an open source component of Apache
Kafka®, is a framework for connecting Kafka with external
systems such as databases, key-value stores, search
indexes, and file systems.
37. What is ksqlDB?
“An event streaming database is a particular kind of
database that helps you build stream processing apps.
It consolidates the many components found in virtually
every event streaming architecture.
Almost all streaming architectures today are piecemeal
solutions cobbled together from different projects.
At a minimum, you need a subsystem to acquire events
from existing data sources, another to store them,
another to process them, and another to serve queries
against aggregated materializations.
Integrating each subsystem can be difficult. Each has its
own mental model. And it’s easy to wonder, given all this
complexity: Is this all worth it?”
46. Bullet points
• Event streaming is incredibly powerful ⚡
• Kafka should be the modern backbone! 🦄
• Consider putting it into the “core” of your system
• Kafka Connectors are easy to setup!
• ksqlDB is super powerful.
• Scala can be used for IoT agents ✅ 🚀
• Wi-Fi has some “problems”* 😅
• Privacy Ideas 💡👀
• MAC address randomisation
• Encrypted management packets (new standards)
• Don’t use “public” Wi-Fis