Come dovrei ospitare i nostri processi di lavoro scalabili?
https://softwareengineering.stackexchange.com/questions/152517
-
04-11-2019 - |
Domanda
Stiamo progettando una nuova architettura per un'azienda aziendale. I principi che abbiamo seguito finora non sono sviluppare ciò che puoi (possibile acquistare e) distribuire, cioè non reinventare alcuna ruota.
In questo modo abbiamo deciso CQRS, RabbitMQ, Riak e un sacco di altre cose. Tuttavia, dobbiamo ancora scrivere / alcuni / codice aziendale e questi saranno sotto forma di processi di lavoro, che consumerà comandi da una coda di messaggi e dopo eventuali effetti collaterali, producono eventi su un'altra coda di messaggi. L'idea alla base è che tramite il design dei consumatori concorrenti avremo un design scalabile subito.
Un'opzione è di scrivere un'infrastruttura di gestione che saprà:
- Distribuire il codice
- processi istanziati
- Uccidi i processi
- Aggiorna la configurazione
- eccetera
IE fornisce tolleranza ai guasti e scalabilità. Inoltre, questo è esattamente ciò che fa qualcosa come Gae e Heroku per te, ma in un ambiente pubblico e nella nostra organizzazione, il pubblico è cattivo.
La mia domanda è: esiste una soluzione fuori dalla scatola che possiamo usare per ospitare i nostri consumatori? Come un cloud privato o una piattaforma privata come servizio. Heroku o gae privato. Esiste una sorta di prodotto software o software con cui possiamo fare tutte queste cose e quindi ottenere scalabilità e tolleranza ai guasti sui nostri consumatori?
Nessuna soluzione corretta