Come strutturare un'applicazione SaaS?

0

Il problema

Ho bisogno di sviluppare un'applicazione Software-as-a-Service, che verrà utilizzata dai nostri clienti. L'applicazione contiene molti moduli (applicazione aziendale) che utilizzano moduli passo-passo. Gli utenti riempiranno questi moduli e vedranno dei progressi.

La Società (il nostro cliente) può avere una visione del loro dashboard, mostrando loro gli utenti, i prodotti e altre informazioni, incluse le informazioni aziendali e alcune personalizzazioni.

Una cosa che sto cercando di risolvere è: ho bisogno di un sottodominio per ciascuno dei miei clienti e ogni utente in azienda deve avere un sottodominio in Company.

Ad esempio, utilizzando il primo approccio (sopra), ad esempio, cosa avrò: API: .myapp.com / api / v1 Pagina di base del client (resa dalla mia applicazione): .com (CNAME da qualche parte) Pagina Base utente (resa dalla mia applicazione): ..com (CNAME a qualche parte)

Le cose che non riesco a capire come fare sono:

  1. È meglio sviluppare un'API REST, utilizzare gli standard per questo e creare un'applicazione Front-end separata (utilizzando Angular, Ember o altri framework). Quindi distribuisco l'API, ottengo il collegamento e lo installo sulla mia applicazione Angular. Questo è un buon approccio?
  2. Sviluppa un'applicazione standard, in cui la stessa applicazione si collega al database e renderizza le viste, dove la logica sarà su Modelli e controllori.
  3. Altro approccio? (Penso che l'utilizzo dei microservizi in questa fase sarà ingombrante.

Sulla base di questi approcci, ho alcune domande.

Nel primo caso:

  1. Penso che il modo migliore per l'API sia utilizzare un sottodominio basato sul mio dominio di avvio, come: .mycompany.com / api /. In questo modo, posso acquistare un jolly SSL e proteggere l'endpoint di ogni cliente. Ma quello che vedo in applicazioni come Stripe, sta usando un singolo endpoint, come: api.stripe.com con un SSL EV. Quindi, entrambi gli approcci sono buoni e sicuri?
  2. Quale è un buon approccio per il rendering del front-end? Basandosi sul fatto che sul front-end saranno i sottodomini jolly per ciascun utente.

Quindi, quale è un buon modo per svilupparlo?

Sfondo

Utilizzo Rails 4 e Postgres (per database multi-tenancy) e, se necessario, posso sviluppare utilizzando Angular.js o "viste statiche".

    
posta Bruno Alano 03.09.2015 - 15:04
fonte

3 risposte

5

Per il mio progetto attuale avevo requisiti simili come te. Ho deciso di utilizzare un server di backend che espone un'API REST. E per i cleint sto usando un server nginx, che gestisce i sottodomini e ospita l'applicazione AngularJS.

Il lato server controlla quale sottodominio sta usando il client e invia i dati corretti al client.

A mio parere, il vantaggio di questo approccio è che la comunicazione potrebbe essere facilmente crittografata con SSL (vedi Stripe).

Microsoft fornisce buone informazioni sull'architettura SAAS nel seguente articolo: link

    
risposta data 23.09.2015 - 14:43
fonte
0

Hai guardato la gemma dell 'appartamento? Non l'ho mai usato ma ho appena visto un video su gorails.com che penso possa aiutarti. Ce n'è una che usa la gemma e un'altra che la costruisce da zero.

    
risposta data 23.09.2015 - 05:38
fonte
0

Se stai pensando di usare Python, puoi usare Django per creare un'applicazione SaaS. Questo video Crea un'applicazione SaaS in Python django spiegherà come iniziare con SaaS.

    
risposta data 27.02.2018 - 11:34
fonte