Jak budować i uruchamiać aplikację?

0

Cześć. Pytanie do Devopsów jak budować i uruchamiać aplikację.

Mam apkę napisaną w NestJS, która po wykonaniu komendy

npm run build

utworzy katalog dist/ w glownym folderze i przygotuje (prawie) gotowy kod do wrzucenia na serwer. Dlaczego prawie? Bo na serwerze muszę i tak zrobić npm install żeby mieć katalog node_modules aby apka wstała.

I teraz moje pytanie... jak wy, jako devopsi wdrażacie takie aplikacje na produkcję, jak wyglada proces, pipeline?

  1. Czy po pozytywnych testach budujecie obraz aplikacji (kod + nodejs), a następnie na VPSie uruchamiacie obraz przez
docker run -p 80:3000 app-image

ze zmiennymi środowiskowymi, bez nginx bo apka ma juz własny wbudowany serwer?

  1. Czy moze nie budujecie obrazu i wrzucacie zawartości katalogu dist gdzieś do /var/www/html, następnie dorzucacie package.json i robicie npm install? Ale co wtedy z nodejs, przecież bez sensu żeby host w ogóle wiedział o tym, że potrzebny jest nodejs. To apka powinna go zawierać, konkretną wersję nodejs, prawda?

  2. A może jest jeszcze inny sposób?

Nie mogę znaleźć informacji jak takie aplikację są wdrażane. Wszystko jest opisane od kodu do budowania obrazu i koniec. Ale co dalej? Jak wyglada idealne wdrożenie? Czy bazuje na uruchomieniu obrazu? Ale co gdy ruch jest duży i potrzebny jest load balancer, wtedy takie uruchomienie obrazu jako kontenera jest bez sensu...

Nie jestem devopsem więc stąd te głupie pytania. Dzięki i pozdro

2

Zasadniczo:

  1. Dockeryzujesz aplikację https://nodejs.org/en/docs/guides/nodejs-docker-webapp tak, żeby obraz miał już w sobie wszystko.
  2. Wrzucasz obraz do jakiegoś repozytorium.
  3. Robisz testy.
  4. Odpalasz produkcyjnie tyle kontenerów ile potrzebujesz.
  5. Kierujesz ruch do tych kontenerów z poziomu load balancera.

1 użytkowników online, w tym zalogowanych: 0, gości: 1