Encaixe o recipiente e PM2 runnng na instância do ec2

0

Pergunta

Eu tenho um instâncias do ec2, que é a execução de um nó de aplicação. Estou pensando em fazer um recipiente de implementação usando a janela de encaixe. O pm2 está executando o dois-em-um é o nó de aplicação (express e pug) e um cron usando a agenda. É uma boa idéia para colocar o meu aplicações em um contêiner?

Eu ainda não estou familiarizado com os prós e os contras dessa e eu li que a janela de encaixe já é um gerenciador de processos. Como será o pm2 se encaixam em tudo isto uma vez eu implementá-lo. Ou devo apenas vala janela de encaixe e executar os aplicativos no linux nativo da minha ec2.

amazon-ec2 docker node.js pm2
2021-11-23 22:13:26
1

Melhor resposta

2

Você tem um par de perguntas, tento respondê-las abaixo:

1. É uma boa idéia para colocar o meu aplicações em um contêiner?

Depende, há muitos casos em que você gostaria de executar o mesmo recipiente de fazer várias coisas. Mas realmente depende do CPU/RAM/uso da Memória de trabalho. E como muitas vezes faz-lo funcionar?

Qualquer forma de experiência, posso dizer que se eu executar um cron do mesmo recipiente, eu usaria sempre que um trabalhador abordagem para esta usando NodeJS núcleos worker_threads ou cluster módulo. Porque você não deseja que um cron afeta o comportamento da thread principal. Eu tenho um exemplo de execução 2 aplicações em vários segmentos na seguinte repo.

2. devo apenas vala janela de encaixe e executar os aplicativos no linux nativo da minha ec2

Janela de encaixe e PM2 são 2 realmente coisas diferentes. Janela de encaixe é, basicamente, a containerize todo o seu Nó de aplicativo, então é muito mais fácil para enviá-lo. PM2 é um gerenciador de processos para o nó e torna-se seu aplicativo é e vem com algumas boas métricas e logs de INTERFACE de usuário no PM2 métricas. Você pode definitivamente usar os 2 juntos, como PM2, faz também a certeza de que seu aplicativo será iniciado após a falha.

No entanto, se você usar pm2, você tem que usar o pm2-tempo de execução ao usar a janela de encaixe. Exemplo Dockerfile:

FROM node:16.9.0

WORKDIR /home/usr/app

COPY . .

RUN npm ci && npm run build

# default command is starting the server
CMD ["npx", "pm2-runtime", "npm", "--", "start"]
2021-11-23 22:58:58

Muito obrigado pela resposta. O cron job é executado somente durante a meia-noite, portanto, não deve impacto da aplicação principal. Eu vou olhar para pm2-tempo de execução, desde que eu realmente quero para implementar janela de encaixe. Eu acho que a próxima coisa que para mim é entender como fazer tudo isso na construção do pipeline talvez usando Jenkins.
cam

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................