Definire l'architettura per l'applicazione con targeting per due paesi diversi

0

In questo scenario.

  • Ho un'applicazione destinata a due Paesi, comunque la stessa lingua.
  • Il codice è lo stesso, almeno, in questa fase, non è possibile prevedere il futuro.
  • Ogni paese ha un database isolato.
  • La distinzione viene effettuata tramite il sottodominio (ad es. pt.mywebsite.com)
  • Attualmente sto pensando di utilizzare lo stesso codice e la stessa istanza dell'applicazione per entrambi i paesi.

I problemi:

  • Devo controllare sempre qual è il sottodominio per ogni richiesta e quindi impostare il database corretto. Sembra una cattiva pratica.
  • Le modifiche al codice relative a un Paese possono rompere l'altro.
  • Se ho bisogno di fermare la macchina o il server web, entrambi i Paesi rimarranno bassi.

La decisione che devo prendere è, dovrei avere due app isolate, con codice isolato, un server web isolato o dovrei usare lo stesso codice e il server web per entrambi i paesi?

    
posta anvd 26.11.2016 - 06:00
fonte

2 risposte

1

Isolare le applicazioni significa che un crash in uno non farà crollare l'altro. Tuttavia, raddoppia anche il lavoro di amministrazione del sistema. Se il tuo codice è robusto e difficile da implementare, o ha molte dipendenze che dovrebbero essere aggiornate e applicate in patch, allora probabilmente ha più senso mantenere solo uno stack. Se il codice non è molto robusto, o la distribuzione è stata semplificata al punto in cui è come installare un RPM, probabilmente ha più senso tenere isolate le applicazioni.

    
risposta data 26.11.2016 - 06:49
fonte
0

Non vedo perché sarebbe una cattiva pratica cambiare il database in base al dominio. Quindi alcuni modi per implementarlo sono:

  • Modifica dinamica della configurazione: implementazione di una classe di configurazione con alcune proprietà come la stringa di connessione e qualsiasi altra cosa che sta per cambiare.

  • Non mi piace questo, ma potresti creare una tabella nello stesso database per ogni lingua e cambiare la tabella a cui ti riferisci in base al dominio.

Ovviamente funziona solo se i dati nei due database hanno informazioni diverse.

Se condividi tra i due database, commenta per trovare un approccio diverso.

    
risposta data 26.11.2016 - 07:40
fonte

Leggi altre domande sui tag