creazione di una piattaforma per più webapp

2

Ho già creato una webapp nodejs che desidero rendere disponibile come servizio, ma non conosco i passaggi successivi per automatizzare l'intera operazione, in base ai seguenti passaggi:

  1. le persone vengono sul mio sito web e creano un account per una prova gratuita fornendo quello che potrebbe essere il nome di dominio per la loro versione della mia app (che diventerà un sottodominio sul mio server)

  2. l'immagine dell'app viene automaticamente impostata e avviata su provideddomain.mywebsite.com

  3. accedono al proprio account per iniziare a configurare la versione della mia app

  4. se a loro piace l'app possono acquistare o trasferire un dominio in modo che la loro versione dell'app sia accessibile da provideddomain.mywebsite.com a newdomain.com

Fondamentalmente, desidero offrire una piattaforma in cui i miei clienti possano utilizzare un'immagine della mia app (dietro il nome di fomain del loro dominio di scelta).
Penso di poter usare contenitori e kubernetes per avere qualcosa come un paas, ma non so se sono gli strumenti giusti per ottenere ciò che sto cercando.

So già come distribuire un'applicazione su openshift (contenitori) e ho pensato che ci fosse un modo per automatizzare l'intero processo. Molto simile a quello che fa WordPress quando crei un account e hai un sottodominio e tutto, pronto per essere utilizzato.

Qualcuno può indicarmi le risorse giuste?
altri suggerimenti, suggerimenti su alcuni passaggi che non ho menzionato saranno anche molto apprezzati.

    
posta Fabrice K. 02.12.2015 - 04:05
fonte

1 risposta

3

Un contenitore per client è ottimo se c'è sempre la possibilità che lo scarichino e lo eseguano altrove. Altrimenti, considera una architettura multi-tenant e salva i contenitori, le VM, ecc. Per aggiungere risorse alla tua piattaforma.

  • Per iniziare, avrai bisogno di un archivio dati del client principale. Ne avresti bisogno comunque, quindi non è un grande cambiamento. Utilizza questo archivio dati per tenere traccia dei tuoi clienti, del loro livello di servizio / fatturazione e del nodo / cluster dell'applicazione che li sta servendo.
  • Quando un potenziale cliente si iscrive, aggiungili all'archivio dati del cliente e assegnali a un app cluster appropriato. (Un cluster di app è una combinazione di server Web, endpoint di servizio e archivi dati.) Se la tua architettura è realmente multi-tenant, non è necessario creare un nuovo database o contenitore sul cluster. Sarà già pronto per i dati dell'applicazione. Il cliente può iniziare immediatamente a sperimentare - i loro dati sono logicamente partizionati (potrebbero essere fisicamente partizionati, ma questo è un altro argomento).
  • È probabile che la configurazione dell'applicazione sia archiviata nel cluster di app, anche se vorrai che le funzioni fatturabili siano tracciate anche nell'archivio dati principale.
  • Se il cliente desidera il proprio dominio, è semplice aggiungere l'host ai server Web e instradare le richieste in modo appropriato. Se vuoi essere attraente, puoi registrare domini per loro conto. Di nuovo, questo è probabilmente un altro argomento.
  • Questa configurazione non cambia la necessità di aggiungere risorse man mano che cresci. Rende solo la necessità di un nuovo contenitore, archivio dati o VM una scelta sulla crescita tua e non qualcosa che devi fare ogni volta che un cliente si iscrive.

Altre risorse:

risposta data 02.12.2015 - 05:03
fonte

Leggi altre domande sui tag