Die neue Generation von Anwendungen ist auf ein hohes Maß an Flexibilität angewiesen. Sie laufen auf unterschiedlichsten mobilen oder stationären Geräten und müssen dabei jederzeit ein konsistentes Nutzererlebnis bieten. Im mobilen Betrieb sind sie dabei zunehmend auf Funknetze wie 5G angewiesen und sollten die damit verbundenen Möglichkeiten von IoT und Edge Computing nutzen können.

Die Applikationen müssen in der Lage sein, sowohl traditionelle, transaktionsorientierte Datenbanken zu unterstützen als auch deren relationale Strukturen in flexiblere NoSQL-Datenbanken zu transformieren. Sie werden unter anderem gebraucht, um Anwendungen stärker personalisieren zu können, ohne dass dafür ein Datenbank-Administrator eingreifen müsste.

Couchbase nennt die fünf elementar notwendigen Datenbank-Fähigkeiten:

  1. Multi-Model Data Access: Eine moderne Datenbank muss als Plattform sämtliche Funktionalitäten und Datenmodelle abdecken können. Dazu benötigt sie Data Engines für Key-Value, SQL-Query, Text-Processing, Eventing und Analytics sowie den Support für relationale Strukturen aus SQL-Datenbanken. So wird vermieden, dass für bestimmte Funktionen separate Datenbanken eingesetzt und miteinander kombiniert werden müssen – mit den entsprechenden Einbußen bei Flexibilität, Stabilität und Aufwand.​

  1. Skalierbare Performance: Moderne Anwendungen müssen schnell und skalierbar sein, also auch die Datenbank. Eine Speicher- und Netzwerk-zentrierte Shared-nothing-Architektur liefert in Verbindung mit horizontaler Skalierung die nötige linear steigende Performance. Durch die Isolierung der verschiedenen Prozesse kann die Skalierung multidimensional, also selektiv begrenzt auf die tatsächlich benötigten Ressourcen erfolgen.

  1. Strukturelle Flexibilität: SQL-Datenbanken arbeiten mit starren Tabellen-Schemata. NoSQL dagegen nutzt JSON als flexibles Datenmodell, benötigt jedoch Datenbank-Administratoren mit entsprechendem Spezialwissen. Deshalb ist es wichtig, dass auch für NoSQL-Datenbanken weiterhin SQL als weit verbreitete Programmier- und Abfragesprache genutzt werden kann.

  1. Operative Automatisierung: Für eine weitere wichtige Entlastung des Datenbankbetriebs sorgt die Automatisierung von Admin-Aufgaben, etwa durch die Trennung von Index und Data Management. Der wichtigste Schritt ist jedoch die Nutzung von Kubernetes für die autonome Steuerung typischer Admin-Aufgaben, bis hin zur sich selbst kontrollierenden und optimierenden Datenbank.

  1. Run Anywhere: Applikationen agieren in verteilten Umgebungen mit physischen Servern, virtuellen Maschinen, Containern, Cloud-Instanzen und Edge-Devices. Datenbanken müssen diesen Mix entsprechend abbilden und unterstützen. Die Lauffähigkeit in Multi-Cloud-Umgebungen hilft in Kombination mit der flexiblen Bereitstellung als Database-as-a-Service (DBaaS), ein Vendor Lock-in zu vermeiden.

„Mit den Anforderungen an moderne Applikationen wachsen auch die Ansprüche an die sie unterstützenden Datenbanken“, erklärt Paul Salazar, Senior Director Central Europe bei Couchbase. „Das betrifft die verschiedenen funktionalen Ebenen ebenso wie die Erleichterung der administrativen Aufgaben und die Flexibilität der Bereitstellungsmodelle.“

Weitere Beiträge....