Scrum

Crossfunktionale Teams

Ein Baustein bei der agilen Entwicklung sind Crossfunktionales Team und darum soll es hier gehen. Die Gedenken die nun folgen, stammen aus dem Magazin ix 11-2018. Sie treffen aus meiner Sicht den Kern und stimmen mit meinen Erfahrungen überein. [1]

Weiterlesen

Datenbank Clients

Früher hatte man eine Datenbank und benötigte nur einen Client um diese zu verwalten. Für den Microsoft SQL Server wäre das zum Beispiel das Microsoft SQL Server Management Studio. Nun werden die Daten immer mehr und die Anforderungen immer spezieller, sodass es für bestimme Funktionen spezielle Datenbanken gibt. Auch hierzu ein Beispiel. Um eine Autovervollständigung in einem Textfeld zu haben, verwenden einige Webshops Apache Solr oder Elasticsearch. Schnell kommt man an den Punkt, wo man sich einen ähnlichen Clients wie das MSSQL Server Management Studio oder die MySQL Workbenkch wünscht. Ohne viel Aufwand lassen sich damit SQL Abfragen schreiben oder wie schon erwähnt, die Datenbank verwalten. In den meisten Fällen, gibt es zu jeder Datenbank einen Client, sei es als Desktop oder Browser-Applikation. Der Komfort (Bedienbarkeit, Übersichtlichkeit, Keyboard Shortcuts, usw.) ist aber bei jedem der Clients unterschiedlich. Es gibt Multi-Datenbank-Clients, die eine Oberfläche für mehrere Datenbanken anbieten. Hier eine Übersicht.

Weiterlesen

Apache Ambari

Apache Ambari ist ein Tool zur Provisionierung vieler Pakete aus der Big-Data Welt. Viele dieser Pakete, wie z.B. Hadoop oder Cassandra, lassen sich einfach per Hand installieren und ein Tool wie Ambari ist nicht zwingend notwendig.

Bei größeren Projekten wo zum Beispiel Hadoop, Hive, Zeppelin, Kafka, Storm und Flink zum Einsatz kommen, wird es schwierig die Versionsabhängigkeiten zu verwalten. Bei diesem Problem kann Apache Ambari Abhilfe schaffen.

 

Puppet MySQL Module

Puppet ist eine angenehme Art Systeme zu konfigurieren. Ein MySQL Server lässt sich damit einfach aufsetzen. Für eine einmalige Installation von MySQL ist der Weg über Puppet zu viel Aufwand. Hat man jedoch viele Datenbankinstallationen zu verwalten oder möchte man unterschiedliche Konfigurationen testen, dann ist Puppet ein gutes Werkzeug. Es gibt einige Puppet Module die wir uns nun näher anschauen. Weiterlesen

MySQL Installation mit Puppet

Ein einfacher Weg MySQL zu installieren ist mit Puppet. Die Argumente für und wider Puppet lassen wir an dieser Stelle beiseite. In einem anderen Beitrag werden wir mehrere MySQL Instanzen auf unterschiedlichen Ports auf einem Server installieren, um zum Beispiel die MySQL Replikation zu verstehen. Puppet bietet einen schönen Ansatz den Überblick zu behalten. Hier einige Beispiele mit Ubuntu 14.04 und Puppet 3.4. Weiterlesen

MySQL Fabric

Oracle veröffentlichte im Mai 2014 MySQL Fabric . MySQL Fabric ist ein Framework das ein MySQL Server um zwei Funktionen erweitert: High Availability (HA) und Sharding. High Availability (HA) wurde bereits teilweise durch MySQL Replication oder durch MySQL Cluster erreicht . Sharding in Form von vertical partitioning existiert bereits seit MySQL 5.1 . MySQL Cluster (MySQL NDB Cluster) versucht durch die in-memory storage engine NDB das horizontal partitioning, jedoch mit der Einschränkung dass alle Daten in den RAM passen müssen. Betreibt man zum Beispiel 4 x MySQL Server mit insgesamt 10 TB (Daten + Index), dann benötigt man laut der Formel in den MySQL FAQ’s ohne Replikation 172 Server mit 64GB RAM. Neben dieser Entschränkung, sind der höhere Konfigurationsaufwand und das neue Schema-Design Hürden, warum MySQL Cluster keiner großen Beliebtheit findet . In vielen Fällen ist es dann einfacher die Logik der horizontalen Partitionierung in die Applikation zu implementieren. MySQL Fabric verwendet einen anderen Sharding-Ansatz. Schauen wir uns das genauer an.

Weiterlesen

Test Data Generator

Bei Performancetests von Datenbanken, ist das Ergebnis nicht nur abhängig von dem Schema und den Abfragen, sondern auch von den Daten. Deshalb ist es sinnvoll sich einen Moment Gedanken darüber zu machen, wie diese im Produktivbetrieb aussehen werden, um dann darauf die Performancetests durchzuführen. Im ersten Schritt wird untersucht, welche Eigenschaften der Daten besonders für die Performance eine Rolle spielen, um dann im zweiten Schritt ein Tool zur Generierung von Testdaten zu finden, welches diese Anforderungen erfüllt.

Weiterlesen

MySQL Caching

Durch Screenshots wird eine langsame Abfrage festhalten und per Mail an einen herangetragen. Im Slow-Query Log ist die Abfrage mit mehr als 5 Sekunden zu finden, aber trotz SQL_NO_CACHE lässt sich die lange Laufzeit nicht nachstellen. Hier wird das Caching von MySQL beschrieben, um bestimmte Situationen zu verstehen und zu provozieren.

Weiterlesen