Apa yang diubah pilihan ini
Pilihan ini mengubah batas kontensi, jaringan, dan kegagalan. Pemisahan hanya berguna jika manfaat operasionalnya membenarkan host, jalur kredensial, dan prosedur pemulihan tambahan.
Bandingkan faktor keputusan
| Faktor | API dan database pada satu VPS | VPS aplikasi dan database terpisah |
|---|---|---|
| Jalur permintaan | Koneksi lokal menghindari hop jaringan antar-host. | Setiap kueri bergantung pada rute jaringan dan autentikasinya. |
| Kontensi sumber daya | API, worker, dan database berbagi aktivitas CPU, RAM, dan disk. | Setiap host memiliki anggaran sumber daya terpisah. |
| Batas kegagalan | Satu peristiwa host dapat memengaruhi aplikasi dan database sekaligus. | Kegagalan host aplikasi tidak perlu menghentikan database, tetapi layanan tetap membutuhkan keduanya. |
| Cakupan akses | Satu batas administrator dapat menjangkau kedua komponen. | Administrasi database dapat menggunakan batas host dan jaringan yang lebih sempit. |
| Perencanaan koneksi | Pool lokal tetap memerlukan batas di seluruh API dan worker. | Pool memerlukan batas plus keputusan timeout dan retry jaringan. |
| Pemulihan | Satu pembangunan ulang harus merekonstruksi kedua peran dan versi yang kompatibel. | Setiap pemulihan dan koneksi aplikasi ke database harus dilatih bersama. |
Kapan setiap opsi layak dipilih
Pertahankan stack kecil tetap digabungkan selama tumpang tindih terukur sesuai dengan cadangan dan satu batas pemeliharaan dapat diterima. Pisahkan database ketika persyaratan sumber daya, akses, atau pemulihannya menjadi penting secara independen.