Ми будуємо веб-платформу, яка включає в себе кілька сервісів, кожен з яких має свої базові дані. Ці служби будуються незалежно, керуючись принципами сервісно-орієнтованої архітектури , але вони вступають у відповідь на потенційно пов'язані дані. Ми розглядаємо, чи повинні ці сервіси мати одну велику базу даних чи кожен має свою базу даних. (Ми плануємо використовувати SQL Server 2008 Enterprise на кластері Windows 2008.)
Деякі з переваг кожного з розглянутих нами підходів включають:
Єдина база даних
- Дані, що відносяться до різних служб, можуть бути пов'язані між собою іншими ключовими обмеженнями
- Аналітичні виписки простіші для запису та швидші для виконання
- У разі катастрофи відновити платформу до стійкого стану простіше
- Для даних, на які посилається кілька сервісів, дані, кешовані однією службою, швидше за все, будуть використані незабаром іншою службою
- Адміністрація та моніторинг простіші та дешевші на передовій
Кілька баз даних
- Роботи з технічного обслуговування, проблеми з обладнанням, порушення безпеки та інше не обов'язково впливають на всю платформу
- Якщо припустити, що кожна база даних працює на окремому апаратному забезпеченні, масштабування кількох машин дає більше переваг від продуктивності, ніж масштабування однієї великої
З точки зору операцій, чи вигідніше, що кожен сервіс на цій платформі отримує власну базу даних або всі вони працюють в одній базі даних? Які ключові фактори спонукають відповісти на це питання?