Software Defined Storage, Software Defined Networking, Software Defined Infrastructure – welche Voraussetzungen müssen RZ-Betreiber und Kunden mitbringen, damit diese technischen Konzepte ihren wirtschaftlichen Nutzen voll entfalten?
Zugegeben, “Software Defined Everything” klingt sehr stark nach einem Hype-Begriff. Hinter diesem Konzept verbirgt sich letztlich konsequente Virtualisierung. Nur dass es jetzt um mehr geht, als um die Abstraktion von der Hardware-Ebene und eine effizientere Auslastung von Rechen- und Speicherkapazitäten. Es geht um Standardisierung und Automation. Das Bereitstellen von Ressourcen auf Knopfdruck. Wie umfassend dieser Paradigmenwechsel wirkt, wird vielleicht an der Zielvorgabe deutlich: Zukünftig werden vom Kunden gewünschte Veränderungen an den Systemen im Rechenzentrum nicht mehr über Requests angestoßen, sondern der Kunde löst die Änderungen selbst über eine API (Application Programming Interface) aus.
Wie sich “Software Defined” vom bisherigen “Virtualized” unterscheidet, zeigt die Definition von Software Defined Storage der SNIA (Storage Networking Industry Association): “SDS ist virtualisierter Speicher mit einer Service-Management-Schnittstelle. SDS umfasst Speicher-Pools mit Datendienstmerkmalen, die auf Anforderungen angewendet werden, welche über die Service-Management-Schnittstelle spezifiziert werden.” Im Einzelnen bedeutet das: Durch Automatisierung und ein vereinfachtes Management werden die Betriebskosten weiter gedrückt, die Bereitstellung von Ressourcen deutlich beschleunigt. Über Standardschnittstellen werden Speichermedien und -dienste angefordert, konfiguriert, bereitgestellt und verwaltet. Die Skalierbarkeit muss beim SDS vollkommen ohne Unterbrechungen oder Performance-Einbrüche gegeben sein. Ressourcenverbrauch und Kosten müssen für den Nutzer transparent sein.
Dass Konfigurationen von IT-Infrastruktur nicht manuell verwaltet und bereitgestellt werden, sondern automatisch, steckt hinter dem Begriff “Infrastructure as Code” (IAC). Es ist die Weiterentwicklung der von jeher im Deployment verwendeten Skripte, allerdings mit höheren Sprachen. Das Konzept von IAC ähnelt der Skript-Programmierung, die verwendet wird, um wichtige IT-Prozesse zu automatisieren. Skripte werden allerdings in erster Linie eingesetzt, um eine Reihe statischer Schritte zu automatisieren, die sich mehrmals auf verschiedenen Servern wiederholen. Statt Skripte verwendet IAC High-Level- oder deskriptive Sprachen, um die komplexen und adaptiven Bereitstellungsprozesse zu codieren.
In Verbindung mit einer Configuration Management Software wie zum Beispiel “Puppet” wird es möglich, die Konfiguration der Infrastruktur als Source Code zu behandeln. Neben der von hier aus angestoßenen automatischen Anwendung einer Konfiguration hat der Ansatz den Vorteil der Verwaltung von Konfiguration mit einer Versionskontrolle, der Nachvollziehbarkeit und Wiederholbarkeit. Darüber hinaus kann die Konfiguration von Servern und virtuellen Maschinen automatisiert getestet und somit die Qualität und auch die Wiederholbarkeit eines Deployments sichergestellt werden.