21 marca 2021

Aplikacja multi tenant w .NET

Opis

Podczas prezentacji omówię, czym jest aplikacja multi-tenant. Z czego się składa, jakie problemy rozwiązuje i jakie wprowadza nowe. Zobaczysz również, w jaki sposób zaimplementować aplikację multi-tenant w .NET 5 oraz Azure.

Przykład

Przykład do tej prezentacji znajduje się na githubie: https://github.com/danielplawgo/MultiTenant. Sam tam tak naprawdę dwa przykłady, które pokazują dwa różne podejścia.

Demo1 pokazuje rozwiązanie, który można by w łatwy sposób zastosować do aplikacji single tenant podczas jej migracji do multi tenant. Aby taka migracja była by w miarę łatwa do osiągnięcia niedużym nakładem pracy. Dlatego w tym przykładzie zastosowałem podejście w dedykowaną bazą danych dla poszczególnych tenantów/organizacji. Natomiast do określenie tenanta zostało wykorzystane podejście z adresem url.

Demo2 natomiast to podejście z jedną bazą danych, w której każda z tabel zawiera kolumnę TenantId. Gdzie następnie w zapytaniach do bazy danych dorzucany jest zawsze warunek w WHERE, który odpowiednio filtruje dane. Do tego wykorzystałem filtrowanie z Entity Framework Plus. W tym przykładzie tenant jest zapisywany w tokenie użytkownika, a adres url aplikacji jest identyczny dla wszystkich tenantów.

Wpisy

Jestem w trakcie przygotowywania mini serii wpisów poświęcony tematowi budowania aplikacji multi tenant. W najbliższych tygodniach pojawi się kilka wpisów z tej tematyki.

Ich aktualna lista to:

  • Wprowadzenie do multi tenant
  • Jak określić tenanta
  • Dedykowana baza danych dla tenanta
  • Jedna baza danych dla wszystkich tenantów