Cześć,
mam pytanko dotyczące wdrażania aplikacji webowej. Nie mam totalnie doświadczenia w tej kwestii a jestem bliski dokończenia mojej aplikacji łączącej backend w django i frontend w reakcie.
Każdy z elementów mam zapakowany do kontenera (tzn oddzielnie dla react, django i postgres, użyłem też nginx do przekierowywania portów)
Lokalnie mam dwie wersje docker-compose - jedną totalnie developerską (bez nginx), drugą - z nginx - powiedzmy powoli przygotowywaną pod produkcję.
Powyższa aplikacja webowa - do komunikacji z użytkownikiem.
Mam też dwie dodatkowe aplikacje do przetwarzania danych, wymagane do dzialania aplikacji, które są po prostu skryptami napisanymi w pythonie, pobierają dane z bazy (m.in o użytkownikach) przetwarzają dane, asynchronicznie obsługują użytkowników, wyniki wracają do bazy.
Moje pytania:
- Czy warto na produkcji bawić się w docker-compose?
- Jeśli tak to czy każdy z elementów powinien być uruchomiony w kontenerze? Z tego co widzialem w sieci niegdyś panowało przekonanie, zę kontener do bazy danych ble - bo kolejny klocek który trzeba zarządzać i teoretycznie może się zepsuć.
- Wstępnie, podczas początkowego wdrożenia planuję użyć maszyny wirtualnej na Google Cloud Platform - całość uruchomię używając docker-compose i będę testować aplikację (z użytkownikami itp). Tam też uruchomię pozostałe aplikacje mające za zadanie przetwarzanie danych i wysyłanie wyników na konkretne endpointy.
- Co powinno być kolejnym krokiem? Nie za miliony monet, a bezpieczne i z sensem? Wydzielać każdą z aplikacji? W sensie aplikację webową postawić na jakimś konkretnym serwerze, bazę danych też oddzielnie (np Azure ma opcję uruchomienia postgres), a aplikacje do przetwarzania danych jeszcze gdzie indziej?
- No i finalnie jaki serwer polecacie do tego typu aplikacji?
PS. Wszelkie uwagi miło widziane.
Pozdrawiam!