[OT] node.js e apache, consigli su come gestire più app

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[OT] node.js e apache, consigli su come gestire più app

Giuseppe Naponiello
Buongiorno lista,
vado al dunque.
Dopo anni di utilizzo di php ho avuto la possibilità di sviluppare una Progressive Web App...e mi si è aperto un mondo!
Per interesse personale avevo già smanettato con qualche framework tipo angular, react e vue, ed ho iniziato a studiarmi i service worker e workbox.
Ma se volessi mettere in produzione app basate su node?
Ho visto che fare il deploy su server remoto (apache o nginx) è possibile con proxy pass, e diversi tutorial consigliano di "demonizzare" node per renderlo sempre attivo.
Ma nel caso di più app qual'è, secondo la vostra esperienza, il modo migliore per gestire il tutto? Creando un demone per ogni app che voglio pubblicare, questa cosa come incide sulle prestazioni di apache?
Grazie per i consigli.

Buona giornata

-beppe-

--
Giuseppe Naponiello

Arc-Team srl
piazza Navarrino, 13 - 38023Cles (TN) 
C.F. e P. IVA IT-01941600221 
cell.
 +393476846599
mail: [hidden email]
pec: [hidden email]
101 | www.arc-team.com
110 | http://arc-team-open-research.blogspot.it/
Reply | Threaded
Open this post in threaded view
|

Re: [OT] node.js e apache, consigli su come gestire più app

Alessandro Pellizzari-4
On 24/05/2019 09:30, Giuseppe Naponiello wrote:

> Dopo anni di utilizzo di php ho avuto la possibilità di sviluppare una
> Progressive Web App...e mi si è aperto un mondo!
> Per interesse personale avevo già smanettato con qualche framework tipo
> angular, react e vue, ed ho iniziato a studiarmi i service worker e workbox.

Se non ti serve il server-side-rendering o l'isomorfismo puoi anche
servire direttamente il frontend tramite apache o nginx. Non hai bisogno
di node.js

> Ma se volessi mettere in produzione app basate su node?
> Ho visto che fare il deploy su server remoto (apache o nginx) è
> possibile con proxy pass, e diversi tutorial consigliano di
> "demonizzare" node per renderlo sempre attivo.
> Ma nel caso di più app qual'è, secondo la vostra esperienza, il modo
> migliore per gestire il tutto? Creando un demone per ogni app che voglio
> pubblicare, questa cosa come incide sulle prestazioni di apache?

Dipende cosa hai a disposizione.

Noi in azienda, per esempio, dockerizziamo tutto e pubblichiamo tramite
un load balancer (nginx) dentro kubernetes. Io, per roba personale,
faccio una cosa simile: dockerizzo, pusho su un repo privato, deployo
con ansible e ho traefik configirato per integrarsi con il daemon docker
per "trovare" il pod.

In alternativa puoi sempre lanciare node.js anche più volte (su porte
interne diverse) e puntare il reverse proxy (apache, nginx, traefik,
quello che preferisci) in base al dominio.

In questo caso ti consiglio di usare qualcosa tipo nodemon che restarta
node nel caso muoia. Di solito muore a causa di memory leak nel codice
js o a causa di bug in qualche pacchetto npm che compila codice nativo.

Tieni conto che di default node.js usa un solo core, quindi in base a
quello che vuoi fare potrebbe anche essere utile lanciare n istanze
(n=numero di core) e avere un load balancer davanti anche su una sola
macchina. :)

Bye.

Reply | Threaded
Open this post in threaded view
|

Re: [OT] node.js e apache, consigli su come gestire più app

gollum1-3
In reply to this post by Giuseppe Naponiello
Il 24 maggio 2019 10:23:43 CEST, Giuseppe Naponiello <[hidden email]> ha scritto:

>Buongiorno lista,
>vado al dunque.
>Dopo anni di utilizzo di php ho avuto la possibilità di sviluppare una
>Progressive Web App...e mi si è aperto un mondo!
>Per interesse personale avevo già smanettato con qualche framework tipo
>angular, react e vue, ed ho iniziato a studiarmi i service worker e
>workbox.
>Ma se volessi mettere in produzione app basate su node?
>Ho visto che fare il deploy su server remoto (apache o nginx) è
>possibile
>con proxy pass, e diversi tutorial consigliano di "demonizzare" node
>per
>renderlo sempre attivo.
>Ma nel caso di più app qual'è, secondo la vostra esperienza, il modo
>migliore per gestire il tutto? Creando un demone per ogni app che
>voglio
>pubblicare, questa cosa come incide sulle prestazioni di apache?
>Grazie per i consigli.
>
>Buona giornata
>
>-beppe-

è un po' OT, ma visto che stai facendo nuove esperienze, prova a fare un occhio anche a genropy, un framework basato su Python server side e js client side, ti permette di fare App we che si comportano come App desktop. per maggiori info www.genropy.org naturalmente è open source ed è sviluppato da un team tutto italiano, molto disponibile in caso di problemi.


byez
--
gollum1

Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e gli errori, maledetto correttore automatico.

Reply | Threaded
Open this post in threaded view
|

Re: [OT] node.js e apache, consigli su come gestire più app

Giuseppe Naponiello-2
In reply to this post by Alessandro Pellizzari-4
Ciao Alessandro, 
grazie per i suggerimenti, mi saranno di molto aiuto, almeno ho le idee un po' più chiare e so da dove partire!

Se non ti serve il server-side-rendering o l'isomorfismo puoi anche servire direttamente il frontend tramite apache o nginx. Non hai bisogno di node.js
In effetti oggi ho fatto qualche test e, facendo un po' di attenzione sulla configurazione iniziale, ho visto che è possibile (ottimo il comando "build --prod" di angular, ad esempio) 

Noi in azienda, per esempio, dockerizziamo tutto e pubblichiamo tramite un load balancer (nginx) dentro kubernetes. Io, per roba personale, faccio una cosa simile: dockerizzo, pusho su un repo privato, deployo con ansible e ho traefik configirato per integrarsi con il daemon docker per "trovare" il pod.

Concentrato sui vari framework e su come farli girare su web server avevo completamente dimenticato Docker!!!!
Ansible l'ho usato qualche volta per il deploy e per la gestione delle repliche di postgresql, non avevo pensato di usarlo anche per "automatizzare" le operazioni di github!
Kubernetes è nella lista delle robe che volevo imparare ad usare ... mi sa che è arrivato il momento! Consigli su come affrontarlo? 😁

ti consiglio di usare qualcosa tipo nodemon che restarta node nel caso muoia
Certo, pensavo di usare "Forever" [0], mi sembra buono...no?

Grazie ancora per i consigli e buona giornata

-beppe-


Il giorno ven 24 mag 2019 alle ore 12:06 Alessandro Pellizzari <[hidden email]> ha scritto:
On 24/05/2019 09:30, Giuseppe Naponiello wrote:

> Dopo anni di utilizzo di php ho avuto la possibilità di sviluppare una
> Progressive Web App...e mi si è aperto un mondo!
> Per interesse personale avevo già smanettato con qualche framework tipo
> angular, react e vue, ed ho iniziato a studiarmi i service worker e workbox.

Se non ti serve il server-side-rendering o l'isomorfismo puoi anche
servire direttamente il frontend tramite apache o nginx. Non hai bisogno
di node.js

> Ma se volessi mettere in produzione app basate su node?
> Ho visto che fare il deploy su server remoto (apache o nginx) è
> possibile con proxy pass, e diversi tutorial consigliano di
> "demonizzare" node per renderlo sempre attivo.
> Ma nel caso di più app qual'è, secondo la vostra esperienza, il modo
> migliore per gestire il tutto? Creando un demone per ogni app che voglio
> pubblicare, questa cosa come incide sulle prestazioni di apache?

Dipende cosa hai a disposizione.

Noi in azienda, per esempio, dockerizziamo tutto e pubblichiamo tramite
un load balancer (nginx) dentro kubernetes. Io, per roba personale,
faccio una cosa simile: dockerizzo, pusho su un repo privato, deployo
con ansible e ho traefik configirato per integrarsi con il daemon docker
per "trovare" il pod.

In alternativa puoi sempre lanciare node.js anche più volte (su porte
interne diverse) e puntare il reverse proxy (apache, nginx, traefik,
quello che preferisci) in base al dominio.

In questo caso ti consiglio di usare qualcosa tipo nodemon che restarta
node nel caso muoia. Di solito muore a causa di memory leak nel codice
js o a causa di bug in qualche pacchetto npm che compila codice nativo.

Tieni conto che di default node.js usa un solo core, quindi in base a
quello che vuoi fare potrebbe anche essere utile lanciare n istanze
(n=numero di core) e avere un load balancer davanti anche su una sola
macchina. :)

Bye.



--
Giuseppe Naponiello

Arc-Team srl
piazza Navarrino, 13 - 38023Cles (TN) 
C.F. e P. IVA IT-01941600221 
cell.
 +393476846599
mail: [hidden email]
pec: [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: [OT] node.js e apache, consigli su come gestire più app

Giuseppe Naponiello-2
In reply to this post by gollum1-3
Ciao Gollum,
genropy è un po' che ce l'ho lì installato, mi ha sempre incuriosito ma non ho mai trovato il tempo di smanettarci come avrei voluto.
Grazie anche a te per il suggerimento ;)

Buona serata

-beppe-

Il giorno ven 24 mag 2019 alle ore 12:39 Gollum1 <[hidden email]> ha scritto:
Il 24 maggio 2019 10:23:43 CEST, Giuseppe Naponiello <[hidden email]> ha scritto:
>Buongiorno lista,
>vado al dunque.
>Dopo anni di utilizzo di php ho avuto la possibilità di sviluppare una
>Progressive Web App...e mi si è aperto un mondo!
>Per interesse personale avevo già smanettato con qualche framework tipo
>angular, react e vue, ed ho iniziato a studiarmi i service worker e
>workbox.
>Ma se volessi mettere in produzione app basate su node?
>Ho visto che fare il deploy su server remoto (apache o nginx) è
>possibile
>con proxy pass, e diversi tutorial consigliano di "demonizzare" node
>per
>renderlo sempre attivo.
>Ma nel caso di più app qual'è, secondo la vostra esperienza, il modo
>migliore per gestire il tutto? Creando un demone per ogni app che
>voglio
>pubblicare, questa cosa come incide sulle prestazioni di apache?
>Grazie per i consigli.
>
>Buona giornata
>
>-beppe-

è un po' OT, ma visto che stai facendo nuove esperienze, prova a fare un occhio anche a genropy, un framework basato su Python server side e js client side, ti permette di fare App we che si comportano come App desktop. per maggiori info www.genropy.org naturalmente è open source ed è sviluppato da un team tutto italiano, molto disponibile in caso di problemi.


byez
--
gollum1

Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e gli errori, maledetto correttore automatico.



--
Giuseppe Naponiello

Arc-Team srl
piazza Navarrino, 13 - 38023Cles (TN) 
C.F. e P. IVA IT-01941600221 
cell.
 +393476846599
mail: [hidden email]
pec: [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: [OT] node.js e apache, consigli su come gestire più app

Alessandro Pellizzari-4
In reply to this post by Giuseppe Naponiello-2
On 24/05/2019 16:20, Giuseppe Naponiello wrote:

> Kubernetes è nella lista delle robe che volevo imparare ad usare ... mi
> sa che è arrivato il momento! Consigli su come affrontarlo? 😁

Kubernetes ha senso solo se hai un cluster con almeno 5 macchine, e
anche lì è quasi sprecato e ci sono soluzioni più semplici.

Se hai un solo server è completamente inutile. L'overhead che aggiunge
alla gestione del server e il fatto di dover "spegnere" tutto quando
devi fare upgrade, oltre al fatto che gli upgrade sono completamente
manuali, lo rende non solo inutile, ma anche dannoso.

Se vuoi fare esperimenti installalo con minikube e prova a fare un po'
di esperimenti. È utile almeno per capire come ragiona. Poi prova a
installarlo manualmente su n (3 o 5) Virtualbox.

Se ti ricordi come era Slackware negli anni '90... ecco, Kubernetes in
questo momento è più o meno nello stesso stato. :)

> Certo, pensavo di usare "Forever" [0], mi sembra buono...no?

Penso siano più o meno tutti equivalenti. Io uso nodemon per abitudine,
più che per le feature, a dire il vero. :)

Bye.