Friday, January 30, 2015

Microsoft "Trill" (Predictive Analytics)

From the dotnetpro-Newsticker on 29.01.2015: Trill – eine Billion Events pro Tag:

"Microsoft Research entwickelt mit Trill eine .NET-Bibliothek, die es in sich hat: Sie verarbeitet große Datenmengen zwei- bis viermal schneller als gewöhnliche Streaming Engines..."

The paper: Trill: A High-Performance Incremental Query Processor for
Diverse Analytics


Wednesday, January 21, 2015

Fazit dev.talk - Docker

Yesterday, i gave an introductory talk about Docker. The bottom line: Unmittelbare Vorteile liegen weniger darin, eigene Produkte per Docker zu integrieren/installieren. Der unmittelbare Vorteil von Docker liegt oft eher darin, dass damit andere Lösungen viel leichter zugänglich sind.

Für Dependencies in Form von Bibliotheken haben ist das ja mit Dependency Managern wie Maven und NuGet schon gelöst. Das Einbinden von Fremd-Code ist damit keine Hürde mehr.
Die Integration und der Betrieb von externen Komponenten der Produkten (z.B. ElasticSearch, RabbitMQ, MongoDb, PostgreSQL, etc.) wird oft jedoch noch manuell durchgeführt, genauso wie früher das Einbinden anderer Bibliotheken.

Dass man das bisher manuell tut, macht sich auch zunächst im Einzelfall nicht wirklich bemerkbar. Beispiel ElasticSearch, nur Entwicklung: herunterladen, starten, fertig. Ist doch kein Aufwand. Wozu also Docker?

Vergrößert sich die Anzahl der Komponenten sieht das schon anders aus. Beispiel: RabbitMQ (river) + ElasticSearch + ...
Jede Komponente wird ein wenig anders bezogen, installiert und betrieben.

Berücksichtigt man jetzt nicht nur die Entwicklungsphase, sondern auch Integration/QS und Produktion wird schnell klar, dass der Aufwand über-linear, vielleicht sogar quadratisch von der Anzahl der verschalteten Komponenten/Produkte abhängt. Von der Zahl der verschiedenen Zielumgebungen ganz zu schweigen.

Das ist genau die wesentliche Aussage und Motivation der Matrix from hell. Durch die Vereinheitlichung mittels Container kann jede Komponente automatisiert bezogen, installiert, betrieben und deinstalliert werden. Und das immer gleich, egal ob Entwicklungsrechner, Integrationsanlage, Produktion oder vor Ort beim Kunden.

Damit reduziert Docker den o.a. Aufwand nahezu wieder auf O(1), zumindest was die teure menschliche Arbeit betrifft. In dieser Hinsicht bietet Docker also einen Mehrwert in Form einer Infrastruktur zum Betrieb von Komponenten/Produkten, vergleichbar mit der Infrastruktur durch Paketmanager zur Handhabung von Fremdbibliotheken.