Datastore - Implementieren von Microservices in AWS

Datastore

Der Datenspeicher wird verwendet, um die von den Microservices benötigten Daten zu erhalten. Beliebte Speicher für Sitzungsdaten sind In-Memory-Caches wie Memcached oder Redis. AWS bietet beide Technologien im Rahmen des verwalteten Amazon ElastiCache-Services an.

Das Einrichten eines Caches zwischen Anwendungsservern und einer Datenbank ist ein gängiger Mechanismus, um die Leselast in der Datenbank zu verringern. Dadurch können mitunter mehr Ressourcen für Schreibvorgänge genutzt werden. Caches können auch die Latenzzeiten verbessern.

Relationale Datenbanken sind zum Speichern strukturierter Daten und Business-Objekte nach wie vor sehr beliebt. AWS bietet sechs Datenbank-Engines (Microsoft SQL Server, Oracle, MySQL, MariaDB, PostgreSQL und Amazon Aurora) als verwaltete Services über den Amazon Relational Database Service (Amazon RDS) an.

Relationale Datenbanken sind jedoch nicht für die endlose Skalierung konzipiert. Daher kann die Anwendung von Techniken zur Unterstützung einer hohen Anzahl von Abfragen schwierig und zeitintensiv sein.

NoSQL-Datenbanken wurden entwickelt, um Skalierbarkeit, Leistung und Verfügbarkeit gegenüber der Konsistenz relationaler Datenbanken zu verbessern. Ein wichtiger Faktor von NoSQL-Datenbanken ist, dass sie in der Regel kein strenges Schema erzwingen. Die Daten werden über horizontal skalierbare Partitionen verteilt und über Partitionsschlüssel abgerufen.

Da Microservices jeweils für eine bestimmte Aufgabe konzipiert sind, verfügen sie typischerweise über ein vereinfachtes Datenmodell, das für die NoSQL-Persistenz von Vorteil sein kann. Es ist wichtig zu verstehen, dass NoSQL-Datenbanken andere Zugriffsmuster als relationale Datenbanken haben. Beispielsweise ist es nicht möglich, Tabellen zu verbinden. Wenn dies erforderlich ist, muss die Logik in der Anwendung implementiert werden. Sie können mit Amazon DynamoDB eine Datenbanktabelle zum Speichern und Abrufen beliebiger Datenmengen erstellen und unterschiedlichste Grade von Anforderungsdatenverkehr erfüllen. Die Leistung von DynamoDB liegt im einstelligen Millisekundenbereich. Es gibt jedoch Anwendungsfälle, die Reaktionszeiten in Mikrosekunden erfordern. Amazon DynamoDB Accelerator (DAX) bietet Caching-Funktionen für den Datenzugriff.

Darüber hinaus kann die Durchsatzkapazität des tatsächlichen Datenverkehrs mithilfe einer automatischen Skalierfunktion von DynamoDB dynamisch angepasst werden. Mitunter ist die Kapazitätsplanung jedoch aufgrund von hohen, kurzen Aktivitätsspitzen der Anwendung schwierig oder gar unmöglich. In diesen Fällen bietet DynamoDB eine On-Demand-Option mit einfachen nutzungsabhängigen Preisen. Mit der On-Demand-Funktion von DynamoDB lassen sich Tausende Anfragen pro Sekunde sofort und ohne Kapazitätsplanung bedienen.