Bei Multi-Tenancy sollen sich die Consumer, die selben zugrundelegenden Ressourcen teilen.
Es gelten dabei zwei verschiedene Sichtweisen die SaaS Sicht und die PaaS Sicht.
SaaS Perspektive
Es existiert ein großes Softwaresystem innerhalb der Cloud, dass viele Mandanten nutzen. z.B. Salesforce in der Unternehmen Kundendaten verwalten oder Marketingkampagnen durchführen. Jeder Kunde hat dadurch eine andere Sicht auf die Ressource bzw. diese Daten, die innerhalb der Applikation verwaltet werden. Dieses Vorhaben kann durch unterschiedlich Formen wie simple Multi-Tenancy und Fine Grain Multi-Tenancy realisiert werden. Simple Multi-Tenancy wird dadurch , dass separate Installationen der Software verbreitet werden, die dann bei den Cloud Anbietern auf verschiedenen Instanzen gehostet wird. Dabei sind die Systeme voneinander isoliert. Diese Maßnahme widerspricht allerdings den Cloud Prinzipien, weil so kein Resource Pooling betrieben werden kann. Zusätzlich werden bei dieser Herangehensweise nur Ressourcen dupliziert.
Um das Ganze effizienter zu realisieren wird ein großes System gehostet und innerhalb dieses Systems werden die Kunden voneinander isoliert und abgegrenzt indem, die Zugriffsmöglichkeiten auf die Daten beschränkt werden. Einerseits ist dieser Weg effizienter, weil nicht die gesamten Installationen für jeden einzelnen Kunden verwaltet werden müssen und anderseits wirtschaftlicher weil die Ressourcen besser genutzt und verteilt werden. Dadurch wird Fine Grain Multi-Tenancy erreicht.
PaaS Perspektive
Bei Platform as a Service wird die Mandantenfähigkeit durch Virtualisierung ermöglicht. So können mehrer Kunden ihre Software isoliert auf bereitgestellten VMs bzw. Containern, getrennt von andern Kunden, aufsetzen. Der Code jedes Kunden ist isoliert.
Beide Perspektiven sind eine große technische Herausforderung für Cloud Anbieter
Applikationsebene - SaaS
Alle Consumer wie z.B. Salesforce Nutzer verwenden dieselbe Applikation. Haben aber eine eigene Instanz aus der sie keine anderen weiteren Benutzer merken sollten. Consumer sind in der Lage, dass Look and Feel der Applikation bzw. Anwendungsschnittstellen anzupassen, um ihr eigenes Corporate Identity zu realisieren. Die Consumer haben die Möglichkeit ein leichtes Customizing durchzuführen. Dadurch werden die Prozesse beeinflusst in derer Logik, Regeln und dessen Abläufe. Unterschiedliche Datenmodelle spielen in diesen System eine große Rolle. Es wird die Frage geklärt welche Daten die Anwender benötigen und welchen Daten dargestellt werden müssen. Durch die Zugangskontrolle werden die Rechte Rollen usw. geklärt.
Anforderungen
Isolierung einerseits für Container und anderseits für Mandanten untereinander.
Datensicherheit, Verfügbarkeit und die Ressourcenauslastung sind weitere Anforderungen.
Recovery-Prozeduren müssen kundenspezifischen Anforderungen genügen.
Die Applikation soll getrennt voneinander erweitert werden durch Upgrades oder Modifikationen.
Die Skalierung richtet sich an die unterschiedlichen Unternehmen, die wiederum unterschiedliche Ansprüche haben wie Start-Ups etc.
Das Messgeschäft und die Isolation, der verschiedenen Datenschichten sind weitere Anforderungen.
Unterscheidung zwischen Multi-Tenancy und der Virtualisierung
Virtualisierung
Bei der Virtualisierung existieren verschiedene virtuelle Kopien innerhalb einer bestimmten Serverumgebung.
Diese Kopien werden auf einen phyischen Server gemeinsam gehostet. Dadurch werden verschiedene Systeme gehostet und diese Systeme können anderen Consumern zur Verfügung gestellt werden. Der Consumer kann danach die komplette Konfiguration inklusive des Betriebsystems selber bestimmen.
Multi-Tenancy
Es existiert ein physischer oder virtueller Server und dieser bietet eine Anwendung an alle Consumer.
Anwendungsumgebung bei Multi-Tenancy
Die unterste Ebene ist die Hardware bzw. die Betriebssystemschicht. Die darauf liegende Ebene bildet das Management, was in dem konkreten Fall die Ressourcen Ordnerdienste und Sicherheit zur Verfügung stellt, als auch Provisionierung die über den Management Layer geregelt wird. Über dieser Ebene läuft dann die eigentliche Anwendung und Instanz, um die es bei Multi-Tenancy geht.
Es existieren unterschiedliche Presentation Layers. Das bedeutet, dass die Mandanten die gleiche Software verwenden aber jeder hat sein eigenes Look and Feel bzw. den individuellen Prozessverlauf. Der Metadaten Layer ist für die Zuordnung notwendig und weist jeden Mandanten seine individuelle Sicht zu. Innerhalb der Datensicht können z.B. Shared Tables integriert sein. Das bedeutet das die Consumer auf der gleichen Datenbank arbeiten aber in unterschiedlichen Tabellen. Diese Eigenschaft erhöht die Wirtschaftlichkeit.
Es existieren noch andere Modelle, um die Datenressourcen auf verschiedene Consumer aufzuteilen.
Class 1 visualisiert das simple Mutli-Tenancy über die VM-Lösung. Class 2 ist der Entwurf das es einen Datenbankserver gibt dieser verwendet eine Virtualisierungsschicht, die dadurch mehr virtuelle Datenbankserver erzeugt und dadurch wird erreicht das jeder Consumer seine eigene Datenbank hat. Class 3 verwendet eine physikalische Datenbank und keinen eigenständigen Server mehr. Diese VM Datenbank wird durch die Datenbankvirtualisierungsschicht dupliziert und ermöglicht die Nutzung von privaten Tabellen. Class 4 ist die Option die, die feinste Granularität ermöglicht. Diese Option funktioniert wie die oben bereits genannt, dass sich Consumer eine Datenbank teilen. Diese Teilung wird durch die Schemavirtualisierung der Datenbanktabellen ermöglicht.
Die Teilung einer Datenbank birgt Vorteile und Nachteile mit sich. Jeder Consumer hat ein bestimmtes Tabellenlayout. Wenn aber alle die gleiche Tabelle nutzen, die über die Tennant ID geregelt wird, bleiben bestimmte Felder bei einigen Consumern einfach leer, weil diese in dessen Tabellenlayout nicht berücksichtigt werden.
Multi-Tenancy Herausforderungen
Die Herausforderung bei Multi-Tenancy konzentriert sich auf vier wesentliche Bereiche einmal die Sicherheit, die Kapazitätsoptimierung, die Service Delivery und das Monitoring. Bei der Sicherheit stehen die Schutzmaßnahmen im Vordergrund und wie die einzelnen Virtualisierungstechnologien auf den verschiedenen Ebenen in diese Schutzmaßnahmen eingebunden werden. Bei nicht einhalten dieser Maßnahmen drohen dem Cloud Provider hohe Vertragsstrafen, die dieser entrichten muss an all seine Consumer. Die Kapazitätsoptimierung kümmert sich um die optimale Mandantenverteilung, um möglichst effizient die vorhandenen Computingressourcen einzusetzen, um die Kosten zu minimieren. An dieser stelle spielt die Cloud Elastizität eine großere Rolle, weil die Kapazität sich ständig an veränderte Anforderungen ausrichten muss. Die Service Delivery ist die Einhaltung von bestehenden SLAs und dessen Verfügbarkeitsklauseln. Das Monitoring hilft um Ausfälle zu vermeiden und um Leistungsspitzen frühzeitig zu erkennen.
Die folgende Grafik zeigt wie die oberen geschilderten Class 1-4 Modelle sich untereinander unterscheiden: