Interview
17.02.2020, 00:00 Uhr
"Modellierung hat etwas sehr Spielerisches"
Was hat Rot-Grün-Blindheit mit der Faszination für Datenbanken zu tun? Developer Week Track Chair Andrea Held erklärt es im Interview.
Andrea Held hegt eine nicht alltägliche Begeisterung für ein eher sprödes Thema: Sie beschäftigt sich gern mit Datenbanken. Die IT-Architektin hat schon mehrere Bücher zum Thema geschrieben und wird überall dorthin gerufen, wo eine gequälte Datenbank dem Burnout nahe ist.
In deiner Vita steht, dass du dich schwerpunktmäßig mit hochverfügbaren Datenbanksystemen beschäftigst. Was versteht man genau darunter?
Andrea Held: Anwendungen, die höchste Verfügbarkeit ihrer Services erfordern, benötigen im gesamten Stack Redundanz und Robustheit. Dazu zählen beispielsweise kritische Applikationen in der Flugsicherung, im Bahnverkehr, in der Stromversorgung aber auch Anwendungen bei Banken oder Dienstleistern. Wenn man im Supermarkt an der Kasse steht und mit der Karte nicht bezahlen kann, ist das zwar nicht so schlimm, wie wenn im Flugverkehr auf Sicht geflogen werden muss. Es ist dennoch nicht gerade schön.
Andrea Held
Andrea ist IT-Architektin mit dem Schwerpunkt hochverfügbare Datenbanksysteme und Autorin von Fachartikeln und Büchern. Zuvor studierte sie an der Johann Wolfgang Goethe Universität in Frankfurt. Seit 1994 arbeitet sie in der IT, seit 1997 mit dem Schwerpunkt Datenbanken. Ihre Artikel werden von Fachzeitschriften wie iX, Linux Magazin, XML Magazin und „Der Entwickler“ publiziert. Seit 2004 hat sie Bücher bei Addison-Wesley und Hanser veröffentlicht, zum Beispiel „Oracle 10g Hochverfügbarkeit“ und „Oracle Database 11g Neue Features“ sowie „Der Oracle DBA – Handbuch für die Administration“. Sie ist Geschäftsführerin der Held Informatik – Gesellschaft für datenbankgestützte Informationssysteme mbH. Aktuell arbeitet sie hauptberuflich als IT-Architektin in Großprojekten und nebenbei an ihrem nächsten Buch, das wieder im Hanser-Verlag erscheinen wird.
Bei solchen Anwendungen ist mein Schwerpunkt das Datenbank-Backend. Hier gibt es eine Reihe von Architekturen, um Hochverfügbarkeit und Ausfallsicherheit zu gewährleisten: Active/Active- und Active/Passive-Cluster, logische und physische Standby-Datenbanken mit und ohne Geo-Redundanz, Replikation und so weiter und so fort. Nicht jede Technologie ist bei jedem Anwendungsfall gleich geeignet.
Dies zu bewerten und Entwicklungsteams zu beraten, eine Architektur zu entwerfen und technisch zu implementieren, sowie eine solche Umgebung zu betreiben, das ist mein Schwerpunkt. Mein zweiter Schwerpunkt ist Troubleshooting und Performance-Optimierung.
Datenbanken gelten nicht unbedingt als besonders sexy. Wie bist du zu so einer seltenen Vorliebe gekommen?
Held: Hast du mal „Herr Lehmann“ von Sven Regener gelesen? Da gibt es eine Figur mit dem Namen Kristall-Rainer [1]. Die Angebetete des Protagonisten macht sich mit ihm davon. Das ist schon übel. Das i-Tüpfelchen ist aber: Kristall-Rainer ist Informatiker. Herr Lehmann konnte sich nichts Langweiligeres, Öderes und Unglamouröseres vorstellen. Steht wörtlich im Buch. Woran das liegt? Ich denke, Herr Lehmann – und vermutlich auch der Autor Sven Regener – kann sich schlicht nicht vorstellen, was an Informatik spannend oder schön sein könnte.
Es gibt Menschen, die bewundern die Schönheit einer mathematischen Formel. Ein Kollege und ich bestaunten einmal den Code eines weiteren Kollegen. Seine Lösung war so elegant, einfach unglaublich. Wenn man das nicht erkennen kann, erscheint es einem fade. Es ist, als würde ich einen Rot-Grün-Blinden auf die Schönheit einer roten Tulpe auf einer grünen Wiese aufmerksam machen wollen.
Modellierung, die Überführung realer Welt auf eine andere Abstraktionsebene, ist für mich wie das Planen und Bauen einer Modelleisenbahn. Es hat etwas sehr Spielerisches. Datenmodellierung war als Anforderung aus der Entwicklung heraus mein Einstieg. Von dort bin ich rasch zu komplexen, nichtfunktionalen Anforderungen gekommen: Verfügbarkeit, Performance und Durchsatz, Stabilität und Robustheit. Diese Anforderungen betreffen den gesamten Stack, und ein wesentlicher Teil – wenn nicht sogar das Herz – der meisten Anwendungen sind Datenbanken im Backend.
Die Umsetzung dieser Anforderungen wiederum hat ebenfalls etwas Spielerisches. Du drehst an der richtigen Schraube und wups funktioniert es. Kurz: Eigentlich spiele ich den ganzen Tag und bekomme am Ende des Monats Geld dafür.
Generell habe ich den Eindruck, für viele ist die Datenbank im Backend erst mal nur etwas, in das sie ihre Daten irgendwie reinwerfen und später irgendwie wieder herausholen wollen. Die meisten Leute können kaum mehr als ein Insert, Update, Delete und Select, vielleicht noch eine Tabelle erstellen. Das war es dann auch schon.
Dementsprechend häufig kommt es dann vor, dass irgendwann recht spät im Entwicklungsprozess oder im Produktivbetrieb Probleme mit der Performance aufkommen. Das ist dann der Moment, in dem Leute wie ich dafür sorgen, dass es wieder rund läuft. Eigentlich schade, weil man eine Menge Zeit, Geld und Stress sparen könnte, wenn man frühzeitig vernünftig planen würde. Ich empfehle daher jedem Projekt, einen Entwicklungs-Datenbankadministrator (DBA) mit ins Team zu holen. In den meisten Projekten genügt es, eine kompetente Person für einen Tag pro Woche im Projekt zu haben, die dann Code-Reviews, Performance-Auswertungen und die Datenbankarchitektur-Planung macht.
Du bist im Ad-Board der Developer Week für den Track Datenbanken zuständig. Worauf wirst du bei der Auswahl der Sessions für den Track besonders achten?
Held: Mir sind Themen wichtig, die typische Anforderungen und Probleme rund um Datenbanken in der Softwareentwicklung ansprechen. Dazu zählen nicht nur Sessions, die relationale Datenbanken ansprechen, sondern auch neue Technologien wie NoSQL, NewSQL und Streaming. Je nach Anforderung kann mal das eine, mal das andere die bessere Wahl sein. Weitere wichtige Themen sind Troubleshooting und Performance Tuning.
Mehrere deiner Bücher behandeln die Datenbanksysteme von Oracle. Sind diese auch eine besondere Vorliebe von dir oder lächelst du auch mal eine MySQL-, PostgreSQL-Datenbank oder einen SQL Server an?
Held: Ich lächele grundsätzlich nie. Nee, Spaß beiseite. Nicht Oracle, sondern SQL Server war ursprünglich mal mein Einstieg in den Schwerpunkt Datenbanken. Damals gab es einige wenige große Hersteller. Heute haben wir einen Zoo an Datenbanksystemen mit unterschiedlichsten Ansätzen, die jeweils ihre Vor- und Nachteile mit sich bringen.
Neben MySQL, MariaDB und PostgreSQL gibt es etliche weitere wie CouchDB, MongoDB, Redis oder Exasol, aber auch ganz neue Ansätze, wie etwa statt mit einer Datenbank als Persistenzschicht mit Streaming zu arbeiten, beispielsweise mit Apache Kafka oder Flink. Durch die Verbreitung von Microservices setzen Projektteams inzwischen die für die jeweilige Anforderung ideale Lösung ein. Das hat viele Vorteile, aber auch den Nachteil, dass im Betrieb eine enorme Vielfalt betreut werden muss. Ob Replikation, Standby-Datenbanken, Datenbank-Cluster, Performance Tuning oder Troubleshooting: Einige Konzepte sind ähnlich. Im Oracle-Thema stecke ich allerdings tiefer als in allen anderen.
Du arbeitest gerade an einem neuen Buch. Darf man erfahren, was das Thema sein wird?
Held: Wir gehen gerade in die dritte Auflage des Buchs „Der Oracle DBA“. Themen sind alle Aspekte rund um die Administration von Oracle-Datenbanken, angefangen von der Architektur inklusive aller Komponenten, Installation und Patchen auf on-premises über Cloud-Betrieb, Security, Migrationen, Troubleshooting. Da sich seit der letzten Auflage einiges getan hat, muss das Buch aus dem Hanser-Verlag komplett überarbeitet werden.
NoSQL-Datenbanken waren ja die Shootingstars der letzten Jahre. Jetzt sind Graph-Datenbanken in aller Munde. Ist die Zeit der relationalen Datenbanksysteme bald vorbei?
Held: Mein Eindruck ist, dass der Hype um NoSQL-Datenbanken seinen Zenit überschritten hat. Zunächst war ja – wie so oft – die Euphorie groß. In der Praxis zeigen sich aber Herausforderungen, die doch nicht so einfach zu bewältigen sind. Das beginnt damit, dass sich Anforderungen beispielsweise an die Ausfallsicherheit nicht immer so einfach mit Bordmitteln umsetzen lassen, wie man es von konventionellen Datenbanken gewohnt ist. Letztere haben einfach auch einen Entwicklungsvorsprung von mehreren Jahrzehnten.
Und wenn man dann passende Lösungen baut, sind die von den Kosten her – nicht immer, aber oftmals – in etwa dort, wo man auch bei den konventionellen Systemen lag. Das stellen sich Leute im Management aber gerne anders vor, weil sie irgendwo auf einer PowerPoint-Folie mal gesehen haben, wie schön einfach und kostengünstig die neuen Lösungen sind.
Was fällt dir spontan bei den folgenden Begriffen ein: DevOps, Virtualisierung, Hochverfügbarkeit, lebenslanges Lernen?
Held: DevOps: DevOps ist mehr als eine Haltung. Gefühlt ist es eine Erlösung. In den 1990iger-Jahren haben wir innerhalb eines Teams sowohl Softwareentwicklung als auch den Betrieb gemacht.
Das führte dazu, dass einige manchmal recht lustig in der Produktionsumgebung herumgeturnt sind. Ich erinnere mich, dass mal jemand einen Index gelöscht hat – ohne Tests vorab – weil er der Meinung war, den benötigt keiner. Tagsüber war das auch so. Aber nachts liefen Reporting-Jobs, die dann die komplette Produktion mit Full Table Scans lahmlegten.
Die meisten Teams, mit denen ich aktuell zusammenarbeite, arbeiten agil und selbstorganisiert. DevOps ist eine Selbstverständlichkeit und löst tatsächlich viele Probleme, die wir in den Jahren zuvor hatten. Endlich kann wieder schnell agiert werden.
Virtualisierung: Beweglichkeit.
Hochverfügbarkeit: Cluster und Redundanz, ach ja und natürlich robuster Code. Meine Lieblingsspielwiesen.
Lebenslanges Lernen: Wenn ich nichts mehr lernen könnte, wäre das Leben langweilig. Ich bin glücklich, in einem Umfeld zu arbeiten, in dem ich lebenslang Neues erfahre.
Dokumente
Artikel als PDF herunterladen