Manage tenants across multiple SaaS products on a single control plane (Gestione dei tenant su più prodotti SaaS su un unico piano di controllo (control-plane)) - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Manage tenants across multiple SaaS products on a single control plane (Gestione dei tenant su più prodotti SaaS su un unico piano di controllo (control-plane))

Creato da Ramanna Avancha (AWS), Jenifer Pascal (), Kishan Kavala (AWS) e Anusha Mandava () AWS AWS

Riepilogo

Questo modello mostra come gestire i cicli di vita dei tenant su più prodotti SaaS (Software as a Service) su un unico piano di controllo nel Cloud. AWS L'architettura di riferimento fornita può aiutare le organizzazioni a ridurre l'implementazione di funzionalità ridondanti e condivise nei singoli prodotti SaaS e fornire efficienze di governance su larga scala.

Le grandi aziende possono disporre di più prodotti SaaS in diverse unità aziendali. Questi prodotti spesso devono essere forniti per essere utilizzati da tenant esterni con diversi livelli di abbonamento. Senza una soluzione tenant comune, gli amministratori IT devono dedicare del tempo alla gestione di funzionalità indifferenziate su più SaaSAPIs, invece di concentrarsi sullo sviluppo delle funzionalità principali del prodotto.

La soluzione tenant comune fornita in questo modello può aiutare a centralizzare la gestione di molte delle funzionalità condivise dei prodotti SaaS di un'organizzazione, tra cui:

  • Sicurezza

  • Approvvigionamento per gli inquilini

  • Archiviazione dei dati degli inquilini

  • Comunicazioni con i tenant

  • Gestione del prodotto

  • Registrazione e monitoraggio delle metriche

Prerequisiti e limitazioni

Prerequisiti

  • Un account attivo AWS

  • Conoscenza di Amazon Cognito o di un provider di identità (IdP) di terze parti

  • Conoscenza di Amazon API Gateway

  • Conoscenza di AWS Lambda

  • Conoscenza di Amazon DynamoDB

  • Conoscenza dell'AWSIdentity and Access Management (IAM)

  • Conoscenza di AWS Step Functions

  • Conoscenza AWS CloudTrail e Amazon CloudWatch

  • Conoscenza delle librerie e del codice Python

  • Conoscenza del SaaSAPIs, compresi i diversi tipi di utenti (organizzazioni, inquilini, amministratori e utenti delle applicazioni), i modelli di abbonamento e i modelli di isolamento dei tenant

  • Conoscenza dei requisiti SaaS multiprodotto e degli abbonamenti multi-tenant dell'organizzazione

Limitazioni

  • Le integrazioni tra la soluzione tenant comune e i singoli prodotti SaaS non sono coperte da questo modello.

  • Questo modello implementa il servizio Amazon Cognito solo in una AWS singola regione.

Architettura

Stack tecnologico Target

  • Amazon API Gateway

  • Amazon Cognito

  • AWS CloudTrail

  • Amazon CloudWatch

  • Amazon DynamoDB

  • IAM

  • AWS Lambda

  • Amazon Simple Storage Service (Amazon S3)

  • Servizio di notifica semplice Amazon (AmazonSNS)

  • AWSFunzioni Step

Architettura Target

Il diagramma seguente mostra un esempio di flusso di lavoro per la gestione dei cicli di vita dei tenant su più prodotti SaaS su un unico piano di controllo nel Cloud. AWS

Flusso di lavoro per la gestione dei cicli di vita dei tenant su un unico piano di controllo.

Il diagramma mostra il flusso di lavoro seguente:

  1. Un AWS utente avvia azioni relative al provisioning dei tenant, al provisioning dei prodotti o all'amministrazione effettuando una chiamata a un endpoint Gateway. API

  2. L'utente viene autenticato da un token di accesso recuperato da un pool di utenti di Amazon Cognito o da un altro IdP.

  3. Le singole attività di provisioning o amministrazione sono eseguite da funzioni Lambda integrate API con API gli endpoint Gateway.

  4. L'amministrazione APIs della soluzione Common Tenant (per tenant, prodotti e utenti) raccoglie tutti i parametri di input, le intestazioni e i token richiesti. Quindi, l'amministrazione APIs richiama le funzioni Lambda associate.

  5. IAMle autorizzazioni sia per l'amministrazione che per APIs le funzioni Lambda sono convalidate dal servizio. IAM

  6. Le funzioni Lambda archiviano e recuperano i dati dai cataloghi (per tenant, prodotti e utenti) in DynamoDB e Amazon S3.

  7. Dopo la convalida delle autorizzazioni, viene richiamato un flusso di lavoro AWS Step Functions per eseguire un'attività specifica. L'esempio nel diagramma mostra un flusso di lavoro per il provisioning dei tenant.

  8. Le singole attività del flusso di lavoro AWS Step Functions vengono eseguite in un flusso di lavoro predeterminato (macchina a stati).

  9. Tutti i dati essenziali necessari per eseguire la funzione Lambda associata a ciascuna attività del flusso di lavoro vengono recuperati da DynamoDB o Amazon S3. Potrebbe essere necessario fornire altre AWS risorse utilizzando un modello. AWS CloudFormation

  10. Se necessario, il flusso di lavoro invia una richiesta di fornitura di AWS risorse aggiuntive per un prodotto SaaS specifico all'account di AWS quel prodotto.

  11. Quando la richiesta ha esito positivo o negativo, il flusso di lavoro pubblica l'aggiornamento dello stato come messaggio su un argomento di AmazonSNS.

  12. Amazon SNS è abbonata all'SNSargomento Amazon del flusso di lavoro Step Functions.

  13. Amazon invia SNS quindi l'aggiornamento dello stato del flusso di lavoro all'AWSutente.

  14. I registri delle azioni di ciascun AWS servizio, inclusa una traccia di controllo delle API chiamate, vengono inviati a CloudWatch. È possibile configurare regole e allarmi specifici CloudWatch per ogni caso d'uso.

  15. I log vengono archiviati in bucket Amazon S3 per scopi di controllo.

Automazione e scalabilità

Questo modello utilizza un CloudFormation modello per aiutare ad automatizzare l'implementazione della soluzione tenant comune. Il modello può anche aiutarti a scalare rapidamente verso l'alto o verso il basso le risorse associate.

Per ulteriori informazioni, consulta Lavorare con AWS CloudFormation i modelli nella Guida AWS CloudFormation per l'utente.

Strumenti

Servizi AWS

  • Amazon API Gateway ti aiuta a creare, pubblicare, gestire RESTHTTP, monitorare e proteggere WebSocket APIs su qualsiasi scala.

  • Amazon Cognito fornisce autenticazione, autorizzazione e gestione degli utenti per app Web e mobili.

  • AWS CloudTrailti aiuta a controllare la governance, la conformità e il rischio operativo del tuo AWS account.

  • Amazon ti CloudWatch aiuta a monitorare i parametri delle tue AWS risorse e delle applicazioni su cui esegui AWS in tempo reale.

  • Amazon DynamoDB è un servizio di database SQL No completamente gestito che offre prestazioni veloci, prevedibili e scalabili.

  • AWSIdentity and Access Management (IAM) consente di gestire in modo sicuro l'accesso alle AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.

  • AWSLambda è un servizio di elaborazione che ti aiuta a eseguire il codice senza dover effettuare il provisioning o gestire i server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

  • Amazon Simple Notification Service (AmazonSNS) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.

  • AWSStep Functions è un servizio di orchestrazione serverless che consente di combinare funzioni AWS Lambda e altri AWS servizi per creare applicazioni aziendali critiche.

Best practice

La soluzione in questo modello utilizza un unico piano di controllo per gestire l'onboarding di più tenant e fornire l'accesso a più prodotti SaaS. Il piano di controllo aiuta gli utenti amministrativi a gestire altri quattro piani specifici per funzionalità:

  • Piano di sicurezza

  • Piano del flusso di lavoro

  • Piano di comunicazione

  • Piano di registrazione e monitoraggio

Epiche

AttivitàDescrizioneCompetenze richieste

Stabilisci i requisiti per la tua piattaforma SaaS multi-tenant.

Stabilisci requisiti dettagliati per quanto segue:

  • Tenant

  • Utenti

  • Roles

  • Prodotti SaaS

  • Sottoscrizioni

  • Scambi di profili

Architetto cloud, amministratore AWS di sistema

Configura il servizio Amazon Cognito.

Segui le istruzioni in Introduzione ad Amazon Cognito nella Amazon Cognito Developer Guide.

Architetto del cloud

Configura le IAM politiche richieste.

Crea le IAM politiche richieste per il tuo caso d'uso. Quindi, associa le politiche ai IAM ruoli in Amazon Cognito.

Per ulteriori informazioni, consulta Gestire l'accesso utilizzando le policy e il controllo degli accessi basato sui ruoli nella Amazon Cognito Developer Guide.

Amministratore del cloud, architetto del cloud, sicurezza AWS IAM

Configura le API autorizzazioni richieste.

Configura le autorizzazioni di accesso al API gateway utilizzando IAM ruoli e policy e autorizzatori Lambda.

Per istruzioni, consulta le seguenti sezioni della Amazon API Gateway Developer Guide:

Amministratore cloud, architetto cloud
AttivitàDescrizioneCompetenze richieste

Crea i cataloghi di dati richiesti.

  1. Crea tabelle DynamoDB per archiviare i dati per i cataloghi degli utenti. Assicurati di includere gli attributi e i ruoli utente. Inoltre, assicuratevi di eseguire la modellazione dei dati sulle tabelle del catalogo per mantenere gli attributi obbligatori e facoltativi per ogni utente e ruolo.

  2. Crea tabelle DynamoDB per archiviare i dati per i cataloghi di prodotti. Assicurati di modellare i casi d'uso specifici per i tuoi prodotti SaaS.

  3. Crea tabelle DynamoDB per archiviare i dati per i cataloghi dei tenant. Assicurati di configurare modelli di abbonamento per tenant, prodotti e licenze per abbonamenti multi-SaaS e tag.

Per ulteriori informazioni, consulta Configurazione di DynamoDB nella Amazon DynamoDB Developer Guide.

DBA
AttivitàDescrizioneCompetenze richieste

Crea funzioni Lambda e API Gateway APIs per eseguire le attività richieste sul piano di controllo.

Crea funzioni Lambda e API gateway separati APIs per aggiungere, eliminare e gestire quanto segue:

  • Utenti

  • Tenant

  • Prodotti

Per ulteriori informazioni, consulta Using AWS Lambda with Amazon API Gateway nella AWSLambda Developer Guide.

Sviluppatore di app
AttivitàDescrizioneCompetenze richieste

Identifica le attività che i flussi di lavoro di AWS Step Functions devono eseguire.

Identifica e documenta i requisiti dettagliati del flusso di lavoro AWS Step Functions per quanto segue:

  • Utenti

  • Tenant

  • Prodotti

Importante

Assicurati che le principali parti interessate approvino i requisiti.

Proprietario dell'app

Crea i flussi di lavoro AWS Step Functions richiesti.

  1. Crea i flussi di lavoro richiesti per utenti, inquilini e prodotti in AWS Step Functions. Per ulteriori informazioni, consulta la AWSGuida per sviluppatori Step Functions.

  2. Identifica i meccanismi di gestione dei tentativi e degli errori. Per ulteriori informazioni, consulta Gestione degli errori, nuovi tentativi e aggiunta di avvisi a Step Function State Machine sul blog. AWS

  3. Implementa le fasi del flusso di lavoro utilizzando le funzioni Lambda. Per istruzioni, consulta Creazione di una macchina a stati Step Functions che utilizza Lambda nella AWSStep Functions Developer Guide.

  4. Integra qualsiasi servizio esterno con AWS Step Functions in base alle esigenze.

  5. Gestisci lo stato di ogni flusso di lavoro in una tabella DynamoDB e comunica lo stato di ogni flusso di lavoro utilizzando Amazon. SNS

Sviluppatore di app, Build lead
AttivitàDescrizioneCompetenze richieste

Crea SNS argomenti Amazon.

Crea SNS argomenti Amazon per ricevere notifiche su quanto segue:

  • Stati del flusso di lavoro

  • Errori

  • Tentativi

Per ulteriori informazioni, consulta Creating an SNS topic nella Amazon SNS Developer Guide.

Proprietario dell'app, Cloud architect

Sottoscrivi gli endpoint a ogni SNS argomento di Amazon.

Per ricevere messaggi pubblicati su un SNS argomento Amazon, devi sottoscrivere un endpoint per ogni argomento.

Per ulteriori informazioni, consulta l'argomento Abbonamento a un SNS argomento Amazon nell'Amazon SNS Developer Guide.

Sviluppatore di app, architetto cloud
AttivitàDescrizioneCompetenze richieste

Attiva la registrazione per ogni componente della soluzione tenant comune.

Attiva la registrazione a livello di componente per ogni risorsa nella soluzione tenant comune che hai creato.

Per le istruzioni, consulta quanto segue:

Nota

Puoi consolidare i log di ogni risorsa in un account di registrazione centralizzato utilizzando le policy. IAM Per ulteriori informazioni, consulta Registrazione centralizzata e protezioni di sicurezza per più account.

Sviluppatore di app, amministratore di sistema, amministratore cloud AWS
AttivitàDescrizioneCompetenze richieste

Crea CloudFormation modelli.

Automatizza l'implementazione e la manutenzione della soluzione Common Tenant completa e di tutti i suoi componenti utilizzando CloudFormation i modelli.

Per ulteriori informazioni, consulta la Guida per l'utente AWS CloudFormation .

Sviluppatore di app, DevOps ingegnere, sviluppatore CloudFormation

Risorse correlate