Back end basato su Microservices - concept

1

Ho intenzione di costruire un back-end basato sui microservizi. La seguente figura presenta la mia idea attuale:

Duecaratteristicheimportantisono:

  • caricamentoditestoe/ofilevideodigrandidimensioni
  • streamvideo:mostral'utentenell'appWebenelleapplicazionimobilinative

Lostacktecnologicononèfinalmenteimpostato,mainizialmentepensoa:

  • webapp-ReactJs/Angular
  • appdibackend-RubyonRails

Hoiseguentidubbisulmioattualeconcetto:

  1. IlgatewayAPIdovrebbefunzionarecomerouter,chereindirizzalerichiestedegliutentiaspecificimicroservizi?Oppure...dovrebbeessereun'appdedicata(adesempioRubyonRailsApp)conAPI?
  2. Comerenderel'autorizzazione?Dovreiusareilmicroserviceseparatoperquesto?Diciamochel'utentecaricailfileelasuarichiestadovrebbeandarealterzomicroservizio:"Big Data Upload". Dove e quando dovrei autorizzare il suo accesso? In quel microservice o prima nel gateway API? O forse l'autenticazione dovrebbe essere fatta anche in "Autenticazione microservice"?
  3. Caricamento di file di grandi dimensioni - diciamo che l'utente desidera trasferire un file di grandi dimensioni (video o file di testo compresso con dati grezzi) dall'app mobile al back-end tramite HTTP. La sua richiesta arriva a API Gateway e quindi viene reindirizzato al microservizio "Big Data Upload". App salva il file nell'archivio oggetti. È la strada giusta per caricare i file? Oppure potrei fare qualche scorciatoia per rendere più breve la rotta del file?
  4. Flusso video: quando l'utente carica un file video, desidero inserirlo in Risorse (Object Storage, ad esempio Amazon S3). È sufficiente presentare questo video agli utenti nell'app Web o nell'app mobile? (Accanto al servizio di transcodifica e CDN)
  5. Bilanciamento del carico - È ragionevole utilizzare il bilanciamento del carico per controllare il flusso in istanze di microservizi (nell'immagine tra gateway API e microservizi verdi)? O non è un buon approccio perché possiamo perdere alcune informazioni su richiesta / destinatario / utente o anche API Gateway sarebbe un "collo di bottiglia" più significativo?
  6. Questo concetto di architettura ha il buon potenziale per una facile scalabilità, secondo lei? Ovviamente, omettendo una configurazione hardware e software.

Grazie in anticipo per il tuo aiuto e suggerimenti!

    
posta nicq 14.09.2016 - 08:48
fonte

0 risposte

Leggi altre domande sui tag