Связанный вопрос: Каков наиболее эффективный способ разбить централизованную базу данных?
Я попытаюсь сделать этот вопрос довольно общим, чтобы он приносил пользу другим.
Около 3 лет назад я внедрил интегрированный CRM и веб-сайт. Поскольку я хотел произвести впечатление на клиента, я реализовал самую дешевую архитектуру, о которой я мог думать, которая заключалась в размещении центральной базы данных и веб-сайта на веб-сервере. Я создал настольное приложение, которое общается с веб-сервером через веб-службу (это приложение выполняется из своего главного офиса).
В ретроспективе это было довольно глупо, так как теперь, когда компания выросла, их интернет-соединение становится медленнее и медленнее каждый месяц. Теперь, из-за проблем с производительностью, программное обеспечение для настольных компьютеров периодически выходит из строя, у клиента остаются 3 варианта:
- Приобретите более быстрое подключение к Интернету.
- Переместите базу данных (и веб-сайт) на собственный сервер.
- Переконструируйте архитектуру так, чтобы CRM и веб-базы данных были разделены.
Первый вариант - это "самый простой", но, конечно, не самый дешевый долгосрочный. Второй вариант; если мы переместим сайт на собственный хостинг, клиент должен бороться с такими проблемами, как перегрузка/плохое/автономное подключение к Интернету, потеря мощности и т.д. И последний вариант; клиент ненавистен, чтобы заплатить за меня все деньги, чтобы перепроектировать и переконфигурировать архитектуру, и я не могу позволить себе делать это бесплатно (мне нужно есть).
Есть ли какой-нибудь способ для восстановления после того, как вы так плохо ввели дизайн распределенной системы, что ни один из параметров не работает? Или это случай сокращения ваших потерь и просто обучения от ошибки? Я чувствую себя ужасно, что нет никаких быстрых решений для этой проблемы.