Nachdem Sie die verfügbaren Speicherlösungen und -provider überprüft haben, planen Sie den benötigten Speicher und fordern Sie ihn beim Infrastrukturteam an.
Bevor Sie entscheiden können, welcher Speichertyp die richtige Lösung für Sie ist, müssen Sie die Anforderungen Ihrer App, den Typ der Daten, die gespeichert werden sollen, und die erforderliche Zugriffshäufigkeit auf diese Daten kennen.
-
Entscheiden Sie, ob Ihre Daten permanent gespeichert werden müssen oder ob Ihre Daten zu jedem beliebigen Zeitpunkt entfernt werden können.
-
Persistenter Speicher: Ihre Daten müssen immer noch verfügbar sein, selbst wenn der Container, der Workerknoten oder der Cluster entfernt werden. Verwenden Sie persistenten Speicher in den folgenden Szenarios:
- Statusabhängige Apps
- Kerngeschäftsdaten
- Daten, die aufgrund gesetzlicher Bestimmungen zugänglich sein müssen (z. B. eine definierte Aufbewahrungsfrist)
- Auditing
- Daten, auf die über App-Instanzen zugegriffen werden muss und die gemeinsam genutzt werden müssen
-
Nicht persistenter Speicher: Ihre Daten können entfernt werden, wenn der Container, der Workerknoten oder der Cluster entfernt wird. Der nicht persistente Speicher wird in der Regel für Protokolldaten verwendet, z. B. Systemprotokolle
oder Containerprotokolle, Entwicklungstests oder wenn Sie auf Daten auf dem Dateisystem des Hosts zugreifen wollen.
-
Wenn Sie Ihre Daten speichern müssen, analysieren Sie, ob Ihre App einen bestimmten Typ von Speicher erfordert. Wenn Sie eine vorhandene App verwenden, ist die App möglicherweise so ausgelegt, dass Daten auf eine der folgenden Arten gespeichert
werden:
- In einem Dateisystem: Die Daten können als Datei in einem Verzeichnis gespeichert werden. Sie können diese Datei z. B. auf der lokalen Festplatte speichern. Für einige Anwendungen sind Daten erforderlich, die in einem bestimmten
Dateisystem gespeichert sind (z. B.
nfs oder ext4), um den Datenspeicher zu optimieren und Leistungsziele zu erreichen.
- In einer Datenbank: Die Daten müssen in einer Datenbank gespeichert werden, die einem bestimmten Schema entspricht. Manche Apps sind mit einer Datenbankschnittstelle ausgestattet, die Sie zum Speichern Ihrer Daten verwenden können.
So ist WordPress beispielsweise für das Speichern der Daten in einer MySQL-Datenbank optimiert. In diesen Fällen wird der Typ des Speichers für Sie ausgewählt.
-
Wenn Ihre App keine Begrenzung für den Typ des zu verwendenden Speichers aufweist, bestimmen Sie den Typ der Daten, die Sie speichern möchten.
- Strukturierte Daten: Daten, die Sie in einer relationalen Datenbank speichern können, in der Sie über eine Tabelle mit Spalten und Zeilen verfügen. Daten in Tabellen können mithilfe von Schlüsseln verbunden werden und sind in
der Regel aufgrund des vordefinierten Datenmodells leicht zugänglich. Beispiele sind Telefonnummern, Kontonummern, Sozialversicherungsnummern oder Postleitzahlen.
- Semistrukturierte Daten: Daten, die sich nicht für eine relationale Datenbank eignen, die aber mit bestimmten organisatorischen Eigenschaften ausgestattet sind, die das Lesen und Analysieren der Daten erleichtern. Beispiele sind
Dateien mit Markup-Sprachen wie CSV, XML oder JSON.
- Unstrukturierte Daten: Daten, die keinem Organisationsmuster folgen und die so komplex sind, dass Sie sie nicht in einer relationalen Datenbank mit vordefinierten Datenmodellen speichern können. Um auf diese Daten zugreifen zu
können, benötigen Sie erweiterte Tools und Software. Beispiele sind E-Mail-Nachrichten, Videos, Fotos, Audiodateien, Präsentationen, Social-Media-Daten oder Webseiten.
Wenn Ihre Daten strukturiert und unstrukturiert sind, versuchen Sie, jeden Datentyp separat in einer Speicherlösung zu speichern, die für diesen Datentyp ausgelegt ist. Die Verwendung einer geeigneten Speicherlösung für Ihren Datentyp erleichtert
Ihnen den Zugriff auf Ihre Daten und bietet Ihnen Vorteile hinsichtlich Leistung, Skalierbarkeit, Permanenz und Konsistenz.
-
Analysieren Sie, wie Sie auf Ihre Daten zugreifen wollen. Speicherlösungen sind in der Regel so konzipiert und optimiert, dass sie Lese- oder Schreiboperationen unterstützen.
- Lesezugriff: Ihre Daten können nur gelesen werden. Sie möchten die Daten nicht schreiben oder ändern.
- Lese-/Schreibzugriff: Sie möchten die Daten lesen, schreiben und ändern. Für Daten, die gelesen und geschrieben werden, ist es wichtig zu wissen, ob die Operationen leseintensiv, schreibintensiv oder ausgeglichen sind.
-
Ermitteln Sie die Häufigkeit, mit der auf Ihre Daten zugegriffen wird. Wenn Sie die Häufigkeit des Datenzugriffs kennen, können Sie ermitteln, welche Leistung Sie für Ihren Speicher benötigen. Daten, auf die häufig zugegriffen wird, befinden sich
in der Regel im Schnellzugriffsspeicher.
- Hot Data: Daten, auf die häufig zugegriffen wird. Gängige Anwendungsfälle sind Web-Apps oder Mobile Apps.
- Cool Data oder Warm Data: Daten, auf die selten zugegriffen wird, z. B. einmal im Monat oder seltener. Gängige Anwendungsfälle sind Archive, kurzfristige Datenaufbewahrung oder Disaster-Recovery.
- Cold Data: Daten, auf die selten zugegriffen wird (wenn überhaupt). Gängige Anwendungsfälle sind Archive, langfristige Sicherung, Langzeitdaten.
- Frozen Data: Daten, auf die nicht zugegriffen wird und die Sie nur aus rechtlichen Gründen aufbewahren müssen.
Wenn Sie die Häufigkeit nicht vorhersagen können oder wenn die Häufigkeit keinem bestimmten Muster folgt, ermitteln Sie, ob Ihre Workloads leseintensiv, schreibintensiv oder ausgeglichen sind. Sehen Sie sich dann die Speicheroption an, die Ihrer
Workload entspricht, und untersuchen Sie, welche Speicherschicht (Storage Tier) Ihnen die erforderliche Flexibilität bietet.
-
Untersuchen Sie, ob Ihre Daten über mehrere App-Instanzen, Zonen oder Regionen hinweg gemeinsam genutzt werden müssen.
Wenn Sie persistente Kubernetes-Datenträger für den Zugriff auf Ihren Speicher verwenden, können Sie die Anzahl der Pods bestimmen,
die den Datenträger gleichzeitig anhängen können. Bestimmte Speicherlösungen - wie z. B. Blockspeicher - können jeweils nur von einem Pod gleichzeitig aufgerufen werden. Bei anderen Speicherlösungen können Sie denselben Datenträger über mehrere
Pods hinweg gemeinsam nutzen.
-
Prüfen Sie andere Speichermerkmale, die Ihre Wahl beeinflussen.
- Konsistenz: Die Zuverlässigkeit, dass eine Leseoperation die neueste Version einer Datei zurückgibt. Speicherlösungen bieten starke Konsistenz, wenn sichergestellt ist, dass immer die neueste Version einer Datei zurückgegeben
wird, oder schwache Konsistenz, wenn die Leseoperation nicht unbedingt die neueste Version zurückgibt. Häufig findet sich die schwache Konsistenz bei geografisch verteilten Systemen, in denen eine Schreiboperation zuerst repliziert werden muss.
- Leistung: Die Zeit, die benötigt wird, um eine Lese- oder Schreiboperation auszuführen.
- Permanenz: Die Zuverlässigkeit, dass eine Schreiboperation, die für Ihren Speicher festgeschrieben wurde, dauerhaft erhalten bleibt und nicht beschädigt wird oder verloren geht, selbst wenn sehr große Datenmengen (Gigabytes oder
Terabytes) gleichzeitig in den Speicher geschrieben werden.
- Ausfallsicherheit: Die Fähigkeit zur Wiederherstellung nach einem Ausfall und zur Fortsetzung der Operationen, auch wenn eine Hardware- oder Softwarekomponente fehlgeschlagen ist. Zum Beispiel, wenn Ihr physischer Speicher von
einem Stromausfall, einem Netzausfall oder einer Naturkatastrophe betroffen ist.
- Verfügbarkeit: Die Möglichkeit, den Zugriff auf Ihre Daten bereitzustellen, auch wenn ein Rechenzentrum oder eine Region nicht verfügbar ist. Die Verfügbarkeit Ihrer Daten wird in der Regel durch das Hinzufügen von Redundanz und
die Einrichtung von Failover-Mechanismen erreicht.
- Skalierbarkeit: Die Fähigkeit, die Kapazität zu erweitern und die Leistung auf der Basis Ihrer Anforderungen anzupassen.
- Verschlüsselung: Das Maskieren von Daten, um eine Einsicht durch unbefugte Benutzer zu verhindern.
-
Prüfen Sie die verfügbaren persistenten Speicherlösungen und wählen Sie die Lösung aus, die am besten für Ihre App- und Datenanforderungen geeignet ist. Weitere Informationen zu den verfügbaren Lösungen finden Sie im Speicherleitfaden.