Feedback su questo stack back-end [chiuso]

1

Sto pianificando di installare un'architettura scalabile in grado di fornire servizi Web su un'interfaccia REST in cui verrà inviato JSON come risultato. I servizi web saranno abbastanza semplici per un'applicazione CRUD Web 2.0.

Penso che javascript (nodejs + mongodb) sia una buona scelta per i seguenti motivi:

  • Facile trovare gli sviluppatori javascript
  • Buona prestazione
  • Facile da ridimensionare
  • Logica / lingua condivisa o possibile riutilizzo del codice tra linguaggio di query del database, back-end e client Web.
  • Esistono framework di test e registrazione per il nodo
  • Con gli esempi che ho visto, il nodo sembra leggero in termini di linee di codice necessarie per implementare servizi Web.

Domande:

  1. Penso di ridimensionare un'app di nodo che fornisce un servizio web un nodo centrale che sarà carico di routing / bilanciamento per ciascuno dei istanze di nodo. Che aiuterà anche a fare aggiornamenti continui, lo è c'è qualche pezzo di software già implementato che può andare bene compito?
  2. Indica tutti gli svantaggi o altri vantaggi che trovi in questo stack back-end
  3. Qualche altra scelta di buona persistenza diversa da MongoDB? Principalmente questa scelta deriva dal linguaggio di query javascript e dagli schemi JSON.
posta eliocs 10.02.2012 - 19:02
fonte

3 risposte

2

Easy to find javascript developers

È molto facile trovare sviluppatori JS mediocri. I buoni sono rari. Soprattutto una combinazione completa di front-end / nodo stack.

Shared logic/language or possible reuse of code between database query language, back-end and web-client.

Sicuramente possibile, ma non sopravvalutarlo troppo. Hai bisogno di qualche infrastruttura solida per far sì che ciò accada.

There are testing and logging frameworks for node

Esistono strutture di test e registrazione per tutto . Anche C.

Tuttavia, il nodo

  • Hai solide prestazioni
  • Scalabilità facile
  • semplificare la scrittura di servizi Web

Una raccomandazione che vorrei dare è di sostituire quel "router" con un bilanciamento del carico elastico decente

I think of scaling a node app which supplies a web service as having a central node which will be routing/balancing charge to each of the node instances. Which will also help doing seamless updates, is there any piece of software already implemented which can fit that task?

Si chiama ELB . Non reinventare quella ruota (e se lo fai diventare open source o /)

Please point all the disadavantages or other advantages you find in this back-end stack

Ciò implicherebbe la conoscenza di requisiti e caratteristiche specifici dell'applicazione. È una struttura sensata, è una pila sensata.

Any other good persistence choices other than MongoDB? Mainly this choice comes from the javascript query language and JSON schemas.

Ci sono un sacco di soluzioni noSQL. Vai a spiegare la tua esatta applicazione a un esperto noSQL e ottieni la sua opinione. Offritegli un caffè.

Altro quindi che l'unica cosa principale che hai dimenticato è nella cache di memoria (Redis) collegata ad ogni istanza di nodo.

L'altra cosa principale che hai dimenticato è come effettivamente architettare l'applicazione all'interno della finestra nodejs. Nel complesso, l'architettura a livello di sistema sembra decente. Consiglierei assolutamente nCore per l'infrastruttura delle applicazioni node.js.

    
risposta data 10.02.2012 - 19:20
fonte
4
  1. scalabile
  2. REST
  3. CRUD
  4. web 2.0
  5. nodejs
  6. mongodb

Un sacco di parole chiave hot che in realtà non significano molto. Potresti aver semplicemente detto "Sto pensando di costruire un webservice".

Personalmente non ho problemi con l'uso di JS - è un buon linguaggio, ma non penso che "trovare sviluppatori" sia una buona ragione per scegliere la lingua - i bravi programmatori possono codificare in qualsiasi lingua.

Ti consiglio di dare un'occhiata a couchDB. È un singolo software che, qui, può svolgere il ruolo di nodo e mongo. Si scalerà meglio individualmente rispetto alla scala Node e mongo insieme, ed è relativamente facile da usare se si può scrivere una mappa / ridurre la funzione.

MA, mi sembra che tu stia mettendo il carrello davanti al cavallo. Non è necessario preoccuparsi della scalabilità fino a quando la scalabilità non diventa un problema e la scalabilità è un buon problema da avere . Ti consiglierei di scrivere tutto nella lingua che conosci meglio e in grado di produrre il più veloce possibile, e preoccuparti del ridimensionamento quando devi ridimensionarlo.

    
risposta data 10.02.2012 - 20:49
fonte
2

33 & 1 / 3rding che non ti devi preoccupare della scala finché non ti devi preoccupare della scala. Personalmente non avrei scommesso la mia fattoria sul nodo a questo punto a meno che non avessi a disposizione alcuni hacker C capaci di risolverlo - è troppo giovane per guidare e non essere in grado di ricostruire il motore se hai bisogno di IMHO. Sarei anche dispiaciuto di mongodb: è veloce, ma a un costo piuttosto negativo in termini di integrità dei dati. CouchDb è probabilmente una scelta migliore se vuoi rimanere su * nix. RavenDb è convincente se questo non è un requisito. Una di queste opzioni potrebbe probabilmente eseguire l'intera app senza nodo.

In ogni caso, il mantra da ripetere non è scala web, è Prodotto minimo vitale.

    
risposta data 10.02.2012 - 22:29
fonte

Leggi altre domande sui tag