[00:00:00] Music.
00:00:07: Hallo und herzlich willkommen zu einer neuen Ausgabe von Inside IONOS.
00:00:11: Heute wird es etwas technischer in unserem Podcast. Wir bewegen uns quasi tief in den Maschinenraum unserer Internetfabrik, nämlich in unsere Rechenzentren.
00:00:17: Dort stehen mittlerweile über 100.000 Server, die viele verschiedene Aufgaben und Funktionen haben, und dazu zählen auf unsere Datenbank Server.
00:00:25: Hier hat sich in den letzten Wochen einiges getan, denn wir haben mehrere Millionen Datenbanken von einem 20 Jahre alten System auf eine ganz neue Plattform umgezogen,
00:00:33: und darüber spreche ich heute mit Anders Henkel, Expert Systemarchitect im Bereich Product Development IONOS Core, und mit Christian Rosa, Datenbankadministrator im Bereich IT Operations Databases. Wir haben immer komplizierte Titel hierbei IONOS, daher zum Einstieg vielleicht die Frage mit Bitte um eine kurze Antwort
00:00:48: Was macht ein Systemarchitekt und was macht ein Datenbankadministrator?
00:00:51: Als Systemarchitekt berate ich sowohl die Kollegen aus der Entwicklungen, aus dem Produktmanagement, als auch aus dem Betrieb,
00:00:58: wie man Dinge besser machen kann, was ein bisschen neue Trend sind, was ein bisschen alte Trends sind, die man neu aufwärmen kann oder ein bisschen verbessern kann an der Stelle.
00:01:07: Als Datenbankadministrator ist es meine Hauptaufgabe, die Datenbankplattformen an sich am Leben zu halten und gleichzeitig auch die Plattform weiterzuentwickeln,
00:01:16: und neue Dienste bereitzustellen.
00:01:18: Wir reden heute über Datenbanken, deswegen vielleicht am Anfang eine ganz blöde Frage. Was ist eine Datenbank? Als Datenbank würde ich erstmal eine strukturierte Ablage für Daten bezeichnen.
00:01:28: Das kann
00:01:30: im Prinzip schon ein analoges Medium sein, ein Aktenschrank oder irgendwas. In unserem Fall eher etwas Digitales, das heißt Daten, die in irgendeiner Form strukturiert in irgendwelchen Dateien abgelegt werden.
00:01:42: Wir haben jetzt beim Hosting oft die sogenannten Webspaces, also einfach den Speicherplatz, wo Kunden ihre Webseiten und Bilder und andere Dateien ablegen.
00:01:50: Wofür brauche ich jetzt im Hosting die Datenbanken? An sich brauchst du die Datenbanken dafür, wenn du irgendwelche Inhalte hast, die dynamisch erstellt werden, z.b. jetzt ein Forum oder irgendeine Webseite mit
00:02:02: einer Bildergalerie.
00:02:03: Dann hast du wahrscheinlich nicht für jeden einzelnen Forumsbeitrag ne eigene HTML-Dateien in der Webspace liegen, sondern du hast einmal in irgendeiner Form ein Template, und das wird dann mit den Daten aus der Datenbank angereichert,
00:02:15: und dann darüber das Forum dargestellt.
00:02:20: Jetzt haben wir ja in den letzten Jahren unsere Datenbank Plattform hier im Haus aufgebaut. Warum war jetzt vor wenigen Wochen dieser Wechsel auf eine komplett neue Plattform notwendig?
00:02:30: Also das hat im Prinzip angefangen, wir haben die Datenbankplattform als Datenbank-Team vor einigen Jahren vom Shared Hosting-Team übernommen,
00:02:37: und mittlerweile war der Software-Stack im Prinzip ziemlich veraltet. Die Erneuerung von dem Software-Stack wär theoretisch möglich gewesen, hätte aber dann zu viel Aufwand gekostet,
00:02:47: und da wir für intern schon für die Corporate-Datenbanken schon eine eigene Datenbankplattform haben, die auch mittlerweile schon
00:02:54: seit mehr oder weniger 12 Jahren besteht, haben wir die Datenbankplattform noch ein kleines bisschen erweitert, um die dann auch für die neue Shared Hostingplattform zu verwenden.
00:03:03: Über wie viel Datenbanken reden wir jetzt, die von dem alten auf das neue System migriert worden sind? Also vom alten aufs neue System migriert wurden ungefähr 2,5 Millionen Datenbanken.
00:03:12: Insgesamt sind 3 Millionen Datenbanken migriert worden, da waren noch welche von anderen Tochterunternehmen dabei, und insgesamt sind mittlerweile so um die 4,4 Millionen Datenbank auf der neuen Plattform.
00:03:23: Und kann man sagen über was für ne Datenmenge wir da sprechen? Wie viel ist das in Festplatten oder in Speicherplatz?
00:03:30: Also insgesamt haben wir ungefähr 250 Terabyte belegt, das ist
00:03:37: ungefähr die Hälfte von der Kapazität, die aktuell da ist, also ein halbes Petabyte kannst du ungefähr sagen, ja.
00:03:43: Ne wichtige Frage, die sicherlich viele Kundinnen und Kunden stellen werden, ist natürlich wie es mit der Sicherheit aussieht. Stichwort Backups, sind die da schon mit eingerechnet oder kommt das noch mal on top, und wie sieht bei Datenbank überhaupt eine Backup-Strategie aus?
00:03:55: Also die Backups sind da nicht angerechnet, das sind rein
00:03:59: die Kapazitäten der Datenpartition. Die Backups werden noch mal separat vorgehalten, und die Datenbank Backups an sich werden
00:04:07: im Prinzip permanent erstellt. Es ist also nicht irgendwie einen fester Backup-Zeitpunkt am Tag, sondern zu jeder Minute, zu jeder Sekunde wird auf irgendeinem Datenbankserver ein Backup erstellt.
00:04:18: Dadurch erreichen wir halt, dass die Backups über den Tag verteilt so gut wie möglich laufen, dass es nicht einen Zeitpunkt gibt,
00:04:24: zu dem alle Backups auf einmal erstellt werden. Ich habe, glaube ich, 2009 meine erste WordPress-Webseite gebastelt,
00:04:32: und damals habe ich noch von vielen Leuten gehört, oh, dynamischen Webseiten sind eigentlich deutlich langsamer
00:04:37: als statische Seiten, die eben aus dem Webspace kommen, also sprich dynamische aus der Datenbank. Ist da was dran und ist das heute noch so?
00:04:44: Rein technisch ist natürlich korrekt, also für ne dynamische Seite wird eine Scriptsprache interpretiert, es werden Inhalte berechnet, es wird auf der Datenbank zugegriffen. Das ist deutlich aufwändiger als wenn man eine statische, vorberechnete Datei einfach nur von der Festplatte oder SSD auslesen, ausstrahlen muss.
00:04:59: Trotzdem soweit haben die Softwarestacks da viele Fortschritte gemacht in den letzten Jahren, haben angefangen mit Caching-Strategien zu arbeiten, haben sich da sehr viel optimiert.
00:05:10: Es ist eine messbarer Unterschied noch da... Das heißt den werde ich als
00:05:14: Kunde normalerweise gar nicht wahrnehmen diesen Unterschied dass das... Der ist gut messbar, er ist auch gut erkennbar. Es gibt auch einige Techniken, die heute versuchen gezielt die Vorteile von statischen Webhosting auszuspielen, z.b. diese Static Site Generator.
00:05:26: Da programmiere ich mir im Prinzip eine Webseite und ein Stückchen Software generiert mir dann meine HTML Seiten heraus, und die Seiten werden noch sehr schnell ausgeliefert
00:05:34: und sind deutlich performanter als wenn ich alle Daten dynamisch aus einer Datenbank lese, möglicherweise auch noch ohne Caching oder irgendwelche Techniken, die das Ganze schneller machen könnten.
00:05:43: Das ist tatsächlic was das gab's, glaube ich, 2009 noch nicht, jedenfalls habe ich noch nichts davon gehört und darüber haben wir auch in unserer Inside IONOS Folge zum Thema Diploy Now gesprochen, verlinken wir gerne in den Shownotes.
00:05:53: Vielleicht mal zurück auf den Umzug. Christian, du hast ja selbst dran mitgearbeitet an dieser Migration, am Aufbau der neuen Plattform.
00:06:00: Das ist keine One-Man-Show. Wann habt ihr damit angefangen und wie viele Kollegen waren an dem Projekt beteiligt?
00:06:07: Also angefangen mit der neuen Shut-Hostingplattform haben wir um Mitte 2017 mit der Einführung von mySQL 5.7.
00:06:13: Die Umstellung an sich hat dann im Prinzip
00:06:18: Ende 2020 angefangen, da haben wir das Ganze geplant, da waren dann noch zwei Entwicklerteams daran beteiligt, die AP-Endpunkte bereitgestellt haben im Back-End, und wir haben dann Skripte gebaut, die die AP-Endpunkte verwendet haben um die Datenbanken letztendlich zu migrieren.
00:06:33: Die Migration an sich hat dann jetzt
00:06:35: mit Warten auf Hardware und allmöglichen anderen, was noch schief gegangen ist in der Zwischenzeit, ungefähr ein Jahr gedauert, und ja, ich weiß gar nicht wie viele Leute beteiligt waren, zehn?
00:06:45: Ja, das ist ja noch eine überschaubare Anzahl. Und wie sieht das jetzt für mich als Kunden aus, habe ich von dieser Migration überhaupt was mitbekommen oder kann man sowas komplett im Hintergrund machen?
00:06:54: Also, im Idealfall hättest du gar nichts gemerkt der ganzen Aktion. Was du vielleicht gemerkt hast, ist, dass deine Datenbank, die vorher auf MALISAM lief, mittlerweile auf innoDB läuft,
00:07:03: oder mittlerweile ist dein Charset geändert worden von Latin one auf UTF-8.
00:07:09: In der Regel merkst du... Zeichensätze ja? Das sind Zeichensätze, genau. Du merkst im Prinzip davon eigentlich nichts, es sei denn wenn in dieser Datenbank vorher die Zeichensätze schon ein bisschen wirr drinstehen, dann kann sein, dass im Endeffekt
00:07:23: die Zeichensätze in der Applikation am Schluss ein bisschen komisch aussehen, ist aber eher unwahrscheinlich. Was du auch noch gemerkt haben könntest, es gab so
00:07:30: paar ganz kleine Pfäde, die nicht richtig gut migriert werden konnten, weil irgendwelche Sachen sich geändert haben. Früher in der alten Maske 5.5 gab es noch ein Jahresspalte mit zwei Stellen,
00:07:40: die ist rausgefallen. Das heißt dann, ja, was früher mal als 04 für 2004 dargestellt wurde, wird jetzt als 2004 dargestellt. Wie geht man dann mit so einer Änderung um, bei der Migration? Grad bei diesem hier waren das insgesamt, glaube ich, 15 Datenbanken, die haben wir einfach umgestellt.
00:07:55: Also alle von Hand noch mal angefasst. Wie alt war die Plattform jetzt genau die wir aktualisiert haben? Wann ist die in Betrieb gegangen?
00:08:02: In Betrieb gegangen ist die etwa 2000, das heißt je nachdem welchen Stand man genau meint
00:08:06: weil diese Plattform hatte auch schon eine kleine Evolutionsgeschichte hinter sich. Vielleicht kurz, der interne Name dieser Datenbank war ja RDB, ich weiß ob der eine oder anderen Kunde das auch gesehen hat. Was steckt hinter dieser Abkürzung? Das hat einfach den kleinen Hintergrund, Real DB.
00:08:18: Das hat einfach den Hintergrund, die alten Datenbanken hießen einfach nur DB 01, 02, 03,
00:08:24: und wir haben dann damals im Betrieb Lastprobleme gehabt irgendwann mal, und um diese Lastrobleme zu trennen, haben wir angefangen die
00:08:33: zu splitten, also aus einem Datenbankserver wurden zwei, wurden drei, wurden vier.
00:08:36: Und um dieses Splitten vorzubereiten haben wir ganz früh bereits virtuelle Namen eingeführt, einfach Namen im DNS,
00:08:44: mehrere Namen für den gleichen physikalischen Datenbankserver.
00:08:47: Der physikalische Datenbankserver hieß dann RDB und die anderen hatten diesen Beinamen DB. Wir haben eben schon über den Speicherplatz gebrochen, über wie viele
00:08:55: physische Server reden wir eigentlich, die da jetzt migriert worden sind?
00:08:59: Also ursprünglich waren es mal um die 800 physikalische Server, jetzt sind wir noch bei um die 300. Auf diese 800 physikalischen Servern früher liefen insgesamt um die 2400 Container, OpenVZ-Container.
00:09:12: Mittlerweile sind wir allerdings schon, dadurch dass wir ja einiges gewachsen sind, von ungefähr 2,4 Millionen Datenbanken auf der alten Plattform im Höchstausbau, sind wir jetzt bei 2,4 Millionen, also 2 Millionen Datenbanken mehr.
00:09:24: Wir haben jetzt um die 3300 Filecluster, die auf einer virtualisierten Plattform laufen und diese physikanlischen Server, auf denen die Files laufen, müssten, glaube ich, um die 300 sein.
00:09:35: Das heißt wahrscheinlich sparen wir dadurch auch ne Menge Strom, wenn wir jetzt deutlich weniger Maschinen im Einsatz haben?
00:09:40: Klar, du sparst einiges an Strom, allerdings muss man auch sagen, die Server sind um sehr viel leistungsstärker und brauchen dementsprechend auch an sich pro Server wieder mehr Strom, aber im Endeffekt ja.
00:09:50: Anders, du bist ja so ein Urgestein bei IONOS und bei unserem Vorgängerfirmen, hast vor allen Dingen auch noch die Anfänge bei Schlund+Partner miterlebt. 800 Server auf der alten Plattform, die hat wir ja nicht von Anfang an. Wie ging das los mit den Datenbanken bei Schlund damals.
00:10:01: Ganz am Anfang waren das zwei Datenbankserver, einmal für die Schlund-Partnermarke, einmal für die Marke 1&1 PureTech.
00:10:09: Und diese beiden Datenbankserver waren physikalische Server, einfach nichts anderes. Man hat ein bisschen automatisch Datenbank eingerichtet, automatisch Datenbank gelöscht,
00:10:17: wenn der Kunde das natürlich gewollt hat, aber da sind keine Automationen drauf gewesen, da sind zwar Backups gemacht worden, aber da war nicht viel drin.
00:10:25: Und wir haben das angefangen dann eben weiter zu automatisieren, zu perfektionieren und daraus eine richtige Plattform zu machen, also eine größere Farm von Servern aufzubauen,
00:10:33: haben dieser Farm von Servern später auch georendundant gemacht, im Rahmen der Georendundanz haben wir die Server auch virtualisiert, Christian hat das eben schon mit dem OpenVZ kurz angesprochen,
00:10:42: und wir haben später noch weitere Tricks eingeführt damit wir
00:10:45: im Rahmen irgendwie weitere Wartungsarbeiten oder Migrationsarbeit es später einfacher haben werden, z.b. haben sie bereits 2012 eingeführt, dass jede Datenbank ihren eigenen Datenbank-Rustnamen hat. Mit diesem Trick können wir jede Datenbank einzeln umziehen,
00:10:59: ohne dass wir den gesamten Server umziehen müssen.
00:11:01: Das heißt da sind aber auch viele Sachen, du sagst Tricks, also wirklich Geschichten, die wir hier im Haus für uns selbst entwickelt haben, die man auch nicht von der Stange in einer anderen Datenbank bekommt.
00:11:11: Richtig, da sind einige Tricks dabei, die wir nur intern haben, einige Sachen haben wir auch beauftragt, also wir haben bei der Firma mindsquare tatsächlich mal Features eingekauft, die
00:11:20: dann auch in die Open-Source Variante rein gewandert sind. Ansonsten haben wir aber tatsächlichviele Features, die wir nur im internen Tooling haben.
00:11:27: Gabs in den letzten Jahren noch irgendwelche besonderen Meilensteine bei den Datenbanken? Also ja die
00:11:32: Hauptmeilensteine in der alten Datenbankplattform, würde ich jetzt mal sagen, waren die Georendundanz, die eingeführt wurde, ist so das erste Große. Die Virtualisierung auf OpenVZ.
00:11:43: Früher waren es ja alles, waren sogar die RDBs eigene physikalische Server. Dann jetzt die Umstellung von OpenVZ auf KVM.
00:11:51: Und die Umstellung von der Storage Engine MALISAM zu der innoDB, das würde ich so als die großen Meilensteine betrachten.
00:11:58: Wenn ich jetzt das Rechenzentrum gehe, würde ich von außen erkennen, was der Unterschied zwischen einem Datenbankserver und einem klassischen Webhostingserver ist oder wie sieht da die Hardware aus? Ist dasselbe, gibt's große Unterschiede?
00:12:11: Also du würdest das tatsächlich ein bisschen sehen und zwar, es ist ein bisscen unintuitiv, aber die Datenbankserver haben tatsächlich sehr viel weniger Festplatten eingebaut als Webserver.
00:12:19: Das liegt daran, weil die Datenbankserver im Prinzip einen Enterprise-Storage angeschlossen haben, auf dem dann auf NVMEs die Datenbanken an sich liegen,
00:12:28: aber die Server an sich haben eigentlich nur zwei Festplatten damit ein Betriebssystem darauf installiert werden kann.
00:12:33: NVME musst du vielleicht kurz erklären. NVMEs sind im Prinzip SSDs die übern PCI Express angeschlossen sind und dann entsprechend schnell.
00:12:42: Jetzt hast du gesagt, wir haben von 800 auf auf etwa die Hälfte die Server reduziert. Was passiert mit den alten Servern, können wir die noch für einen anderen Zweck verwenden?
00:12:51: Das kommt ganz drauf an was für Servergeneration, also zu guter Letzt waren doch noch einige Generationen im Einsatz. Die älteren System sind natürlich alle entsorgt worden, die neueren Systeme kann man durchaus noch weiter verwenden. Und was wird dann wahrscheinlich drauf laufen?
00:13:05: Andere Datenbanken oder... Einen Teil davon haben wir wiederverwendet für Corporate-Datenbanken, ein anderer Teil geht dann zurück zum Data Center Service und die vergeben das dann weiter.
00:13:15: Wenn wir über Datenbanken gesprochen haben, war das eine ganze Zeit lang was überall Synonym mit mySQL, jedenfalls in der Hosting- und Linuxwelt. Inzwischen gibt es andere Systeme, MariaDB,
00:13:27: PostgreSQL, was sind die Hauptunterschiede zwischen diesen Systemen?
00:13:31: MariaDB ist im Prinzip als drop-in Replacement für mySQL entwickelt worden. Mittlerweile entwickelt sichs mit weniger zum eigenen DBMS, das liegt auch daran, dass mySQL sich immer mehr weiterentwickelt und MariaDB halt
00:13:44: die Entwicklung in eine andere Richtung fortführt. PostgreSQL ist ne objektrelationale Datenbank, also im Prinzip kannst du alles was wir in der mySQL Machete machen kannst auch in der PostgreSQL machen. Es hat aber
00:13:57: wesentlich erweiterten Funktionsumfang und ist jetzt für ein klassisches Shut-Hosting eher nicht so die erste Wahl.
00:14:04: Und macht das für die Datenbankplattform einen Unterschied, ob das jetzt mySQL oder MariaDB oder Postgres ist?
00:14:10: Das war ein Grund warum wir DBA-Plattformen quasi weitergeführt haben. Das liegt einfach daran, dass die mehr oder weniger agnostisch ist, was für ein Datenbanksystem drauf läuft. Das heißt wir können dann mySQL, MariaDB, Postgres,
00:14:22: beliebig drauf installieren. Die alte Plattform hat jetzt gut 20 Jahre gehalten. Wie lange wird es die neue schaffen?
00:14:28: Die neue Plattform ist auch nicht ganz neu, die ist ja auch schon ungefähr zwölf Jahre alt. Da ist kein Ausschaltdatum bisher angedacht, und da die auch noch ziemlich weiterentwickelt wird, glaube ich nicht, dass es in absehbarer Zeit passieren wird.
00:14:40: Zum Schluss, das haben wir auch bei vielen Themen hier im Podcast, der Blick in die Glaskugel. Was in neue Trends im Bereich Datenbanken, die noch auf uns zukommen?
00:14:48: Was mit immer mehr auf kommt, das sind so Management-Datenbank-Produkte, also irgendwie Infrastructure-as-a-Service, Database-as-a-Service.
00:14:56: Nicht relationale Datenbanken sind auch immer mehr im Kommen, das jetzt alles beides nicht unbedingt der klassische Fall für
00:15:04: Shared Webhosting wie wir das hier haben. Database-as-a-Service ist eher so ein reines Cloud-Produkt, wenn jemand eine Cloud-Instanz, schon eine Computerinstanz auf einem Cloudprovider hat,
00:15:13: wird er auch vielleich eine Datenbank dazu haben. Die ganzen nicht relationalen Datenbanken, oder NoSQL Datenbanken,
00:15:21: eignen sich oft für ganz besonders große Datenmengen oder für sehr spezielle Anwendungsfälle und sind deshalb nicht unbedingt fürs Shared Hosting zu verwenden.
00:15:31: Ich könnte bei beiden Themen noch etwas ergänzen an der Stelle, und zwar die Database-as-a-Service könnte theoretisch für Shared Hosting ein sehr interessantes Feature sein. Wir haben tatsächlich vor
00:15:41: 15 Jahren damals den Bedarf gehabt, Kunden im Shared Hosting, die hatten sehr viel mit Datenbanken gemacht haben, sehr viel auf Datenbanken entwickelt,
00:15:49: und haben genau dabei auch gelegentlich unsere Datenbankserver überlastet.
00:15:52: Und diese Kunden haben tatsächlich nach eigenen Datenbankserver gefragt als Produkt, also wir wollten auf dem Shared Webhostingspace bleiben, aber zusätzlich dazu ein Stückchen eigene Hardware mit der eigenen Datenbank.
00:16:03: Und Database-as-a-Service realisiert letzten Endes was Ähnliches, jetzt nicht mit eigener Hardware, aber mit virtueller Hardware im weitesten Sinne.
00:16:10: Ihr arbeitet ja wahrscheinlich im Hintergrund schon an den nächsten Innovationen für unsere Kunden. Kann man schon mal irgendwo den Schleier lüften, was uns da in den nächsten Monaten vielleicht erwartet?
00:16:21: Also was auf jeden Fall kommen wird ist ein Upgrade von der MariaDB-Version, die wir anbieten. Das ist die aktuelle MariaDB 10.5,
00:16:28: das wird in absehbarer Zeit ich 10.6 ersetzt. Was auch noch kommen wird ist, zusätzlich zur mySQL 57, die wir eh ohnehin schon im Angebot haben, die wird noch mit einer mySQL 8 ergänzt.
00:16:39: Und was auch angedacht ist, das noch ein bisschen mehr Zukunftmusik, dass wir irgendwann auch PostgreSQL auf der Shared Hostingplattform anbieten können,
00:16:48: für spezielle Use Cases, die es auch geben kann.
00:16:52: Spannend, vielen Dank. Anders, Christian, ich muss sagen ich habe heute einiges gelernt. Wenn Sie noch Fragen haben, schreiben Sie uns gerne eine Mail an podcast@ionos.com
00:17:00: oder kommentieren Sie unter diese Episode und natürlich freuen wir uns auch über eine Bewertung.
00:17:04: Wenn Sie noch kein Abonnent sind, ist jetzt ein guter Zeitpunkt, das nachzuholen. Inside IONOS gibt es unter inside.ionos.de und natürlich auf allen gängigen Podcastplattformen.
00:17:13: Vielen Dank fürs Zuhören und bis zum nächsten Mal.
00:17:15: Music.