Ich hatte gerade einen interessanten Email-Austausch mit einem Kunden, der eine Modernisierung seiner SQL Server Landschaft plant. In der EMail erwähnte er unter anderem, dass er gerne die Modernisierung verschieben wolle oder aber auf eine vom Hersteller der Software unterstützte Version (SQL Server 2019) aktualisieren möchte. Leider erreichen mich diese Aussagen von Softwareherstellern immer wieder – sie sind technisch vollkommen unbegründet.

Warum Modernisierung?

Die regelmäßige Aktualisierung von Hard- und Software ist aus verschiedenen Gründen wichtig:

  • Sicherheitsaktualisierungen: Dies ist einer der wichtigsten Gründe für Updates. Hersteller veröffentlichen regelmäßig Sicherheitspatches, um bekannte Sicherheitslücken und Schwachstellen in der Software zu beheben. Das Ignorieren von Updates kann Ihr System anfällig für Malware, Viren und andere Sicherheitsbedrohungen machen.
  • Leistungsverbesserungen: Software-Updates können die Leistung und Stabilität Ihres Systems verbessern. Dies kann die Geschwindigkeit von Anwendungen erhöhen, Bugs und Abstürze reduzieren und die allgemeine Benutzerfreundlichkeit verbessern.
  • Kompatibilität: Neue Software-Versionen und Updates sind oft erforderlich, um mit neuen Hardware-Komponenten oder Betriebssystemen kompatibel zu sein. Wenn Sie Ihre Software nicht aktualisieren, könnten Sie Probleme mit der Kompatibilität haben.
  • Neue Funktionen und Verbesserungen: Updates bringen oft neue Funktionen, Verbesserungen in der Benutzeroberfläche und andere nützliche Änderungen mit sich, die Ihre Produktivität oder Benutzererfahrung verbessern können.
  • Behebung von Fehlern und Problemen: Software ist selten fehlerfrei, und Entwickler arbeiten kontinuierlich daran, bekannte Fehler und Probleme zu beheben. Updates können diese Fehlerkorrekturen enthalten.
  • Aktualisierung von Treibern: Hardwarehersteller veröffentlichen oft Treiber-Updates, um die Leistung und Stabilität von Hardwarekomponenten wie Grafikkarten, Druckern und anderen Geräten zu verbessern.
  • Sicherstellung der Unterstützung: Wenn Sie veraltete Software oder Hardware verwenden, erhalten Sie möglicherweise keine Unterstützung mehr vom Hersteller. Dies kann bedeuten, dass Sie im Falle von Problemen oder Fehlern keine Hilfe erhalten.
  • Regelkonformität: In einigen Fällen müssen Unternehmen und Organisationen sicherstellen, dass ihre Software und Hardware den neuesten Compliance-Anforderungen und Vorschriften entsprechen. Dies erfordert regelmäßige Updates.
  • Schutz vor Exploits: Cyberkriminelle entwickeln ständig neue Methoden, um Schwachstellen in Software auszunutzen. Durch regelmäßige Aktualisierungen können Sie sich vor diesen Exploits schützen.
  • Verbesserung der Energieeffizienz: In einigen Fällen können Updates die Energieeffizienz von Hardware verbessern, was dazu beitragen kann, den Energieverbrauch zu reduzieren und die Umweltauswirkungen zu verringern.

Insgesamt sind regelmäßige Updates von Hard- und Software entscheidend, um die Sicherheit, Leistung und Funktionalität Ihrer Systeme auf dem neuesten Stand zu halten. Es ist ratsam, diese Updates zeitnah zu installieren, um die genannten Vorteile zu nutzen und Sicherheitsrisiken zu minimieren.

Fehlende Bereitschaft durch den Softwarehersteller

Immer wieder werden Kunden vom Softwarehersteller darauf hingewiesen, dass ihre Software nicht für den Betrieb auf neueren IT-Systemen zertifiziert ist. Gerade im Bereich von Microsoft SQL Server höre/lese ich das immer wieder. So auch in dem aktuellen Fall. Die Situation stellt sich wie folgt dar:

  • Unser Kunde muss/möchte die bestehende Microsoft SQL Server Landschaft aus betriebsinternen Gründen aktualisieren. Ein wesentlicher Grund für die bevorstehende Aktualisierung ist der auslaufende Support von Microsoft für die derzeit verwendete Version von Microsoft SQL Server!
  • Es wurde Kontakt zum Softwarehersteller aufgenommen, dessen Datenbank auf einem der zu aktualisierenden Datenbankserver betrieben wird. Es wurde um die Freigabe der Aktualisierung auf Microsoft SQL Server 2022 gebeten.
  • Die Aussage des Softwareherstellers beschränkt unseren Kunden auf eine Aktualisierung auf Microsoft SQL Server 2019. Hierzu wurde ausgeführt, dass die Software bisher nur auf dieser Version von Microsoft SQL Server getestet und freigegeben wurde.
  • Der Kunde ist verunsichert und plante, zunächst auf die vom Hersteller vorgeschriebene Version zu aktualisieren. Sobald eine Freigabe durch den Hersteller erfolgt, sollte nachfolgend ein In Place Upgrade auf die aktuelle Version von Microsoft SQL Server durchgeführt werden.

Mögliche Gründe für die fehlende Freigabe

Natürlich frage ich mich immer wieder, welche Gründe könnten für die Verweigerung ursächlich sein. Es gibt mehrere Gründe, warum Softwarehersteller die Aktualisierung auf moderne Versionen des eingesetzten Datenbanksystems manchmal verzögern oder verweigern:

  • Komplexität und Aufwand: Die Aktualisierung einer Softwareanwendung auf eine neuere Version des Datenbanksystems kann sehr komplex und zeitaufwendig sein. Dies erfordert oft umfangreiche Anpassungen an der Software, um sicherzustellen, dass sie reibungslos mit den neuen Funktionen und APIs der Datenbank arbeitet. Der Entwicklungs- und Testaufwand kann erheblich sein.
  • Abhängigkeiten: Die Softwareanwendung kann von bestimmten Versionen oder Features des aktuellen Datenbanksystems abhängig sein. Eine Aktualisierung könnte bedeuten, dass diese Abhängigkeiten nicht mehr erfüllt werden, was eine umfassende Neugestaltung oder Überarbeitung der Anwendung erforderlich macht.
  • Kosten: Die Aktualisierung einer Softwareanwendung auf eine neue Version des Datenbanksystems kann mit erheblichen Kosten verbunden sein. Dies umfasst nicht nur die Entwicklungs- und Testkosten, sondern auch Schulungen für Benutzer und Administratoren, um sicherzustellen, dass sie die neuen Funktionen und Änderungen verstehen und nutzen können.
  • Risiken für die Stabilität: Eine Aktualisierung des Datenbanksystems kann unerwartete Probleme und Stabilitätsprobleme in der Softwareanwendung verursachen. Dies kann Kunden verärgern und den Ruf des Herstellers schädigen.
  • Vertragliche Verpflichtungen: In einigen Fällen sind Softwarehersteller vertraglich verpflichtet, eine bestimmte Version des Datenbanksystems zu unterstützen und können daher nicht einfach auf eine neuere Version aktualisieren, ohne gegen diese Verträge zu verstoßen.
  • Ressourcenmangel: Kleinere Softwarehersteller oder Organisationen mit begrenzten Ressourcen können möglicherweise nicht die erforderlichen Entwicklungs- und Testressourcen für eine Aktualisierung aufbringen.
  • Kundennachfrage: Wenn die Kundenbasis der Softwareanwendung überwiegend ältere Versionen des Datenbanksystems verwendet und keine dringende Nachfrage nach einer Aktualisierung besteht, kann der Hersteller zögern, Ressourcen in die Entwicklung einer neuen Version zu investieren.

Es ist wichtig zu beachten, dass die Entscheidung eines Softwareherstellers, die Aktualisierung auf moderne Versionen des Datenbanksystems zu verzögern oder zu verweigern, in der Regel von einer sorgfältigen Abwägung dieser Faktoren abhängt. In einigen Fällen kann es sinnvoll sein, die bestehende Version zu unterstützen, während in anderen Fällen die Aktualisierung notwendig ist, um die Sicherheit, Leistung und Funktionalität der Software zu gewährleisten. Kunden sollten mit den Herstellern in Kontakt treten, um mehr über deren Pläne und Gründe für Aktualisierungen zu erfahren.

Warum ist das für Microsoft SQL Server nicht relevant?

Alle oben genannten Punkte, die gegen eine Aktualisierung des Datenbanksystems sprechen, kennt natürlich auch ein Tech-Riese wie Microsoft. Hier hat Microsoft einen – aus meiner Sicht – bemerkenswerten Standpunkt in Bezug auf Microsoft SQL Server:

Therefore, an application that was certified to work with a given SQL Server version was in fact certified to work on that version’s default compatibility level.

https://learn.microsoft.com/en-us/sql/database-engine/install-windows/compatibility-certification

Microsoft garantiert, dass eine Software, die beispielsweise mit einer Microsoft SQL Server 2016 Datenbank entwickelt wurde, nicht zwingend eine Microsoft SQL Server 2016 Engine benötigt, sondern dass die eingesetzte Datenbank die Kompatibilitätseinstellungen für SQL Server 2016 (13) verwenden muss!

Also nicht die Engine ist entscheidend sondern der Kompatibilitätsgrad.

Der Grund für dieses Versprechen von Microsoft ist mir nicht bekannt. Hier kann ich nur raten. Hierbei stellt sich mir als erste Frage, was möchte Microsoft mit dieser Sicherheit erreichen? Ich kann mir vorstellen, dass diese Garantie einem Kunden die Entscheidung leichter macht, auf modernere Versionen von SQL Server zu wechseln. Gleichwohl wird mit diesem Garantieversprechen auch eine Migration in die Cloud erleichtert.

Insbesondere die Migration in die Cloud als „Platform as a Service“ (PaaS) wäre vollkommen undenkbar, wenn Microsoft für jede installierte Managed Instance/Azure Database jedes mal die Einwilligung des Kunden einholen muss, um die bestehenden Engine-Versionen auf modernere Versionen zu aktualisieren! Durch den Kompatibilitätsgrad garantiert Microsoft, dass es vollkommen irrelevant ist, welche Engine darunter ihr Tageswerk verrichtet. Wird eine explizite Version als Kompatibilitsgrad angegeben, verhält sich die Datenbank so, als wäre die entsprechende Engine aktiv!

Ich kann nur jedem raten, sich nicht von den Aussagen einzelner Softwarehersteller beunruhigen zu lassen. Vielmehr ist es wichtig, den Softwarehersteller zu fragen, warum eine moderne Software nicht verwendet werden darf, wenn doch nicht die Version der Engine relevant ist sondern der Kompatibilitätsgrad der verwendeten Datenbank.

PS: Wenn wir Modernisierungen bei unseren Kunden durchführen, raten wir immer dazu, für die Datenbank den Query Store zu aktivieren. Aber das ist ein Thema für einen weiteren Blogartikel.

Herzlichen Dank fürs Lesen!