Che cosa è esattamente un'applicazione multi-tenant?

3

Secondo la definizione disponibile online " Multi-tenancy è un'architettura in cui una singola istanza di un'applicazione software serve più clienti ". Significa che ho un sito Web di ristorante o scuola e fornisco l'accesso a diversi ristoranti o scuole per utilizzare la mia applicazione con i propri dati utilizzando le credenziali che fornisco una volta acquistato il mio prodotto di gestione scolastica. Come il mio sito web è come schoolmanagement.com e offro diversi sottodomini a clienti di scuole diverse come school1.schoolmanagement.com & school2.schoolmanagement.com ma il codice è lo stesso dietro entrambi questi sottodomini. Entrambe le scuole hanno diverse funzionalità o temi che dipendono dal loro database separato. Quindi ho bisogno di fornire schoolmanagement.com per l'accesso e una volta che il mio client effettua il login in base alle credenziali di accesso reindirizzo al loro url, ad esempio school1.schoolmanagement.com .

Questa è la mia comprensione dell'applicazione multi-tenant. La mia comprensione è giusta? Esiste un'applicazione multi-tenant online che posso seguire.

    
posta Nomi Ali 24.06.2017 - 14:42
fonte

2 risposte

4

Sì, è così. Ma la definizione di wikipedia non è abbastanza generale. Non affronta architetture multilivello o forme più recenti di architettura come SOA o microservizi.

Multi-tenancy riguarda i sistemi software e isolamento dei dati . Alcuni esempi:

  • un sistema multilivello con un database univoco può essere multi-tenant. Esempio: un sistema SAP è composto da un back-end del database e da una coppia di server di applicazioni Web che espongono in modo scalabile servizi Web. È multi-tenant: è possibile aggiungere un nuovo cliente senza modificare l'installazione del software in esecuzione e diversi clienti possono utilizzare il sistema senza conoscersi l'un l'altro. I dati sono completamente isolati (tecnologia proprietaria).
  • il tuo sistema è composto da uno o più processi che eseguono servizi Web esposti a clienti diversi tramite nomi di dominio diversi (ma sono sempre gli stessi processi che eseguono il server). L'isolamento dei dati è ottenuto con database separati. È definitivamente multi-tenant.
  • un sistema di microservizi potrebbe eseguire analogamente diversi gruppi di servizi web collegati in modo approssimativo, ciascuno con un proprio micro-database. Se necessario per scalare, è possibile avviare nuovi cloni degli stessi microservizi e tramite alcune funzionalità di registrazione trovare i loro peer e connettersi automaticamente a loro, offrendo all'utente il comportamento di una singola applicazione. Quindi ci sono due scenari possibili:
    • se, quando si desidera servire un nuovo cliente, è necessario avviare un nuovo set separato di microservizi e organizzare che i microservizi per un cliente si colleghino solo ai microservizi relativi allo stesso cliente, quindi è single-tenant.
    • ma se potessi servire nuovi clienti utilizzando le istanze in esecuzione (e i nuovi microservizi sarebbero necessari solo per le prestazioni), allora è multi-tenant
risposta data 24.06.2017 - 16:47
fonte
1

Direi di sì, la tua comprensione è fondamentalmente corretta. L'applicazione è condivisa da più clienti e anche i dati di ciascun cliente vengono riportati nel database. La condivisione dello stesso codice senza che i dati di altri clienti venissero dati nello stesso database probabilmente non sarebbero considerati multi-tenant.

    
risposta data 24.06.2017 - 15:09
fonte

Leggi altre domande sui tag