Vielversprechende Tools und Frameworks für 2019 – Teil 1

Pünktlich zum Jahresstart stellt saracus einige vielversprechende Tools, Plattformen und Frameworks vor, die auch Ihnen das Leben erleichtern können. Hier ist der Teil 1.

Debezium

Die Methode Change Data Capture (CDC) hat viele Anwendungsfälle u. a. das Replizieren von Daten in andere Datenbanken, die Versorgung von Analytics-Systemen, das Extrahieren von Microservices von Monolithen und die Cache-Invalidierung. Als CDC-Plattform kann Debezium Datenbankänderungen auf Kafka Themen streamen. Dafür nutzt Debezium einen log-basierten CDC-Ansatz, der auf Änderungen in Logdateien reagiert. Saracus hat Debezium bereits in ausgewählten Projekten erfolgreich eingesetzt. Besonders überzeugt hat uns die hohe Skalierbarkeit und Resilienz durch die Anwendung von Kafka Connect. Insgesamt ist Debezium eine ausgezeichnete Wahl, um CDC zu unterstützen und kann durch CDC-Verbindungen mit zahlreichen Datenbänken verknüpft werden, wie z. B. Postgres, Mysql und MongoDB.

 

DVC

Die Versionierung von Daten ist insbesondere für die reproduzierbare Analyse in großangelegten Analytics-Projekten von zentraler Bedeutung. In dieser Hinsicht hat saracus sehr gute Erfahrungen mit dem Tool DVC gesammelt. DVC kann bei der Versionierung von Daten unterstützten, in dem User ihre Daten in einem git-ähnlichen Workflow an einen remote Cloud Storage-Bucket pushen und committen. Dies erleichtert das Pullen einer bestimmten Datenversion, um eine Analyse nachzuvollziehen. Dabei kann DVC auch die nicht-lineare Struktur von ML-Prozessen berücksichtigen und jede Hypothese als einen eigenen Git Branch darstellen.

 

TICK Stack

Die Open-Source Zeitreihen-Plattform TICK Stack setzt sich aus vier funktionalen Komponenten zusammen, und ermöglicht das einfache Speichern, Visualisieren und Überwachen von Zeitreihen. Die erste Komponente Telegraf sammelt und reportet Metriken und Events. InfluxDB bietet eine hochperformante Datenbank und Chronograf ist das User-Interface der Plattform. Schließlich übernimmt Kapacitor die Verarbeitung der Daten von InfluxDB und die Kommunikation an Chronograf. TICK Stack basiert auf dem Pull-Modell und wird unterstützt von InfluxData. Insgesamt überzeugt uns TICK Stack besonders durch InfluxDB als eine der besten Datenbanken für Zeitreihen.

 

Azure DevOps

Mit Azure DevOps stellt Microsoft eine Sammlung von Tools und Services zur Unterstützung von Softwareentwicklungsteams, darunter Git Repos, CI- und CD-Pipelines und Artifact Repos, bereit. Während das Verwalten, Entwickeln und Veröffentlichen von Anwendungen an Azure positiv zu bewerten sind, stellen der fehlende Support für CI- und CD-Pipelines als Code, die langsame Build Agent Start up Zeit und die Trennung zwischen Build und Release in verschiedene Pipelines Herausforderungen dar. Wir hoffen, dass die Services von Azure DevOps sich weiter stetig verbessern, um Entwicklern eine gute und reibungslose Handhabung für die Bereitstellung von Anwendungen auf Azure zu ermöglichen.

 

Apache Atlas

Als Metadaten-Framework für Hadoop ermöglicht Apache Atlas das Modellieren von Metadaten, das Klassifizieren von Datenbeständen, die Nachvollziehbarkeit von Datenursprung- und transformation und die Datenerfassung. Durch Import einer Taxonomie kann ein Business Catalog erstellt werden, um Geschäftswissen abzubilden. In Kombination mit einem intuitiven UI erlaubt dies eine schnelle Suche im Datenkatalog nach Typ, Klassifikation, Eigenschaft oder Stichworten. Der besondere Vorteil ist eine vereinfachte Kollaboration zwischen Data Scientists, Analysten und dem Team Data Governance. Unsere jüngsten Projekterfahrungen zeigen, dass Unternehmen mit steigenden Compliance-Anforderungen auch ein zunehmendes Bedürfnis nach Data Governance entwickeln. Apache Atlas leistet in dieser Hinsicht grundlegende Governance Services und kann für neue Anforderungen stetig erweitert werden.

 

Microservices

Unter Microservices wird im Allgemeinen ein Ansatz des Softwaredesigns verstanden, bei dem eine einzige Anwendung als unabhängig einsetzbare und skalierbare Einheiten kleiner Services konzipiert wird. Diese entkoppelten Services werden um Geschäftsfähigkeiten gebaut und können dadurch unabhängig Mehrwert schaffen. Microservices stehen somit im Kontrast zum monolithischen Ansatz, der Services um technische Eigenschaften organisiert. Jeder Service kann eine andere Programmiersprache und verschiedene Datenspeichertechniken verwenden und sollte auf einer eigenen Maschine laufen. Unternehmen erhoffen sich von Microservices vor allem neue Technologien schneller auf den Markt zu bringen. Weitere Vorteile sind ein widerstandfähigeres System und eine zielgenaue Skalierbarkeit einzelner Services.

Zwar haben in der Praxis einige Unternehmen bereits eine geschichtete Microservices Architektur übernommen, doch organisieren sie ihre Services weiterhin um technische Rollen, so z. B. Prozess APIs oder System APIs. Dieser Ansatz steht im Widerspruch zu Microservices und leidet an einer langsamen und kostenintensiven Abstimmung zwischen verschiedenen Fachteams. Deshalb sollten Unternehmen genau darauf achten, Services um Geschäftsfähigkeiten zu organisieren, um damit von den Vorteilen von Microservices zu profitieren.

In cloud-basierten Umgebungen haben sich Microservices zum vorherrschenden Ansatz entwickelt. Trotzdem sollte die Entscheidung für Microservices insgesamt gut überlegt sein. Microservice Envy bezeichnet die Gefahr, dass Teams ihre Architektur mit zahlreichen Services verkomplizieren, nur weil Microservices gerade im Trend liegen. Unterstützung mit einer komplexen Anzahl an Microservices können Plattformen wie Kubernetes leisten, um den Einsatz von Microservices zu erleichtern. Wichtig ist, dass Microservices Komplexität in der Entwicklung gegen Komplexität im Ablauf eintauschen. Deshalb erfordern sie eine solide Grundlage von automatisiertem Testing, stetiger Belieferung und eine DevOps Kultur.