Seamless connectivity
vom Web über Backends bis zu IoT-Geräten
Mai 2016, Tobias Oberstein und Alexander Gödde
Diese Präsentation ist auch zugänglich unter
-
http://crossbario.com/resources/presentations/
-
http://bit.ly/1XwpNhn
Agenda
-
Wer sind wir?
-
Was ist Crossbar.io?
-
Vorteile von Crossbar.io
-
Sicherheit
-
Docker & Unikernel
-
Lizensierung
-
Technologie mit Services
-
Softwarehersteller
-
Fokus: Infrastruktursoftware für Microservices und IoT
-
Commercial Open Source
Agenda
-
Wer sind wir?
-
Was ist Crossbar.io?
-
Vorteile von Crossbar.io
-
Sicherheit
-
Docker & Unikernel
-
Lizensierung
-
Technologie mit Services
Crossbar.io ist ein Applikations-Router
Es verbindet Komponenten in verteilten Anwendungen.
Seamless Connectivity
-
ein Protokoll
-
über Sprachgrenzen
-
über Gerätegrenzen
-
über Netzwerkgrenzen
-
in Echtzeit
Anwendungsbeispiel
Crossbar.io ist ein Applikations-Router für das WAMP-Protokoll
Web Application Messaging Protocol (WAMP)
Messaging-Patterns
Deckt alle Kommunikation zwischen verteilten Anwendungskomponenten ab.
Verwendet zwei Patterns:
-
Publish & Subscribe (PubSub)
-
routed Remote Procedure Calls (rRPC)
PubSub
PubSub 1/4
Komponenten sind mit Crossbar.io verbunden
PubSub 2/4
Komponenten registrieren ihr Interesse an einem Thema
PubSub 3/4
Eine Komponente veröffentlicht auf ein Thema
PubSub 4/4
Interessierte Komponenten erhalten Event
PubSub
rRPC
rRPC 1/6
Komponenten sind mit Crossbar.io verbunden
rRPC 2/6
Komponente registriert eine Prozedur
rRPC 3/6
Eine Komponente ruft die registrierte Prozedur
rRPC 4/6
Crossbar.io ruft die Prozedur auf
rRPC 5/6
Die Prozedur gibt das Ergebnis zurück
rRPC 6/6
Crossbar.io sendet das Ergebnis an den Caller
rRPC
WAMP ist ein offenes Protokoll
-
https://github.com/wamp-proto/wamp-proto
-
grundlegende Entwicklung durch Tobias
-
Fortentwicklung mit der Entwickler- und Nutzer-Community
-
21 Contributors auf GitHub
-
über 180 Mitglieder auf der Mailingliste
-
22 open-source Client-Implementierungen (12 Sprachen)
-
11 open-source Router-Implementierungen
Genesi Radix K1
Designphilosophie
-
deckt alle Kommunikation zwischen verteilten Anwendungskomponenten ab
-
saubere Entkopplung von Komponenten (separat von Deployment-Artefakten)
-
sprach- und plattformunabhängig
-
erweiterbar
-
sicher
-
nur notwendige Komplexität
-
iterative Erstellung
Pluggable Architecture
WAMP - Advanced Features
-
Authentifizierung
-
Black/Whitelisting von Subscribern und Callern
-
Identifikation von Publishern und Callern
-
Load-Balancing für Calls
-
Meta-Events und Prozeduren
-
Payload-Verschlüsselung
Verbinden mit Crossbar.io
var connection = new autobahn.Connection({
url: "ws://134.34.1.23",
realm: "crossbardemo"
});
connection.open();
Handler für die Verbindung
connection.onopen = function(session, details) {
// set up your application
};
connection.onclose = function(reason, details) {
// handle failed and dropped connections
};
PubSub
session.subscribe("com.myapp.topic_1",
function(args, kwargs, details) {
// process event
}
);
session.publish("com.myapp.topic_1",
args, kwargs, options);
rRPC
session.register("com.myapp.function_1",
function(args, kwargs, details) {
// the procedure
}
);
session.call("com.myapp.function_1", args, kwargs, options)
.then(function(res) {
// process the result
}
Autobahn Projekt
Open-source WAMP Client-Bibliotheken
Gegenwärtig:
-
Autobahn|Python
-
Autobahn|JS
-
Autobahn|CPP
In Entwicklung:
-
Autobahn|Postgres
-
Autobahn|Android
-
Autobahn|C
Autobahn|Testsuite
Testsuite für WebSocket-Implementierungen.
Verwendet von Mozilla, Chrome Dev Team, IE Dev Team und vielen anderen.
Agenda
-
Wer sind wir?
-
Was ist Crossbar.io?
-
Vorteile von Crossbar.io
-
Sicherheit
-
Docker & Unikernel
-
Lizensierung
-
Technologie mit Services
Seamless Connectivity
-
ein Protokoll
-
über Sprachgrenzen
-
über Gerätegrenzen
-
über Netzwerkgrenzen
-
in Echtzeit
... nicht nur ein WAMP Router
-
Authorisierung
-
Applikationskomponenten-Hosting
-
statischer Webserver
-
REST-Bridge-Services
Platform for verteilte Anwendungen, die All-in-One-Lösungen ermöglicht.
Wahlfreiheit für den Benutzer, welche Features er verwendet!
Performance
-
mehrere 100k Verbindungen
-
mehrere 10k Nachrichten/s
-
läuft auch auf kleinen SBCs (Raspberry Pi 1)
Agenda
-
Wer sind wir?
-
Was ist Crossbar.io?
-
Vorteile von Crossbar.io
-
Sicherheit
-
Docker & Unikernel
-
Lizensierung
-
Technologie mit Services
Sicherheit
Fundamental für vernetzte Geräte, make-or-break für das IoT.
Benutzer
-
Schutz von Daten
-
physische Sicherheit
Hersteller
-
Haftungsrisiken
-
Produktzulassung für den Markt
Sicherheit bei IoT-Geräten ist schlecht!
-
50% ohne Transportverschlüsselung
-
60% ohne gesicherten Update-Mechanismus
-
40% ohne Schutz gegen Replay-Attacken
SSL ist nicht gleich SSL
Zahlreiche Ciphers sind unsicher.
Crossbar.io verwendet ausschließlich (nach gegenwärtigem Wissensstand) sichere Ciphers.
Was sind die technischen Probleme?
-
viele Geräte
-
begrenzte Ressourcen auf den Geräten
-
Wissen um Angriffe verbreitet sich weit und schnell
-
Updates verbreiten sich langsam
Minimierung der Angriffsfläche auf den Geräten:
-
Geräte initiieren Verbindungen zum Router
-
keine offenen Ports am Gerät
Härtung des Routers
-
Sicherheit als Grundprinzip
-
kein Anwendungscode im Router
Sicherheit ist eingebaut
-
umfangreiche Authentifikations-Features
-
flexible, feingranulare Authorisierung
-
End-to-End Verschlüsselung
Agenda
-
Wer sind wir?
-
Was ist Crossbar.io?
-
Vorteile von Crossbar.io
-
Sicherheit
-
Docker & Unikernel
-
Lizensierung
-
Technologie mit Services
Docker & Unikernel 1/2
-
Crossbar.io als Docker-Image verfügbar (x86)
-
Autobahn als Docker-Image verfügbar
-
Crossbar.io auf Docker ARM ist auf Roadmap
-
Crossbar.io Worker als Docker-Container ist auf Roadmap
Docker & Unikernel 2/2
-
rumprun (https://github.com/rumpkernel/rumprun) ist ein auf Rump Kernel basierender Unikernel
-
Rump Kernels (http://rumpkernel.org/) basiert auf NetBSD
-
rumprun läuft auf: HW (x86_32, x86_64 and ARM), Xen, Posix
-
Crossbar.io auf rumprun möglich als Weiterentwicklung
Agenda
-
Wer sind wir?
-
Was ist Crossbar.io?
-
Vorteile von Crossbar.io
-
Sicherheit
-
Docker & Unikernel
-
Lizensierung
-
Technologie mit Services
Autobahn Client-Bibliotheken
MIT, Boost License
-
Liberale Lizenzen
-
Keine Verpflichtung zur Weitergabe von Modifikationen
-
Problemlose Verwendung in kommerziellen Projekten
Crossbar.io
-
Open Source Lizenz
-
Kommerzielle Standard-Lizenz
-
Individuell OEM Lizenz
1. Open Source Lizenz
AGPL v3
-
Copyleft: Pflicht zur Veröffentlichung von Modifikationen bei Verbreitung der Software
-
Nutzung über das Netzwerk gilt als Verbreitung
-
Code-Reuse nur in Projekten unter kompatiblen Lizenzen
-
Aber: WAMP-Clients werden durch ihre Verbindung zum Router nicht von der Lizenz tangiert!
2. Kommerzielle Standard-Lizenz
Tavendo hat alle Rechte am Source-Code von Crossbar.io.
Wir bieten eine kommerzielle Standardlizenz als Teil unserer bezahlten Leistungen zu Crossbar.io
3. Individuelle OEM Lizenz
Wir sind frei in der Lizenzgestaltung.
Agenda
-
Wer sind wir?
-
Was ist Crossbar.io?
-
Vorteile von Crossbar.io
-
Sicherheit
-
Docker & Unikernel
-
Lizensierung
-
Technologie mit Services
Technologie mit Services
Kommerzielles Standard-Angebot
-
kommerzielle Standard-Lizenz
-
Support mit SLA für Crossbar.io
-
Crossbar.io DevOps Center (CDC) (in Entwicklung)
Technologie mit Services
OEM-Partner-Angebot
-
Entwickler-Support für Crossbar.io
-
Weiterentwicklung von Crossbar.io aufgrund von Kundenanforderungen
-
Entwicklungsleistungen in OEM-Projekten
-
Individuelle OEM-Lizenz für Crossbar.io
-
Crossbar.io DevOps Center on Premise
Crossbar.io DevOps Center (CDC)
Cloud-Service für das Monitoring, Management und Clustering von Crossbar.io-Instanzen.
Monitoring
-
Über Instanzen und Standorte
-
von überall aus
-
Alarme
-
zentralisierte Logs
Management
-
dynamische Konfiguration
-
Templating
-
Automatisierung
-
Orchestrierung
-
Zugriff über API
Clustering
-
Hochverfügbarkeit
-
Skalierung
-
Latenzminimierung (geographisch verteilte Router)
Technologie mit Services
OEM-Partner-Angebot
-
Entwickler-Support für Crossbar.io
-
Weiterentwicklung von Crossbar.io aufgrund von Kundenanforderungen
-
Entwicklungsleistungen in OEM-Projekten
-
Individuelle OEM-Lizenz für Crossbar.io
-
Crossbar.io DevOps Center on Premise
-
Tobias Oberstein - tobias.oberstein@crossbario.com
-
Alexander Gödde - alexander.goedde@crossbario.com
-
IRC - freenode/autobahn
-
Mailing lists (on Google Groups): crossbario, autobahn, wampws