Best Practices: Welches ist das richtige Werkzeug für die Datenaufbereitung mit Tableau

Im Bereich Datenaufbereitung gibt es eine ständige Herausforderung: Wie werden die Daten am besten für Tableau aufbereitet? Und sind hierfür Tools wie Knime oder Tableau Prep oder gleich eine eigene Programmierung sinnvoller? Mit Glück haben die Unternehmen sich für einen Toolweg entschieden und der IT-Dienstleister kann diesem folgen. Wie aber vorgehen, wenn es keinerlei Vorgaben gibt? Anhand von folgenden fünf Fällen haben wir uns drei „Werkzeuge“ genauer angeschaut und beleuchten die Vor- und Nachteile der einzelnen Lösungen:

  1. Sehr große Datensätze (Dateien mit mind. 3 Mio. Datensätzen werden getestet)
  2. Komplexe Logik (werden bestimmte Logiken z.B. Loops unterstützt)
  3. Fehleranalyse (wie und wann werden Fehler vom Tool angezeigt)
  4. Verbindung zu verschiedenen Datenquellen (welche Verbindungen zu unterschiedlichen Datenquellen sind möglich)
  5. Automatisierung (Aktualisierung)

Unser Supporter für diesen Zweck ist ein HP Elitebook (RAM 16GB; Intel® Core™ i5-8250U CPU 1.60 GHz).

In der Übersicht: Wann ist welches Werkzeug sinnvoll

Für eine übersichtliche Empfehlung, in welchem Fall die getesteten Werkzeuge sinnvoll sind, haben wir in drei Kategorien eingeteilt (grün=für diesen Fall empfehlenswert, gelb=für diesen Fall mit Einschränkungen empfehlenswert, rot=für diesen Fall nicht empfehlenswert).

Werkzeuge Datenaufbereitung mit Tableau
Abbildung 1: Übersicht Einordnung Werkzeuge Datenaufbereitung mit Tableau nach Kategorie, Eigene Darstellung

Tableau Prep – Nix für komplexe Logik

Fall 1: Sehr große Datensätze
Bei sehr großen Datensätzen kann es zu Einschränkungen der PC-Performance (CPU und Arbeitsspeicher) und von Tableau Prep kommen – bis hin zum kompletten PC-Absturz. Dabei geht der Arbeitsstand verloren und es muss von vorne begonnen werden.
Unser Testergebnis: nicht empfehlenswert.

Fall 2: Komplexe Logik
Es lässt sich keinerlei komplexe Logik abbilden.
Unser Testergebnis: nicht empfehlenswert.

Fall 3: Fehleranalyse
Fehler werden zwar sofort entweder im Bearbeitungsfenster oder im Bereich Benachrichtigungen angezeigt, jedoch können diese sehr kryptisch und knapp ausfallen.
Unser Testergebnis: mit Einschränkungen empfehlenswert.

Fall 4: Verbindungen zu verschiedenen Datenquellen
Dateien können von MS Access, CSV, PDF, XLS, Statistikdaten oder Tableau-Extrakte importiert werden. Es werden nicht so viele Verbindungen wie bei Tableau Desktop geboten.
Unser Testergebnis: mit Einschränkungen empfehlenswert.

Fall 5: Automatisierung
Wäre der Tableau Prep Conductor nicht lizenziert, wäre im Test eine automatisierte Ausführung auf Tableau Server mit Tableau Prep Conductor möglich. Eine lokale Automatisierung ist lokal durchführbar (Batch, JSON), der PC muss aber durchgehend angeschaltet sein.
Unser Testergebnis: mit Einschränkungen empfehlenswert.

Knime: komplexe Logik und große Datensätze

Fall 1: Sehr große Datensätze
Im Bereich großer Datensätze muss bei Knime am Ende geprüft werden, ob alle Berechnungen und Änderungen funktionieren. Das Ergebnis: es führt zu Performance-Einschränkungen, jedoch nicht zum Absturz. Wie bei Tableau Prep gibt es den Bonus, dass die Daten in der Stichprobe auf eine bestimmte Anzahl eingeschränkt sind (bis zu 1 Mio. frei wählbar). Ein weiterer Vorteil ist, dass bei Knime die Daten erst durchlaufen werden, wenn es vom User angestoßen wird.
Unser Testergebnis: mit Einschränkungen empfehlenswert.

Fall 2: Komplexe Logik
Mit über 2.000 Knotenpunkten und der Möglichkeit, eine komplexe Logik abzubilden ist Knime für diesen Fall empfehlenswert. Und gibt es mal keinen Node, um eine Logik abzubilden, kann sie in einem Node mit Java oder Python abgebildet und ausgeführt werden. Das Große Online-Register für Knoten sowie die hilfreiche Online-Community wiegen auch den Nachteil aus, dass Know-how aufgrund der vielen Funktionen dringend notwendig ist.
Unser Testergebnis: empfehlenswert.

Fall 3: Fehleranalyse
Warnungen und Fehler werden in Form von Symbolen oder Ampelfarben sofort im Knoten angezeigt, wobei eine Überprüfung von Knoten zu Knoten möglich ist. Meldungen können außerdem auch auf einer Konsole angezeigt werden. Einziges Manko: Fehlermeldungen sind teilweise nicht leicht nachvollziehbar, da das Error-Handling eines Knoten dem Creator unterliegt.
Unser Testergebnis: empfehlenswert.

Fall 4: Verbindungen zu verschiedenen Datenquellen
Es können Verbindungen zu einer großen Bandbreite an Datenquellen hergestellt werden – Textformate (CSV, PDF, XLS etc.), Unstrukturierte Datentypen (Bilder, Dokumente, Netzwerke etc.) oder Datenbanken und Data Warehouse Lösungen (Oracle, ApacheHive, Azure etc,), Twitter und Google usw.
Unser Testergebnis: empfehlenswert.

Fall 5: Automatisierung
Die Vorteile im Falle der Automatisierung heben sich bei Knime meist wieder auf. So ist zwar eine automatische Ausführung auf dem Knime-Server möglich, der ist aber wiederum lizenziert. Ebenfalls ist auf der einen Seite ein automatisierter Durchlauf (z.B. Batch) realisierbar, auf der anderen Seite jedoch keiner für Workflowketten umsetzbar.
Unser Testergebnis: mit Einschränkungen empfehlenswert.

Python: Mit Geduld zu maximaler Flexibilität und Aufbereitung großer Datensätze

Fall 1: Sehr große Datensätze
Im Falle sehr großer Datensätze ist es möglich, den gesamten Code zu schreiben, ohne die Daten anzufassen und es gibt kaum Performance-Einschränkungen. Ein Aber gibt es: die Fehleranalyse nimmt viel Zeit in Anspruch.
Unser Testergebnis: mit Einschränkungen empfehlenswert.

Fall 2: Komplexe Logik
Python ist im Kontext der komplexen Logik sehr frei in der Entwicklung. Funktionen wie z.B. FOR– oder While Schleifen stehen zur Verfügung. Um die komplexen Logiken umfänglich nutzen zu können, ist Know-how in der Sprache daher zwingend notwendig.
Unser Testergebnis: empfehlenswert.

Fall 3: Fehleranalyse
Durch einen Debugger ist eine direkte Dateneinsicht und bessere Fehlerverständlichkeit gegeben – und die Verwendung von Python Console ist auch während dem debuggen möglich. Jedoch werden Fehler bei Python erst angezeigt, wenn sie auftreten. Bei einem sehr großen Datensatz kann das schon mal eine halbe Stunde dauern.
Unser Testergebnis: mit Einschränkungen empfehlenswert.

Fall 4: Verbindungen zu verschiedenen Datenquellen
Eine Verbindung zu Dateiformaten (z.B. CSV, XLS, TSV, Datei etc.) ist möglich. Datenbanken und Data Warehouse Lösungen sind teilweise direkt integriert.
Unser Testergebnis: empfehlenswert.

Fall 5: Automatisierung
Eine Automatisierte Ausführung ist direkt auf den Servern möglich und eine lokale Automatisierung (z.B. Batch) wird ebenfalls geboten. Datenbanken und Data Warehouse Lösungen müssen jedoch Python Skripte unterstützen und der PC muss angeschaltet sein.
Unser Testergebnis: mit Einschränkungen empfehlenswert.

Fazit

Alle drei „Werkzeuge“ bzw. Lösungen bieten die Möglichkeit Daten auf verschiedene Art und Weise aufzubereiten. Nachdem wir die Lösungen in fünf Fällen untersucht haben, wird schnell ein Muster deutlich. Tableau Prep ist für eine schnelle und einfache Datenaufbereitung von kleineren Datensätzen sinnvoll. Da der Workflow auf den Tableau Server eingebunden werden kann, ist der Zugriff und die Bearbeitung des Workflows von überall möglich. Sollen komplexe Logiken und größere Datensätze aufbereitet werden, empfiehlt sich Knime oder Python.

 

Mehr über unsere Data Driven Services erfahren

 

Diese Blogbeiträge könnten dich auch interessieren:

Automatisierte Qualitätssicherung im Kontext von Data Analytics

Die Top 3 Business Intelligence Tools – eine Kurzgeschichte

Automatisierte Qualitätssicherung im Kontext von Data Analytics

Produkte wie Tableau, Qlik oder auch Power BI von Microsoft kommen bei der Datenanalyse und Datenvisualisierung häufig zum Einsatz. Ein sehr wichtiges Thema hierbei ist die Qualitätssicherung. Denn es gibt kaum Schlimmeres, als wenn die aufgezeigten Daten nicht der Wirklichkeit entsprechen. Die automatisierte Qualitätssicherung in IT-Projekten ist bereits weit verbreitet, bei Visualisierungsprojekten bzw. Data Analytics Projekten ist dies aber bei weitem noch nicht der Fall. Das Ergebnis: nach jeder Änderung wird manuell geprüft, ob noch alle Daten korrekt sind, bzw. ob die Verständlichkeit der Dashboards noch gegeben ist. Um diesen aufwändigen Prozess zu automatisieren, gibt es unterschiedliche Tools mit den verschiedensten Funktionen. Einige dieser Tools sind jedoch lediglich auf ein Produkt anwendbar – nur wenige Anbieter decken Tableau, Qlik als auch Power BI ab. Doch welche Funktionen genau haben die unterschiedlichen Tools? Wir haben vier der verfügbaren Tools genauer unter die Lupe genommen.

Vier Data Analytics Tools mit unterschiedlichen Test-Funktionen

Im Test haben wir diesen vier Tools BI Validator, Power Tools, Kinesis und QuerySurge auf den Zahn gefühlt. Unterscheiden sich die Tools bei vielen Funktionen deutlich, haben sie eines gemeinsam: mit allen kann die Performance von Reports getestet werden. Werfen wir aber doch einen genaueren Blick darauf.

Hier Teil 1 der Data Analytics Reihe lesen: Ist eine Abgrenzung des Begriffs noch möglich?

BI Validator

BI-Validator: Automatische Testläufe
Abbildung 1: Eigener Screenshot aus dem BI-Validator – Automatische Testläufe

Der BI Validator beispielsweise bietet unterschiedliche Tests:

  • Regressionstest von Arbeitsmappen: Vergleich von Arbeitsmappen für die Identifikation von Daten- und Layoutunterschieden
  • Regressionstest von Ansichten: Vergleich von verschiedenen Ansichten zur Erkennung von visuellen als auch Datenunterschiede
  • Stresstest: Erfassung von Leistungsstatistiken durch eine Simulierung der Benutzerlast
  • Upgrade Test: Vergleich von Arbeitsmappen vor und nach dem Upgrade
  • Performance Test: Überwachung der Dashboards, Erstellung von Leistungsberichten der Produktionsumgebung
  • Funktionsprüfung: ermöglicht das Zuordnen und Vergleichen von Reportdaten zu Datenquellen, um Ansichten zu überprüfen
  • Migrationstest: Vergleich der Daten eines Reports, die von Tableau generiert wurden
  • Sicherheitstest: Vergleich der Zugriffsebenen der einzelnen Benutzer bzw. Gruppen
  • Unternehmenszusammenarbeit: Ergebnisse können gemeinsam genutzt oder per E-Mail versendet werden, da Testpläne im Unternehmens-Repository gespeichert werden können.

 

Unser Fazit: Der BI Validator ist übersichtlich und einfach zu bedienen (auch ohne Programmierkenntnisse), daher können die Tests intuitiv durchgeführt werden. Für die Testläufe stehen zwei Anwendungsmöglichkeiten offen: manuell oder automatisiert.

Power Tools Desktop

Power Tools Desktop_Best Practice Analyzer
Abbildung 2: Eigener Screenshot aus dem Power Tools Desktop – Best Practice Analyzer

Um die Funktionen von Power Tools genauer zu betrachten, haben wir uns auf Power Tools Desktop (PTD) konzentriert. Mit diesem ist es möglich, eine Übersicht aller Datenfelder bei der Überprüfung von Datenquellen zu erstellen, auch mit dem Vermerk in wie vielen Ansichten und Berechnung sie auftauchen. Möchte man sich die Datenfelder genauer ansehen, ist es möglich, die Ansichten und Berechnungen direkt anzeigen zu lassen oder als Excel-Datei bzw. PDF zu exportieren. Eine weitere nützliche Funktion, um einen Überblick über alle Datensätze, Felder oder Datentypen zu erhalten, ist die Ausgabe einer allgemeinen Statistik zu Datenquellen einzelner Arbeitsmappen. Zusätzlich bietet z.B. der Style Manger an, einzelne Formatierungen der Arbeitsmappen zu erfassen und Dashboards zusammenführen.

 

Unser Fazit: Das Augenmerk bei Power Tools Desktop liegt ganz klar auf der Überprüfung der Performance von Arbeitsmappen sowie der Dokumentation von Daten. Die graphische Oberfläche ermöglicht eine einfache Navigation und die Durchführung von Analysen. Die Tests sind jedoch ausschließlich manuell möglich.

Kinesis

Kinesis: Testtypen
Abbildung 3: Eigener Screenshot aus Kinesis – Testtypen

Wie schlägt sich Kinesis mit schlanken vier Test?

  • Funktionstest: Unter anderem ist eine Simulierung von Benutzerinteraktionen und Benutzerentscheidungen sowie das Schreiben von Testfällen möglich
  • Regressionstest: Vergleich von zwei Tableau-Ansichten und die Nachverfolgung von Änderungen
  • Cross-Environment Test: Vergleich von Ansichten in unterschiedlichen Umgebungen (z.B. Standorte oder Server)
  • Performance Test: Beurteilung der Serverleistung, z.B. Antwortzeiten

 

Unser Fazit: Obwohl die Benutzeroberfläche bei Kinesis sehr einfach ist, kommen hier und da Unklarheiten auf, da diverse Mitteilungen anfangs unverständlich aufgezeigt sind –  als Hilfestellung ist dringend die Dokumentation notwendig.

QuerySurge

QuerySurge_Startbildschirm
Abbildung 4: Eigener Screenshot aus QuerySurge – Startbildschirm

Last but not least nehmen wir QuerySurge unter die Lupe. Hier wird über den Internet Explorer zugegriffen –  so sind mehre User möglich. Die Navigation funktioniert über eine graphische Oberfläche. Eine Auswertung der Testdaten erfolgt in Form von Paretodiagrammen und Korrelationsdiagrammen. Informationsmeldungen (z.B. Fehlermeldungen) werden praktischerweise direkt sichtbar auf dem Bildschirm ausgegeben. Die Ausgabe von einzelnen Reports oder Fehlersammellisten ist über Excel, CSV oder XML möglich. Mit dem BI Tester Add-On wird ergänzend eine große Bandbreite an Bereichen abgedeckt:

  • Geschäftsvalidierung von Berichten
  • Vollständiger Regressionstest der BI-Daten
  • Migrationstest von einem BI-Anbieter zu einem anderen
  • Aktualisierung von Tests von einer Version auf die andere
  • Vergleich von Berichten zwischen Servern
  • Übergabe von Parametern an einen Bericht
  • Abfragen von Berichtsmetadaten

 

Unser Fazit: Ist bei QuerySurge die Bedienbarkeit anfangs etwas schwierig, wird sie nach mehrmaliger Anwendung selbstverständlich. Diverse Tutorials sind aber sehr hilfreich. Ein Must-have zur Nutzung des Tools: Programmierkenntnisse.

Lust auf eine kleine Geschichte? Die Top 3 Business Intelligence Tools – eine Kurzgeschichte

Fazit

Die Automatisierung der Qualitätssicherung im Bereich der Datenanalyse und Datenvisualisierung birgt viele positive Aspekte – aber die Umsetzung mit passenden Tools ist ebenso wichtig, damit sie funktioniert. Umso wichtiger ist es, die Mitarbeiter bei der Überprüfung von Daten zu unterstützen, indem man ihnen das passende Tool an die Hand gibt. Natürlich hat jedes Tool seine Stärken und Schwächen. Um das passende Tool für die eigenen Verwendungszwecke zu finden, ist es daher wichtig klare Anforderungen an das Tool zu definieren. Nur so lässt sich der richtige Anbieter finden. Unser Favorit ist das Tool Query Surge: Es sind zwar SQL-Kenntnisse notwendig, wenn man jedoch hinter die Logik des Tools kommt, versteht man auch schnell die Funktionsweise. Hinzu kommt, dass die Entwickler gerade dabei sind, das Tool auch für Microsoft Power BI und Qlik kompatibel zu machen.

 

Mehr zu unseren Data Driven Services erfahren

 

Quellen:

Gudivada, Venkat N. (2017): DATA ANALYTICS: FUNDAMENTALS. In: Mashrur Chowdhury, Amy Apon und Kakan Dey (Hg.): Data Analytics for Intelligent Transportation Systems. Niederlande, Großbritanien, USA: Elsevier, S. 44–80.

Blockchain und Kryptowährung: warum haben sich noch keine lukrativen Geschäftsmodelle gefunden?

Warum wird das Thema Blockchain und Kryptowährung aktuell in vielen IT-Projekten und auf Webseiten heiß diskutiert – aber gleichzeitig weder von klassischen Zahlungsprovidern noch von Banken eine Dienstleistung auf Basis von Kryptowährungen angeboten?

Einer der größten Zahlungsanbieter der Welt, Stripe, liefert eine Antwort auf diese Frage: Bei Stripe handelt es sich um einen Online-Zahlungsdienst, welcher 2009 von den Brüdern Patrick und John Collison in den USA gegründet wurde. Im Jahr 2014 war Stripe das erste große Zahlungsunternehmen, welches Bitcoin-Zahlungen unterstützte. Nach vier Jahren wurde im April 2018 allerdings die Verarbeitung von Bitcoin-Transaktionen eingestellt.

Praxiswissen Blockchain hier entlang

Der Grund für diese Entscheidung? Stripe erhoffte sich, dass das Bezahlen mit Kryptowährung den Kunden helfen würde, Zahlungen in geografischen Gebieten zu ermöglichen, in denen Kreditkarten und Bankzahlungsabrechnungen generell unmöglich oder sehr schwierig sind.

Vom Untergang der Bitcoin-Zahlungen

Bitcoin hat sich jedoch nicht zu einem Tauschmittel entwickelt, sondern ist zu einem Vermögenswert bzw. Spekulationsobjekt mutiert und deswegen als Zahlungsmittel eher ungeeignet.

On top kam eine Reihe weiterer Funktionen, welche die Entscheidung zur Abschaffung der Bitcoin-Zahlungen finalisierte, wie beispielsweise die Bestätigungszeit einer Transaktion. Durch das Ansteigen der Transaktionsdauer stieg gleichzeitig die Fehlerquote der Transaktionen. Wenn eine Transaktion also endlich bestätigt wurde, hatte sich der Kurs der Währung häufig schon verändert. Das Ergebnis war die Verbuchung „falscher Beträge.“ Besonders beim High-Speed-Trading führte dies zu großen Verlusten.

Auch sind die Transaktionskosten in den letzten Jahren stark gestiegen, wodurch diese etwa auf einer Stufe mit regulären Überweisungen bei Banken stehen.

Durchschnittliche Transaktionskosten pro Tag in Dollar pro Transaktion
Durchschnittliche Transaktionskosten pro Tag in Dollar pro Transaktion; Quelle: https://bitcoinfees.info/ (13.12.2019)

So beobachtete Stripe nicht nur einen Rückgang des Transaktionsvolumens, sondern auch einen Abbau der Unternehmen, die Bitcoin-Zahlungen annahmen. Am 23. April 2018 wurden dann Bitcoin-Zahlungen komplett eingestellt.1

Die Alternative: stable coins

Doch wie stehen andere Global Player und Sachkundige zu Bitcoin und Kryptowährungen? IBM sieht Potential in der Blockchain-Technologie und verweist auf den Erfolg in den Bereichen Supply Chain, grenzüberschreitende Transaktionen und Identitätsprüfung. Besonders die Unveränderlichkeit der Blockchain ohne Regulierung des Mechanismus macht Geschäftsprozesse schneller und unkomplizierter.2 Der Einsatz der Blockchain-Technologie verspricht den Nutzern ebenfalls große Sicherheit.3 Bei der Verarbeitung von sensiblen Daten, wie bei Geldtransaktionen, ist dies von hoher Bedeutung.

IBM arbeitet ebenso an der Entwicklung einer „stable coin“, welche hohe Volatilität meiden und als praktischer Transaktionsmechanismus dienen soll.4 Im Gegensatz zum Bitcoin sind stable coins an einen anderen Vermögensgegenstand geknüpft. Bei der Kryptowährung von Facebook „Libra“ handelt es sich dabei um die Währungen US-Dollar, Euro, Yen, Britische Pfund und der Singapur-Dollar.

Die Haltung der Bundesregierung gegenüber Kryptowährungen ist generell positiv, eine stable coin lehnt sie hingegen ab. Ein Grund hierfür ist die Vermutung, dass stable coins von größeren Unternehmen in Konkurrenz zum Euro stehen könnten. Eine berüchtigte Befürchtung, wenn man sich zum Beispiel Facebook mit seiner eigenen stable coin anschaut und ihren mehr als 2 Mrd. Nutzern. Auch Politiker und Notenbanken sehen einen Stellenwertverlust in der Abgabe ihrer Aufgaben an Konzerne.5 Ein drittes Argument ist, dass auch wenn die Technologie in der Theorie wenig Raum für Sicherheitslücken lässt, es in der Praxis trotzdem häufig zu Hacking-Attacken kommt. Häufig handelt es sich um Phishing-Attacken oder Passwortdiebstahl, bei denen der Mensch als Schwachstelle ausgenutzt wird6 oder um DDoS-Attacken auf solche Plattformen, bei denen durch Überlastung der Hosting-Systeme hohe wirtschaftliche und Image-Schäden für die Betreiber die Folge sind.7

Fazit

Zusammenfassend lässt sich sagen, dass die Finanzwelt und ihre etablierten Größen nicht in eine Zeit ohne Kryptowährung und Blockchain-Technologie zurückkehren möchten. Die Suche nach möglichen lukrativen Anwendungsbereichen der Kryptowährung wird sich bei den Zahlungsdienstleistern fortsetzen und dort Investitionen getätigt, wo ein hohes Gewinnpotential in Aussicht ist. Trotz des enormen Potentials dieser Technologien sind sie noch weit von einem perfekten Mechanismus entfernt, der den Verlauf des globalen Währungsprozesses völlig verändert.

Dieser Blogbeitrag könnte Dich auch interessieren: Die Welt im Bitcoin-Rausch


 

1 Vgl.https://stripe.com/de/blog/ending-bitcoin-support (12.12.2019)

2 Vgl.https://fortune.com/2018/07/17/stripe-blockchain/ (12.12.2019)

3 Vgl.https://www.computerwoche.de/a/blockchain-was-ist-das,3227284 (12.12.2019)

4 Vgl.https://fortune.com/2018/11/19/blockchain-ripple-transferwise/ (12.12.2019)

5 Vgl.https://www.biallo.de/geldanlage/news/stablecoin-kryptowaehrungen-reif-fuer-den-massenmarkt/ (13.12.2019)

6 Vgl.https://www.it-finanzmagazin.de/sicherheitsrisiko-kryptowaehrungen-gefahr-cyberangriffe-66768/ (13.12.2019)

7 Vgl.https://www.security-insider.de/was-ist-ein-ddos-angriff-a-672826/ (13.12.2019)

It’s #FrontendFriday – Who runs the world? WebBrowser?

Hallo #FrontendFriday-Leser/in,

mir ist vor ein paar Tagen erst bewusst aufgefallen, dass wir immer mehr im WebBrowser machen (können). Sei es Emails lesen oder schreiben, Nachrichten lesen, Videos schauen, Kalender teilen, Geld überweisen, einkaufen, …

Eine Anwendung für den WebBrowser zu entwickeln ist sehr attraktiv, jeder benutzt einen und man kann den Inhalt auf allen Betriebssystemen einsehen. Mails z.B. bei GMX kann ich am PC, Handy oder vom Tablet aus über einen einfachen Link www.gmx.de erreichen. Wie genial ist das eigentlich?
Die Browser werden auch immer mit neuen Funktionen ausgestattet und machen so Features plattformübergreifend verfügbar.

Mehr

It’s #FrontendFriday – Was ist HTTP?

Es ist soweit, es ist Freitag – It’s #FrontendFriday :)

Im heutigem Blog geht es um das Thema “Was ist HTTP?”.

Was ist HTTP?

Das Hypertext Transfer Protocol (HTTP, englisch für Hypertext-Übertragungsprotokoll) ist ein zustandsloses Protokoll zur Übertragung von Daten auf der Anwendungsschicht über ein Rechnernetz. Es wird hauptsächlich eingesetzt, um Webseiten (Hypertext-Dokumente) aus dem World Wide Web (WWW) in einen Webbrowser zu laden. Es ist jedoch nicht prinzipiell darauf beschränkt und auch als allgemeines Dateiübertragungsprotokoll sehr verbreitet.

Mit Hypertext Transfer Protocol (HTTP) kommen die Nutzer eines Webbrowsers immer dann in Berührung, wenn sie die Webseiten eines entfernten Servers laden.
Das 2014 von der Internet Engineering Task Force (IETF) veröffentlichte RFC 7231 charakterisiert HTTP derweil allgemeiner als zustandsloses Protokoll, das auf Anwendungsebene angesiedelt ist und sich für verteilte, kollaborative Hypertextinformationssysteme eignet.

Wie funktioniert HTTP?

Mehr

Application Performance Monitoring (APM) von Microservices und FaaS in OpenShift

Autonome Fahrfunktionen werden immer komplexer und auch die Zahl der Servicefunktionen im Fahrzeug wächst. Da ist es gerade in der Entwicklung wichtig, diese Herausforderungen zu meistern. Für diesen Fall bieten sich sogenannte Microservices an, die eine massive Parallelisierung von Diensten erlauben. Doch warum macht der Einsatz von Microservices hier Sinn und wie kann man da den Überblick behalten?

Autonome Fahrfunktionen

Da autonome Fahrfunktionen und alles was dazu gehört, sehr komplex sind, braucht es von Beginn an eine Architektur, die diesen Herausforderungen gewachsen ist. Microservices modularisieren Software und liefern damit genau das, was benötigt wird, um Software erweiterbar und wartbar zu gestalten. Die einzelnen, unabhängig voneinander entwickelten und deployten Microservices lassen sich einfacher tauschen, updaten oder erweitern. All das sind Dinge, die eine Skalierbarkeit schaffen, die bei großen Projekten, wie im Bereich autonomem Fahren, wichtig sind.

Ähnlich wie ein Microservice, kann an dieser Stelle auch ein Function as a Service (FaaS) eingesetzt werden. Dieser hat den Vorteil, dass er nicht wie der Microservice durchgehend läuft, sondern nur gestartet wird, wenn die Funktion aufgerufen wird. Bezahlt wird dann auch nur die tatsächliche Rechenzeit, die von der Funktion in Anspruch genommen wird.

Setzt man diese Microservices oder FaaS nun in einzelne Container (z.B. OpenShift), kann jeder dieser Services in einer anderen Programmiersprache auf einer anderen Plattform implementiert sein und trotzdem über eine REST Schnittstelle mit den anderen kommunizieren. Ebenso kann jeder Service einzeln skaliert werden.

Microservices Aufbau v2 eigene Darstellung
Abbildung 1: Microservices Aufbau v2 eigene Darstellung

Warum sollte man Microservices überwachen?

Aus demselben Grund wieso man Systeme im generellen überwacht – weil alle Systeme Fehler aufweisen können. Ein System ist nicht immer „Up“ oder „Down“, es kann auch in einem herabgesetzten Zustand sein, was beispielsweise Performance Einbußen mit sich bringt. Ein Monitoring zeigt solche Zustände auf und kann dadurch eventuell auch einen Ausfall verhindern.

Dienstleistungen, die intern oder für externe Kunden erbracht werden, werden oft im Rahmen eines Service Level Agreement (SLA) festgehalten. Ohne Monitoring ist es unmöglich zu wissen, ob das SLA eingehalten oder verletzt wird.

Überwachungssysteme produzieren zudem im Laufe der Zeit wertvolle Daten, die zur Verbesserung der Leistung genutzt werden können. Fehler- und Leistungsdaten können analysiert werden, um nach Mustern bei Systemausfällen oder Performance Einbrüchen zu suchen, die mit Ereignissen korreliert werden können.

Monitoring ist für die Aufrechterhaltung belastbarer und verfügbarer Systeme unerlässlich. Gerade in der Entwicklung autonomer Fahrfunktionen wird mit großen Datenmengen in sehr komplexen Algorithmen gearbeitet. Da ist es wichtig, dass das System zuverlässig und performant läuft.

Monitoring von Microservices in OpenShift

Monitoring ist ein Prozess der Berichterstattung, Sammlung und Speicherung von Daten. Es gibt einige gängige Kennzahlen im Monitoring für Microservices in Openshift, die man aufzeichnen kann. Dazu gehören:

  • Anwendungskennzahlen
    Zeichnet Kennzahlen auf, die innerhalb der Anwendung messbar sind. Das könnte beispielsweise Nutzer Registrierungen sein oder wie viele Fahrzeug Simulationen an einem Tag gemacht werden, um ein Beispiel aus den autonomen Fahrfunktionen aufzuzeigen.
  • Plattformkennzahlen
    Hier werden Kennzahlen der Infrastruktur gemessen, wie zum Beispiel die Ausführungszeit bestimmter Funktionen oder die Auslastung einer GPU für die Fahrzeug Simulation. Das sind auch Kennzahlen, bei denen Performance Probleme sichtbar gemacht werden können.
  • System Events
    Hier geht es grundlegend um betriebliche Änderungen oder Code-Bereitstellungen. Diese führen häufig auch zu Systemfehlern oder Ausfällen. Solche Änderungen können dann mit dem Systemverhalten korreliert werden, um zu sehen, ob es da Zusammenhänge gibt.

Doch wie sieht so eine Monitoring Lösung nun konkret aus. Im Folgenden wird exemplarisch die Monitoring Lösung Dynatrace aufgezeigt:

Microservice Dynatrace Monitoring eigene Darstellung
Abbildung 2: Microservice Dynatrace Monitoring eigene Darstellung

Der Dynatrace OneAgent Operator wird als Container auf der OpenShift Node ausgeführt. Dieser OneAgent „setzt“ sich in alle anderen Container und überwacht diese anschließend. Damit kann sehr schnell eine komplette OpenShift Node und die darin liegenden Microservices, überwacht werden.

Fazit

Der Einsatz von Microservices bringt enorme Vorteile, bei der Umsetzung großer Softwareprojekte, wie die Entwicklung autonomer Fahrfunktionen. Doch um ein solch großes Projekt dauerhaft stabil und performant zu betreiben, ist es wichtig, dass diese Services und Funktionen durch den Einsatz einer Monitoring Lösung wie z.B. Dynatrace überwacht werden. Danach kann das System möglichst performant betrieben und deutlich einfacher skaliert werden.


Hier geht es zu Teil 1 und 2 der Blogserie:

Teil 1: Mit der Cloud vielfältige Fahrszenarien lernen – Wie die Cloud bei großen Datenmengen in der Testausführung von autonomen Fahrzeugen unterstützt

Teil 2: Codequalität für autonome Fahralgorithmen gewährleisten


Weitere Artikel zu diesem Thema:

DevOps, Microservices & Big Data: Drei Top IT-Themen, die Automobilhersteller künftig beschäftigen werden

Skalierbare Microservices mit Docker und HAProxy

Wussten Sie schon, was Microservices sind?


Quellen:

https://www.all-electronics.de/evolutionaere-fahrzeug-architektur-devops/

https://thenewstack.io/the-hows-whys-and-whats-of-monitoring-microservices/

Dynatrace Logo:

https://dt-cdn.net/wp-content/uploads/2016/12/dynatrace_logo.png

OpenShift Logo:

https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/OpenShift-LogoType.svg/1200px-OpenShift-LogoType.svg.png

Die fünf ultimativen KI Trends für das nächste Jahrzehnt

Künstliche Intelligenz (KI) ist in aller Munde. Die einen sehen in KI neue, bislang ungeahnte Chancen, um Produkte noch schneller und genauer an die Bedürfnisse der Menschen anzupassen, die sie nutzen. Kurz: Künstliche Intelligenz hilft, Mehrwert zu schaffen und unser aller Leben besser zu machen.

KI als Bedrohung der menschlichen Souveränität?

Die dem entgegengesetzte Sichtweise betrachtet KI als Bedrohung der menschlichen Souveränität und Entscheidungshoheit. Wenn Algorithmen schon heute über weite Strecken das weltweite Finanz- und Wirtschaftsgeschehen steuern, wenn sie eingesetzt werden, um Bewerber auf ihre Eignung für den zu besetzenden Arbeitsplatz zu beurteilen, dann – so die Befürchtung – sind wir bald die Vollzugsgehilfen von Computerprogrammen. Und manche düster-dystopische Vision gipfelt in Szenarien wie diesem: Eine überintelligente KI kommt zu dem Schluss, dass die Menschen, wenn sie sich frei entfalten, zu viele falsche Entscheidungen treffen. Also steckt sie uns in eine Art Reservat mit beschränkten Freiheiten. Dort leben wir womöglich glücklich, zufrieden und in gut durchstrukturierten Bahnen, sind aber nicht frei.

Ich bin überzeugt, beide Sichtweisen haben ihre Berechtigung und sollten einbezogen werden, wenn es darum geht, die mit Künstlicher Intelligenz verbundenen Möglichkeiten auszuloten und die Entwicklung bewusst zu gestalten.

Womit wir schon beim Kern unseres Themas sind: der Notwendigkeit zu steuern, damit sich die Technologie nicht verselbständigt. Denn das wird sie, wenn es keine Kontrollmechanismen gibt. So wie heute jede Software gesetzeskonform sein muss, sonst macht sich derjenige strafbar, der sie entwickelt, so muss auch KI gesetzlichen Vorgaben entsprechen. Im Dieselskandal beispielsweise wurde genau dies umgangen. Die Frage ist also nicht, wie intelligent KI durch Lernen oder durch Programmierung wird, sondern wieviel Macht wir ihr geben.

Folgen der Technologie abschätzen

Künstliche Intelligenz ist wahrscheinlich die bislang wichtigste, weil folgenreichste „Erfindung“ des Menschen. Schon die Technologien des 20. Jahrhunderts und ihre Auswirkungen zeugen davon, dass vieles, was technologisch machbar oder profitabel ist, unsere Welt nicht zwingend besser und die Erde zu einem lebenswerteren Ort macht. Nicht von ungefähr gibt es seit den 1960er Jahren das Forschungsgebiet der Technikfolgenabschätzung.

Schon immer haben Erfindungen und neue Technologien die Lebensbedingungen der Menschen und damit auch ihr Verhalten verändert. Dies gilt umso mehr, je stärker die Neuerungen in die bestehenden Strukturen eingreifen, je höher ihre Reichweite ist und je schneller sie sich verbreiten. Man nehme als Beispiele dafür nur die Mobilität des modernen Menschen, den Massentourismus, die industrielle Lebensmittelproduktion oder das jederzeit und überall verfügbare Internet. Sie haben nicht nur zu massiven Veränderungen des menschlichen Verhaltens geführt, sie erschüttern im Moment den Planeten in seinen Grundfesten.

Künstliche Intelligenz hat das Potenzial, unser Zusammenleben, unsere wirtschaftliche und gesellschaftliche Realität weit stärker zu verändern als alle Technologien, die wir bislang kennen. Allein das ist Grund genug, dass wir ihre Entwicklung nicht dem Zufall, den Mechanismen der Märkte oder den Wenigen überlassen, die mit immensen finanziellen Mitteln Fakten schaffen können. Vielmehr bedarf KI zwingend der Steuerung durch die Gemeinschaft der Menschen, durch uns alle.

Was ist also zu tun?

Zunächst: Ich bin überzeugt, selbst hoch gesteckte Erwartungen an die Potenziale von KI sind gerechtfertigt – ob es um das autonome Fahren geht, um Diagnosen in der Medizin oder darum, leistungsfähigere, besser verkaufbare Produkte, einen höheren Automatisierungsgrad und effizientere Entscheidungsprozesse zu erreichen, auf welchem Gebiet auch immer. Das alles wird kommen. Und es ist geeignet, manches heute unlösbar scheinende Problem zu lösen und uns tatsächlich in einem positiven Sinne weiterzubringen. Überzogen scheinen mir allerdings die Erwartungen, was den Zeithorizont angeht. Auch wenn die Entwicklung rasant verläuft, in der Regel neigen wir dazu, die mentale und kognitive Leistungsfähigkeit der Menschen zu unter- und die der Maschine zu überschätzen.

Anders ausgedrückt: Dass „die Maschine“ über mehr praktische Intelligenz verfügt und damit in jeder Situation bessere Entscheidungen trifft als der Mensch, ist aus meiner Sicht in den nächsten 50 Jahren nicht zu erwarten. Dafür gibt es in unserem Alltag zu viele unbekannte Situationen, in denen sich der Mensch vor allem durch sein Allgemeinwissen über die Welt besser zurechtfindet. Dennoch: Was in den kommenden Jahren und Jahrzehnten in Sachen Künstlicher Intelligenz geschieht, hat aber längst seinen Anfang genommen. Es entwickelt sich rasant – und bislang relativ unkontrolliert. Höchste Zeit also, genau hinzusehen und bewusst zu steuern, in welche Richtung wir gehen wollen.

Bewusst handeln – fünf Trends

Der aus meiner Sicht alles überragende KI-Trend des kommenden Jahrzehnts heißt: öffentliches Bewusstsein entwickeln. Für die möglichen Entwicklungen der Künstlichen Intelligenz, für ihre technologischen, wirtschaftlichen und gesellschaftlichen Chancen und ihre realistische Einschätzung. Und für die Risiken. Dabei gilt es besonderes Augenmerk auf folgende Gebiete zu richten.

1.Maschinen sind wie Kinder. Computer, die mit selbstlernenden Algorithmen, also Künstlicher Intelligenz ausgestattet sind, verhalten sich im Prinzip wie Kinder. Basis ihres Lernens ist das, womit sie „gefüttert“ werden. Wie Kinder das Verhalten ihrer Eltern nachahmen, erkennt und interpretiert die Maschine auf Basis ihrer Vorgaben Muster und entwickelt die diesen Mustern folgenden Erscheinungsformen logisch weiter. Sie lernt Neues, aber immer vor dem Hintergrund dessen, was sie ursprünglich erfahren hat. Wir werden uns also der Frage stellen müssen: Wollen wir die Ergebnisse dieses Lernens dem Zufall überlassen? Oder sollten wir besser verbindliche Leitlinien für die Lernvorgaben und die Beurteilung der Lernergebnisse entwickeln? Und dann dafür sorgen, dass die Einhaltung dieser Leitlinien kontrollier- beziehungsweise nachvollziehbar ist? Dabei sollten wir uns vor Augen halten: Lernen die Maschinen in Zukunft unkontrolliert, ist die Wahrscheinlichkeit hoch, dass sie sich vorwiegend entlang der Gewinnmaximierung ihres Eigentümers entwickeln. Das kann nicht das Interesse der Allgemeinheit sein.

2.Programmierer werden zu Verhaltensforschern. Wenn sich künstlich intelligente Maschinen verhalten wie Kinder, ist die logische Folgerung: Die Entwickler, die mit diesen Maschinen arbeiten, sollten die noch zu entwickelnden Leitlinien kennen und umsetzen. Sie sollten abschätzen können, was die Maschine auf lange Sicht aus ihrem „Futter“ macht. Daraus ergeben sich neue Anforderungen an die IT-Ausbildung: Reines Programmier-Knowhow allein reicht nicht mehr aus. Vielmehr braucht ein guter KI-Spezialist künftig eine Art ethische Grundausbildung. Er muss lernen, seine Arbeit bewusst am Gemeinwohl und an den ethischen Grundwerten der Menschheit auszurichten. Darüber hinaus braucht er umfassendes technisches Wissen rund um die fünf großen Schulen des Maschinenlernens, wie sie der renommierte Informatiker Pedro Domingos definiert hat:
Konnektion. Diese Schule orientiert sich an dem Funktionsprinzip des menschlichen Gehirns. Das Ergebnis sind neuronale Netzwerke, deren Neuronen Synapsen bilden oder verändern.
Symbolik. Sie hat ihre Wurzeln in der Logik und schließt von bekannten Fakten auf unbekannte Prämissen. Beispiel: „Ich bin ein Mensch. Ich bin sterblich. Daraus folgt: Menschen können sterben.“
Evolution. Das mächtigste uns bekannte Lernprinzip. Diese Schule setzt auf Programme, die die natürliche Selektion der Evolution simulieren.
Bayes´ Schule. Lernen bedeutet hier, Hypothesen zu postulieren und sie an neue Beobachtungen anzupassen.
Analogie. Jede neue Beobachtung wird der Kategorie zugeordnet, die die meisten ähnlichen beziehungsweise ähnlichsten Fälle enthält.

3.Die Kulturrevolution kommt. Keine bislang vom Menschen geschaffene Technologie hat auch nur annähernd eine solche Bandbreite an neuen Möglichkeiten eröffnet wie die KI – im Positiven wie im Negativen. Hinzu kommt, dass sich durch das Internet alles mit Lichtgeschwindigkeit ausbreitet. Nicht zuletzt deshalb wird die KI-Entwicklung schwer zu kontrollieren sein und auf vielen Gebieten Fortschritte machen, die evolutionären Sprüngen gleichkommen. Entscheidend ist hier: Damit das am Horizont aufdämmernde KI-basierte System überhaupt auf Dauer funktioniert, muss es letztlich dem Menschen dienen. Seit Beginn der Industrialisierung hat die Maschine den Takt und die Richtung vorgegeben. Mit KI ist es möglich, dieses System wieder am Menschen auszurichten. Dazu allerdings müssen wir unser über Jahrtausende eingeübtes Denken in hierarchischen Strukturen und getrennten Untersystemen überwinden. Nur dann werden wir in der Lage sein, die von uns geschaffenen Technologien der Digitalisierung und Künstlichen Intelligenz zu beherrschen. Falls nicht, werden die Technologien uns beherrschen. Was wir deshalb brauchen ist eine offene, an tatsächlich gelebten Werten orientierte Kultur, eine Fehlerkultur, die sich einzig an der Suche nach der Wahrheit beziehungsweise dem bestmöglichen Ergebnis für die Allgemeinheit orientiert. Und wir brauchen Transparenz, denn damit sind wir am ehesten in der Lage, die Ausbreitung von Anwendungen zu verhindern, die Schaden anrichten. Mit Transparenz wäre der Dieselskandal schlicht nicht möglich gewesen. Dafür aber brauchen wir neue Organisationsstrukturen, die eine Entwicklung in Richtung Fehlerkultur und Transparenz unterstützen. Sie gilt es zu entwickeln.

4.Der Arbeitsmarkt wird umgekrempelt. Wenn immer mehr Maschinen zur Wertschöpfung herangezogen werden, hat das Auswirkungen auf den Arbeitsmarkt. Zu den ersten wird gehören, dass klassische Berufsbilder aussterben oder deutlich weniger Jobchancen bieten – zum Beispiel KassiererInnen im Einzelhandel oder BeraterInnen im Finanzsektor. Was den Wegfall von Arbeitsplätzen angeht, zeichnet das Bundesarbeitsministerium ein eher optimistisches Bild.[1] Demnach sollen durch den KI-Strukturwandel in den kommenden fünf Jahren 1,3 Millionen Arbeitsplätze in Deutschland verloren gehen, auf der anderen Seite aber 2,1 Millionen neue Stellen entstehen. Bis 2035 rechnen die Experten damit, dass rund vier Millionen Arbeitsplätze wegfallen und etwa 3,3 Millionen neue Jobs hinzukommen. Allerdings nur, wenn sich viele Beschäftige neue Qualifikationen aneignen. Dafür sind Umschulungen und Weiterbildungen erforderlich. Ob diese Einschätzung realistisch ist, sei dahingestellt. Durchaus denkbar ist auch, dass viele Millionen von Arbeitsplätzen ersatzlos wegfallen. Auch für solche Szenarien werden wir in den kommenden Jahren Pläne entwickeln müssen. Wird dann ein bedingungsloses Grundeinkommen nötig, um den Lebensunterhalt der Bürger zu sichern – und ihren Konsum als tragende Säule unserer Wirtschaft?

5.Gemeinwohl-Ökonomie oder wachsende Ungleichheit. Sicher ist: Künstliche Intelligenz wird immer neue Möglichkeiten der Gewinnmaximierung schaffen. Und Maschinen werden einen immer größeren Anteil an der allgemeinen Wertschöpfung haben. Diese Wertschöpfung muss einen angemessenen Beitrag für die Allgemeinheit leisten. Sonst werden die Mechanismen, nach denen unsere Marktwirtschaft bislang funktioniert, dafür sorgen, dass das Geld, das sie erwirtschaften, vor allem jenen zugutekommt, die diese Maschinen besitzen beziehungsweise betreiben. Überlassen wir die Entwicklung unkontrolliert diesen Mechanismen, wird es womöglich in wenigen Jahrzehnten einige zehntausend Superreiche auf der Erde geben und eine Milliardenarmee von Armen, deren Konsum durch Subventionen aufrechterhalten wird. Welche psychosozialen Folgen das nach sich zieht, vermag niemand zu sagen. Die Alternative: Wir schaffen eine Gemeinwohl-Ökonomie, ein System, in dem die Wertschöpfung mehr als jetzt der Allgemeinheit zugutekommt. Denn eins ist klar: Unser Wirtschaftssystem lebt vom Konsum. Kooperation ist deshalb im Interesse aller, ob sie viel oder wenig besitzen. Optimal wäre es, wenn die Reichen beziehungsweise die Besitzer der KI-Supermaschinen erkennen würden, dass sie die anderen Menschen brauchen, um das System aufrecht zu erhalten. Und entsprechend handeln, nach dem Motto: Leben und leben lassen.

 

Fazit

Wenn es uns gelingt gute Antworten auf die oben skizzierten Fragen zu finden, wenn wir in der Lage sind, der ethischen Dimension von KI gerecht zu werden und ihre Entwicklung entsprechend zu steuern, dann – davon bin ich fest überzeugt – kann sich Künstliche Intelligenz zum Segen für die Menschheit entwickeln. Entscheidend wird sein: Wir müssen jetzt denken, den öffentlichen Diskurs starten und schnell handeln. Sonst ist die Büchse der Pandora womöglich offen, ehe wir mit ihrem Inhalt umzugehen wissen.

Übrigens: Die ersten Unternehmen veröffentlichen inzwischen Algorithmen, die sie für ihre KI-Projekte entwickeln. So hat zum Beispiel der Automobilhersteller BMW einige seiner für Machine Learning geschaffenen Algorithmen vor kurzem als Open Source auf Github veröffentlicht [2] und sie damit für die Öffentlichkeit verfügbar und transparent gemacht. Solche Entscheidungen gehen definitiv in die richtige Richtung.


Mehr zu dem Thema Künstliche Intelligenz und Data Driven gibt es hier

 

Du möchtest an spannenden KI Projekten mitarbeiten? Dann bewirb Dich jetzt bei uns als Consultant oder Software Entwickler.


[1] https://www.sueddeutsche.de/wirtschaft/ki-observatorium-tuev-arbeitsministerium-1.4676937

[2] https://www.golem.de/news/deep-learning-bmw-legt-eigene-ki-algorithmen-offen-1912-145576.html

Codequalität für autonome Fahralgorithmen gewährleisten

Die Entwicklung autonomer Fahrzeuge ist ein Wettrennen, daher müssen schnellstmöglich stabile Algorithmen für das autonome Fahren entwickelt werden. Dafür müssen Bug Fixes und neue Features so schnell wie möglich implementiert werden, aber ohne die Qualität aus den Augen zu verlieren. Wie kann das gerade in solch großen und komplexen Projekten gewährleistet werden? Die Antwort findet sich in einer skalierbaren „Continuous Integration“ und Continuous Delivery“ Pipeline. Hier erfahren Sie wie der Aufbau einer skalierfähigen Continuous Integration und Continuous Delivery Pipeline in OpenShift funktionieren kann.

Continuous Integration und Delivery – was ist das?

Continuous Integration oder kurz CI sorgt dafür, dass neu entwickelter Code zusammengeführt, getestet und dann in die Gesamtcodebasis eingefügt wird. CI soll die Zusammenarbeit der Entwickler vereinfachen und dabei helfen Fehler frühzeitig zu erkennen.

continous integration

Abbildung 1: So funktioniert Continuous Integration [1]

Mehrere Entwickler arbeiten an neuen Features oder Bug Fixes. Sobald einer von ihnen sein Arbeitspaket fertiggestellt hat, wird der Code committet und genau hier setzt CI dann ein. Sobald der Code gepusht wird, überprüft CI ob der neue Code sich nahtlos in die schon vorhandene Codebasis einfügen lässt. Anschließend startet ein automatischer Build, der dann aufzeigt ob der Code fehlerfrei gebaut werden kann oder ob es fehlschlägt. Schlägt der Build fehl, muss der Entwickler den Bug finden und beheben und den Prozess erneut starten. War der Build fehlerfrei, wird getestet und das entsprechende Ergebnis reportet.

Continuous Delivery oder kurz CD sorgt dafür, dass eine aktuelle Version der Software verfügbar gemacht wird. CD erweitert das CI Vorgehen um den Punkt „Release“ (Continuous Integration + Release = Continuous Delivery). Dabei wird die neue Codebasis auf eine Produktivumgebung implementiert, sodass die neuen Features dort getestet werden können.

Umsetzung mit OpenShift

CI/CD ist einer der beliebtesten Anwendungsfälle für die OpenShift Container Plattform. OpenShift stellt Container für den Bau von Continuous Delivery-Pipelines zur Verfügung. Dies ermöglicht es unter anderem Jenkins, viele Aufträge parallel auszuführen und beseitigt die Wartezeit für die Ausführung von Builds in großen Projekten. OpenShift bietet eine End-to-End-Lösung für den Aufbau kompletter Bereitstellungspipelines und ermöglicht die notwendige Automatisierung, die für die Verwaltung von Code- und Konfigurationsänderungen über die Pipeline erforderlich ist.

Dieses Beispiel zeigt eine CI/CD-Infrastruktur auf OpenShift:

Beispielhafter Aufbau einer CI oder CD-Infrastruktur auf OpenShift

Abbildung 2: Beispielhafter Aufbau einer CI/CD-Infrastruktur auf OpenShift (eigene Darstellung)

Einsatz in der Fahralgorithmen Entwicklung

Wenn ein neues Feature für den Algorithmus entwickelt wird, beispielsweise eine Erkennung von Ampeln, dann wird dieses Feature in einzelne Module aufgeteilt. Dies wird gemacht, da ein solches Feature meist zu groß ist, um es mit nur einem Team zu entwickeln oder es zu zeitintensiv ist, um es in einem Sprint fertigzustellen. Jedes dieser Module wird daher getrennt (pro Team/Sprint) entwickelt und jedes durchläuft einen CI Prozess. Dadurch durchläuft jede Teilentwicklung Unit- und Integrationstests, wodurch die Codequalität jedes Moduls und dadurch auch jedes Features steigt.

CI oder CD Prozess anhand der Entwicklung eines neuen Fahralgorithmen Features

Abbildung 3: CI/CD Prozess anhand der Entwicklung eines neuen Fahralgorithmen Features (eigene Darstellung)

Ein CD erfolgt meist zu einem Sprint Ende oder pro Feature. Zum Sprint Ende werden dann mehrere neu entwickelte Features auf die E2E Umgebung und schlussendlich auf PROD deployed (siehe Abbildung 4). Bei der zweiten Herangehensweise wird ein Feature, sobald es fertig ist, deployed (siehe Abbildung 3).

Continous Delivery bei der Entwicklung autonomer Fahrfunktionen
Abbildung 4: Continous Delivery bei der Entwicklung autonomer Fahrfunktionen (eigene Darstellung)

Fazit: Was bringen CI und CD, auch im Umfeld autonomes Fahren?

Die Umsetzung einer CI und CD bringt einige Vorteile mit sich:

  • Da neue Features und Bug Fixes schneller auf der E2E beziehungsweise auf Produktivumgebung sind, kann früher mit Testfahrzeugen unter realen Bedingungen getestet und das Feedback der Kunden eingeholt werden.
  • Die gesamte Entwicklungs- und Testzeit neuer Features ist schneller, was eine übergreifend schnellere Entwicklung des Fahralgorithmus bedeutet. Das wiederrum kann einen Wettbewerbsvorteil in der Automobilbranche bringen.
  • Bugs werden früher erkannt und können besser identifiziert werden, da man nach jedem Commit weiß ob der Build geklappt hat oder nicht.
  • Daraus folgt eine übergreifend höhere Code- und Softwarequalität, was gerade für autonome Fahrfunktionen besonders wichtig ist.

Hier geht es zu Teil 1 und 3 der Blogserie:

Teil 1: Mit der Cloud vielfältige Fahrszenarien lernen – Wie die Cloud bei großen Datenmengen in der Testausführung von autonomen Fahrzeugen unterstützt

Teil 3: Application Performance Monitoring (APM) von Microservices und FaaS in OpenShift


Quellen:

[1] https://cloud.google.com/solutions/continuous-integration/images/hero-banner.png

https://blog.openshift.com/cicd-with-openshift/

Git Logo: https://git-scm.com/images/logos/2color-lightbg@2x.png

Jenkins Logo: https://miro.medium.com/max/2100/1*LOFbTP2SxXcFpM_qTsUSuw.png

SonarQube Logo: https://www.sonarqube.org/images/logos/sonarqube-dark.png

OpenShift Logo: https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/OpenShift-LogoType.svg/1200px-OpenShift-LogoType.svg.png

Den Nutzen von Big Data auch ohne Big Data Technologien erreichen

Vor allem in mittelständischen Unternehmen gilt Big Data mitunter als eine Art „eierlegende Wollmilchsau“. Die Einschätzung “Heute macht man das halt mit BigData, Spark, SMACK-Stack, Hortonworks, in der Cloud mit AWS” führt häufig zu sehr komplexen Lösungen mit hohen Anforderungen an die Hardware. Ein Aufwand, der in vielen Fällen aber gar nicht erforderlich wäre oder gar ungeeignete Lösungen bringt. Zumal die Kosten oft den Nutzen deutlich übersteigen. Vor diesem Hintergrund gerieten klassische Technologien wie relationale Datenbanken durch neue Technologien, Produkte und Paradigmen im Big Data Umfeld in den Hintergrund.

Davon ausgehend beleuchten wir nachfolgend klassische Technologien, die in der Literatur im Big Data Umfeld als nicht leistungsfähig eingestuft werden, hinsichtlich Skalierungsmöglichkeiten. Ziel ist es zu validieren, wie zum Beispiel auch mit relationalen Datenbanken der Nutzen von Big Data Instrumenten erreicht werden kann und ob es eindeutige Indikatoren dafür gibt, ab wann man tatsächlich sinnvollerweise auf Big Data Technologien setzen sollte.

Es muss nicht immer Big Data sein

Grundsätzlich gilt: Mit der Einführung von Big Data Technologien muss auch die IT-Infrastruktur angepasst werden, um die Anwendungen auch optimal betreiben zu können.

Eine solche Anpassung an Big Data Technologie ist vor allem dann notwendig, wenn es darum geht, semistrukturierte oder unstrukturierte Daten zu analysieren. Klassische Technologien wie relationale Datenbanken sind hier durch ihre technischen Restriktionen weniger geeignet, denn mit diesen kann nur auf strukturierten Daten direkt gearbeitet werden.

Liegen allerdings bereits strukturierte Daten vor, muss es nicht zwingend eine Big Data Technologie sein. Hier sollte man zunächst anhand des Anwendungsfalls bewerten, ob eine Optimierung der bestehenden Technologie oder eine Anpassung der Fragestellung ausreichend ist. Möglicherweise genügt eine Ja/Nein Entscheidung anstatt der exakten Berechnung mit feingranularer Wahrscheinlichkeitsrechnung.

3-V Model als Indikator für Big Data

Eine eindeutige Einstufung, ab wann Big Data Technologien eingesetzt werden sollten, existiert nicht. Allerdings ist es anhand des sogenannten 3-V-Modells möglich zu erkennen, ob der Einsatz von Big Data Technologien hilfreich wäre.

Die Metriken Datenvolumen, -geschwindigkeit und -vielfalt

(Quelle: https://gi.de/informatiklexikon/big-data/)

Die Metriken Datenvolumen, -geschwindigkeit und -vielfalt charakterisieren die Anforderungen für einen Anwendungsfall. Je nach Ausprägung der drei Eigenschaften lässt sich abschätzen, ob moderne Technologien eingesetzt werden sollten.

Liegen in mehreren Datenbereichen die höchsten beziehungsweise zweithöchsten Anforderungen vor (äußerster und zweiter Ring von außen), ist der Einsatz moderner Technologien bzw. Big Data sinnvoll. Stellen hingegen nur einzelne Anforderungen in einem Bereich hohe Anforderungen (zum Beispiel „besonders schnell, aber kein hohes Datenvolumen“, oder „sehr hohes Datenvolumen per Batchjobs“), muss jeder Anwendungsfall individuell beurteilt werden, ob sich Big Data Technologien anbieten oder ob es bessert ist, klassische Technologien zu optimieren.

Optimierungsmöglichkeiten von klassischen Technologien

Best Practices um Skalierungspotenziale relationaler Datenbanken auszuschöpfen:

  • Grundsätzlich sind die Daten in relationalen Systemen unsortiert, aufgrund dessen kann das Anlegen von Indizes zu schnelleren Zugriffszeiten führen.
  • Das Verlagern von Teilrelationen in den Arbeitsspeicher kann zur schnelleren Verarbeitung der Daten führen, da die Daten nicht mehr zwischen Arbeitsspeicher und Festplattenspeicher übertragen werden.
  • Das Erstellen von Partitionen und Replikationen führt zu parallelen oder einzelnen Zugriffen auf verschiedene Teilrelationen einer Datenbank. Dadurch ist eine parallele Verarbeitung gewährleistet, oder es werden nur relevante Daten einer Relation zur Analyse verwendet.
  • Das Einrichten einer Master-Slave-Architektur orientiert sich am verteilten Datenmanagement, das auch Hadoop verwendet. Dadurch können Datensätze auf unterschiedlichen Servern verteilt und parallele Analysen durchgeführt werden, indem die Last einer Anfrage aufgeteilt wird.
  • Für die „Vorverarbeitung“ der Daten und zur späteren Präsentation der Ergebnisse lassen sich materialisierte Sichten verwenden, um Zeit zu sparen.

 

Fazit:

Big Data Technologien können in vielen Situationen eine Lösung bieten, die ohne diese nicht möglich gewesen wäre. Die Entscheidung zum Einsatz solcher Technologien muss aber gut überlegt sein, denn der Einsatz ist kostspielig und aufwändig. Das 3-V-Modell kann helfen zu entscheiden, ob nicht auch schlankere und damit günstigere Ansätze ebenso zum Ziel führen können.

Co-Autor Bartu Uysal

 

Mehr zu Datenintegration gibt’s hier

It’s #FrontendFriday – Klassen / Modul-Diagramme in Frontend-Projekten

Hallo #FrontendFriday-Leser/in,

heute geht es um Tools, die Klassendiagramme aus Frontend-Projekten (speziell TypeScript, Angular) generieren.

Zu Beginn eines Projekt wird eine Architektur der Anwendung erstellt (die sich im Laufe des Projekts weiterentwickelt). Während des Projekts stellt sich die Frage, ob die geplante Soll-Architektur mit der tatsächlich umgesetzten Architektur übereinstimmt. Hierzu können unter anderem Klassendiagramme helfen, die automatisch aus dem entwickelten Code generiert werden.

Mehr