Co zmienia ten wybór
Wybór zmienia granice kontencji, sieci i awarii. Rozdzielenie jest użyteczne tylko wtedy, gdy korzyść operacyjna uzasadnia kolejny host, ścieżkę poświadczeń i procedurę odzyskiwania.
Porównaj czynniki decyzyjne
| Czynnik | API i baza danych na jednym VPS | Osobne VPS aplikacji i bazy danych |
|---|---|---|
| Ścieżka żądania | Połączenie lokalne pozwala uniknąć przeskoku sieciowego między hostami. | Każde zapytanie zależy od trasy sieciowej i jej uwierzytelniania. |
| Kontencja zasobów | API, workery i baza danych współdzielą aktywność CPU, RAM i dysku. | Każdy host ma osobny budżet zasobów. |
| Granica awarii | Jedno zdarzenie hosta może wpłynąć jednocześnie na aplikację i bazę danych. | Awaria hosta aplikacji nie musi zatrzymywać bazy danych, ale usługa nadal wymaga obu. |
| Zakres dostępu | Jedna granica administratora może obejmować oba komponenty. | Administracja bazy danych może korzystać z węższej granicy hosta i sieci. |
| Planowanie połączeń | Lokalne pule nadal wymagają limitów w API i workerach. | Pule wymagają limitów oraz decyzji o limitach czasu sieci i ponawianiu. |
| Odzyskiwanie | Jedno odtworzenie musi zrekonstruować obie role i ich zgodne wersje. | Każde przywrócenie i połączenie aplikacji z bazą danych muszą być przećwiczone razem. |
Kiedy każda opcja zasługuje na swoje miejsce
Trzymaj mały stack połączony, dopóki zmierzony narzut mieści się w rezerwie i jedna granica utrzymania jest akceptowalna. Rozdziel bazę danych, gdy jej wymagania dotyczące zasobów, dostępu lub odzyskiwania stały się niezależnie istotne.