Wie man eine effiziente Multi-Tenant SaaS Architektur auf AWS aufbaut und skaliert

3 Minuten Lesedauer | 15. September 2024 Christian Bannes und Daniel Kneip
  • Architektur
  • SaaS
SaaS Architektur auf AWS

Problemstellung

Wenn Anwendungen effizient verschiedenen Nutzern bereitgestellt werden sollen, kommen oft Multi-Tenant Software-as-a-Service (SaaS) Lösungen zum Einsatz. Dabei können Betriebs- und Wartungskosten reduziert und das Einführen neuer Funktionen beschleunigt werden. Bei der Entwicklung von Multi-Tenant Anwendungen müssen verschiedene Faktoren abgewogen werden:

  • Wie können die Daten verschiedener Tenants für maximale Sicherheit getrennt werden, ohne Kosten und Performance negativ zu beeinflussen?
  • Wie kann die Anwendung effizient und kostengünstig skalieren, wenn die Anzahl der Tenants wächst?
  • Wie kann verhindert werden, dass die Nutzung eines Tenants Auswirkungen auf die Performance der Anwendung für einen anderen Tenant hat?
  • Wie können bestehende Lösungen und Systeme des Kunden integriert und spezifische Anpassungen für deren Geschäftsanforderungen vorgenommen werden?

Basierend auf unserer Erfahrung schlagen wir eine bewährte Kombination verschiedener Strategien vor, um die Herausforderungen zu bewältigen.

Lösung

Unsere Lösung kombiniert die Silo- mit der Pooling-Strategie, um die Herausforderungen bei Multi-Tenant Anwendungen zu bewältigen. Die Silo-Strategie trennt Tenant-Daten physisch, was hohe Datensicherheit bietet. Kernkomponenten und kritische Ressourcen werden pro Tenant in separaten AWS Accounts bereitgestellt. Dadurch werden Daten, Integrationen und kundenspezifische Anpassungen voneinander getrennt. Diese Strategie erhöht jedoch die Betriebskomplexität und kann die Kosten steigern, da Änderungen für jeden Tenant separat bereitgestellt werden müssen.

Das Pooling behebt diese Nachteile, muss jedoch sicherstellen, dass die hohe Last eines Tenants nicht die Performance anderer beeinträchtigt. Wir kombinieren die zentrale Anwendung mit dynamisch erzeugten Ressourcen für jeden Tenant, um flexible Skalierung und die Isolation der Daten zu gewährleisten. Dies erreichen wir durch den Einsatz Cloud-nativer Technologien. Gleichzeitig halten wir damit den Wartungs- und Betriebsaufwand gering. Alle benötigten Ressourcen und Konfigurationen werden automatisiert erzeugt, was den Betrieb und das Ausrollen neuer Features für alle Tenants vereinfacht.

Durch die Kombination von Silo- und Pooling Strategie und dem Einsatz von Cloud-nativen Technologien lassen sich die Vorteile aller Strategien nutzen und die Nachteile minimieren. So entsteht eine solide und zukunftssichere Architektur, die den hohen Ansprüchen an eine Multi-Tenant Lösung gerecht wird.

Technische Umsetzung

Technische Umsetzung

Die physische Trennung der Tenants erfolgt über einzelne AWS Accounts, um alle Ressourcen eines Tenants netzwerktechnisch zu isolieren und über Zugriffsbeschränkungen abzusichern. Um Zugang zur Anwendung zu erhalten, wird für jeden Tenant ein API Gateway in seinem Account bereitgestellt. Hier muss sich jeder Aufrufer authentifizieren. Optionale kundenspezifische Anpassungen können durchgeführt werden, bevor die Anfrage an die zentral bereitgestellte Anwendung weitergeleitet wird.

Interne Kommunikation erfolgt innerhalb von VPCs mittels VPC Lattice über das AWS Backbone. Dadurch wird eine private und sichere Kommunikation zwischen den Accounts ermöglicht. Komplexe Abhängigkeiten in der Architektur zwischen Tenant und Anwendung werden mit Infrastructure-as-Code (IaC) Deployments über CodePipeline abgebildet. Dies reduziert den Betriebsaufwand und vereinfacht es, neue Tenants anzubinden.

Um auch bei Lastspitzen und steigenden Anforderungen der Tenants schnell und flexibel zu skalieren, werden asynchrone Prozesse und Event-Driven Architecture mit einem service-orientierten Ansatz kombiniert. Durch die Nutzung von On-Demand Ressourcen, die dynamisch und ohne vorherige Kapazitätsplanung bereitgestellt werden, wird eine hohe Elastizität der Architektur bei gleichzeitig effizienter und kostengünstiger Ressourcennutzung erzielt.

Klingt spannend?

Sprechen Sie mit uns und erfahren Sie, wie auch Ihr Unternehmen von unserer Expertise profitieren kann.

Ihre Nachricht konnte leider nicht übermittelt werden, bitte versuchen Sie es erneut.