Wątek przeniesiony 2022-05-13 19:48 z Webmastering przez Adam Boduch.

Backend i frontend - jeden serwer czy więcej?

0

Czy warto rozdzielać backend i frontend na dwa różne serwery vps?
Aktualnie zamierzam postawić wszystko na jednym, ale chciałbym usłyszeć wasze zdanie.

Druga sprawa jest taka, że mój backend będzie służył jako api, a dodatkowo jako "maszynka" do odpytywania co minutę 100 serwisów i minimalnych obliczeń z pozyskanych danych i zapisywanie ich w bazie.

Czy jeden backend może służyć jako api dla użytkowników + jako ta "maszynka"?
Czy też lepiej rozdzielić to na dwa serwery?

2

pytanie jaki ruch. Jakie obciązenie itp itd. Jak mocy straczy to nie ma sensu

0

No szczerze mówiąc nie mam pojęcia. Bo dopiero zamierzam coś takiego zrobić. Załóżmy, że to będzie w jednej chwili ~300 użytkowników. Chociaż tego też nie wiem, ciężko mi cokolwiek zakładać. No po prostu chciałbym się dowiedzieć jak to wygląda z waszego punktu widzenia. Czy warto robić na jednym, czy rozdzielać.

VPS na początek zamierzam sobie wziąć jakiś najtańszy:
4 vCPU Cores
8 GB RAM
50 GB NVMe

7

Na razie chyba nie ma co patrzeć na wydajność - bo jak pisałeś, jeszcze nie masz gotowej , być może w ogóle taki problem nie wystąpi. Póki co bym zostawił na jednej maszynie, ale jednocześnie zrobił ale w sposób umożliwiający łatwe rozklejenie back od frontu.

Bardziej bym się skupił na takich aspektach:

  • bezpieczeństwo: czy lepiej mieć jeden serwer i o niego dbać, czy dwa i mieć nadzieję, że radzieccy hackerzy w razie czego wjadą tylko na jeden ;)
  • czy wymiana danych między serwerami będzie znacząco wolniejsza, niż jakby to stało na jednym hoście
  • przy dwóch maszynach masz 2x więcej logów do sprawdzania, pakietów systemowych do aktualizacji, backupów do wykonania
  • wydajnością się nie przejmuj: większość sensownych dostawców umożliwia bezproblemowe zwiększenie parametrów (więcej RAM, vCPU czy HDD) więc jeśli całość dostanie czkawki to możesz po prostu zwiększyć pakiet
  • czy poza tym twoim frontem, do tego backendu będzie wbijać coś innego - jakieś mobilni przez REST albo np. wystawiasz jakieś API
0

czy wymiana danych między serwerami będzie znacząco wolniejsza, niż jakby to stało na jednym hoście

O właśnie. Tego też się obawiałem, więc chyba kolejny powód, żeby zostać przy jednej a ewentualnie lepszej maszynie.

czy poza tym twoim frontem, do tego backendu będzie wbijać coś innego - jakieś mobilni przez REST albo np. wystawiasz jakieś API

Na chwile obecną nie przewiduję takiej opcji. Choć API, które będę używał na froncie jest takie, że każdy sobie może wejść i spojrzeć co tam jest zwracane. Bo nie bardzo umiem to ograniczyć tylko dla frontu :P

0
2solaris5 napisał(a):

No szczerze mówiąc nie mam pojęcia. Bo dopiero zamierzam coś takiego zrobić. Załóżmy, że to będzie w jednej chwili ~300 użytkowników. Chociaż tego też nie wiem, ciężko mi cokolwiek zakładać. No po prostu chciałbym się dowiedzieć jak to wygląda z waszego punktu widzenia. Czy warto robić na jednym, czy rozdzielać.

VPS na początek zamierzam sobie wziąć jakiś najtańszy:
4 vCPU Cores
8 GB RAM
50 GB NVMe

To bardzo mocny sprzęt, który spokojnie ogarnie ten ruch. Oczywiście wszystko zależy od technologii i tego jak dobrze zoptymalizujesz kod

Co do hostowania frontendu: jak to ułatwia sprawę to czemu nie. Tak czy owak warto zainteresować się jakimś CDN, bo jest po prostu lepiej pod każdym względem

2

Zawsze możesz zrobić jakieś proste testy wydajnościowe aby się przekonać.

0

IMO - VPS wali stęchlizną. Zapakowałbym tego NGIX'a w jeden kontener, "backend" w drugi kontener i wrzucił to w coś w stylu Google Kubernetes Engine. Ewentualnie odpuścił sobie NGIX'a i wpakował statyczny kontent w jakiś blob storage, czy co oni tam mają.
Podejrzewam, ze wszystko wyjdzie sporo taniej niż to co planujesz mieć (4vC+8GB).
Rozdzielenie ingest'u od przekazywania danych też można zrobić. Nie wiem czy dane mają być ulotne, w znaczeniu, że liczy się tylko stan aktualny, czy chcesz robić jakieś analizy historii, jeżeli ulotne to serwis zajmujący się pozyskiwaniem danych może wrzucać aktualne stany do Redis, lub czegoś w tym stylu (w GCP nazywa się to chyba Cloud Memory), backend odczytuje i wszystko na temat. Może takie spięcie usług przez bazę danych nie jest eleganckie, ale zadziała.
Zysk: kasa, powinno być naprawdę sporo taniej niż VPS, szczególnie, że możesz coś takiego wyskalować stosownie do potrzeb. Drugi zysk, to mniej roboty, bo całą administrację, aktualizacje i inne takie bierze na siebie dostawca chmury.

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