Wer für seine Azure-basierte Anwendung einen Caching Service nutzen möchte wird nach Studium der entsprechenden MSDN-Seiten möglicherweise etwas verunsichert bleiben. So gibt es in Microsoft Azure (Stand August 2014) sage und schreibe vier Alternativen für die Umsetzung von Caching:

Hinweise zur Auswahl des geeigneten Azure Cache Service finden sich auf der MSDN-Seite Which Azure Cache offering is right for me?

Ohne das Ergebnis der Empfehlungen komplett vorweg nehmen zu wollen, lässt sich daraus ableiten:

  1. Wann immer möglich (insbesondere bei neuen Projekten) sollte Azure Redis Cache als Cache verwendet werden.
  2. Sofern Redis nicht möglich ist, sollte vom Shared Cache kurzfristig (bis 01.09.2014) zum Managed Cache Service migriert werden.
  3. Für Cloud Services sind sowohl der Redis Cache als auch der In-Role-Cache sinnvoll.

Azure Redis Cache

Azure Redis Cache basiert auf dem Open Source Redis Cache Framework. Dieser wird von Microsoft verwaltet auf Azure bereitgestellt und von beliebigen Azure Anwendungen (Websites, Cloud Services, Virtual Machines) heraus zugreifbar. Redis Cache (Preview) ist in zwei Ausbaustufen verfügbar: Basic (ein Knoten, verschiedene Größen) und Standard (zwei Knoten (Master/Slave), mehrere Größen, 99,9% SLA). Während die anderen Cache Services nur einfache Schlüssel-Wert-Paare verwalten können, kann der Redis Cache auch mit Datenstrukturen wie Strings, Hashes, Listen, Sets und Sortierte Sets umgehen. Darüber hinaus unterstützt er Transaktionen, Pub/Sub-Pattern, Lua Scripting und Schlüssel mit begrenzter Lebensdauer.

Weitere Informationen zum Redis Cache unter:

Managed Cache Service

Der Managed Cache Service ist ein zentral bereitgestellter Cache Service, der – anders als der In-Role-Cache – von Cloud Services, Websites und Virtual Machines heraus zugänglich ist. Er basiert auf der AppFabric Cache Engine in Azure. Der Managed Cache wird in drei Ausbaustufen, die sich in Größenoptionen und einigen Funktionen unterscheiden (z.B. Notifications) angeboten: Basic, Standard und Premium. Das Anlegen eines Managed Cache Service ist derzeit (August 2014) nur über PowerShell möglich.

Weitere Informationen zum Managed Cache Service:

In-Role Cache

Dieser Cache läuft innerhalb von Cloud Service Rollen. Hierzu können entwicklerseitig entweder dedizierte Cache Rollen definiert werden, bei denen die gesamte Leistung der Rolleninstanzen für den Cache reserviert wird (dedicated), oder anteilig Leistung regulärer Web oder Worker Rollen für den Cache reserviert werden (co-located). Sofern eine Umkonfiguration des Cache erforderlich ist, muss der Cloud Service neu deployt werden. Durch die flexible Bereitstellung von Rollen und Instanzen sind quasi beliebige Cache-Größen möglich. Der In-Role Cache kann nur innerhalb von Cloud Services genutzt werden.

Weitere Informationen zum In-Role Cache:

Shared Cache

Dies ist der erste, in Microsoft Azure (damals noch Windows Azure genannt) angebotene Caching-Dienst. Dieser stellt an zentraler Stelle Caching-Funktionalität für Key-Value-Paare bereit. Nachdem dieser Cache als Multi-Mandanten-Dienst implementiert war (d.h. mehrere Azure Kunden sind zwar durch die Plattform voneinander getrennt, teilen sich aber die gleichen Ressourcen), kann die Performanz variieren (abhängig davon wie das Zugriffsverhalten der einzelnen Kunden ist).

Der Shared Cache wird am 01.09.2014 eingestellt. Kunden, die diesen Dienst nutzen, müssen ihre Anwendungen bis dahin auf einen der anderen Caching-Dienste migriert haben. Informationen hierzu:

Zusammenfassung

Folgende Tabelle gibt einen schnellen Überblick über die Caching Alternativen in Microsoft Azure:

Caching Service Eigenschaften Roadmap
Azure Redis Cache
  • Zentral bereitgestellt
  • Nutzbar von Websites, Cloud Services, Vitual Machines
  • Ablage von Schlüssel-Wert-Paaren, wobei Schlüssel Datenstrukturen wie Strings, Hashes, Listen, Sets und Sortierte Sets enthalten können
  • Unterstützung von Transaktionen, Pub/Sub, Notifications, Lua Scripting
  • Wählbare Lebensdauer von Schlüsseln
Empfehlung für alle neuen Projekte mit Caching Bedarf.
Managed Cache
  • Zentral bereitgestellt
  • Nutzbar von Websites, Cloud Services, Vitual Machines
  • Ablage von Schlüssel-Wert-Paaren
 
In-Role Cache
  • Caching-Funktion wird in Cloud Service Rollen bereitgestellt
  • Nutzbar nur aus Cloud Services.
  • Ablage von Schlüssel-Wert-Paaren
 
Shared Cache
  • Zentral bereitgestellt
  • Multi-Mandanten-Umgebung
  • Nutzbar von Websites, Cloud Services, Virtual Machines
  • Ablage von Schlüssel-Wert-Paaren
Wird am 01.09.2014 eingestellt.

Weitere Informationen