Веб-приложение, которое мы написали для одного клиента, будет продуктизировано и продано десяткам компаний, и мы будем заниматься хостингом.
Я мог бы использовать некоторые рекомендации о плюсах и минусах развертывания отдельного экземпляра для каждого клиента в сравнении с одним (или очень небольшим числом) мультитенантных экземпляров.
Сначала, когда мы наберем скорость, у меня будет для развертывания отдельного экземпляра приложения для каждого нового клиента (они будут подключаться по одному за раз), потому что это единственный немедленный вариант. Я полагаю, что это не очень хорошо масштабируется с точки зрения обслуживания - развертывание изменений станет очень утомительным и, возможно, подверженным ошибкам, когда будет более 4-5 экземпляров. Если мы не автоматизируем это как-то.
Кроме того, философия для одного экземпляра может привести к тому, что людям понадобятся индивидуальные настройки. И было бы неплохо этого избежать.
Так, что у вас было с этим опытом?
Бонусный вопрос № 1: Какая разница в производительности между 10 SQL-серверами с 2-мя записями каждый и одним огромным с 20-ю записями? Допустим, все они находятся в одной таблице, и мы в основном делаем вставки и выбираем отдельные записи. Иногда селекторы находятся на проиндексированном поле varchar (12) или дате.
Бонусный вопрос № 2: Я полагаю, что для того, чтобы избежать разветвления, нам нужно было бы сделать настройки настраиваемыми или построить архитектуру подключаемого модуля. Тем не менее, это может увеличить стоимость настройки, и я не хочу быть одним из тех магазинов, которому требуется неделя для изменения размера текстового поля, и . Я не хочу чрезмерно инвестировать в инфраструктуру , Есть мысли по этому поводу?
Подробности шкалы
Каждый клиент будет иметь приличный объем данных - до нескольких миллионов записей.
Будет очень небольшое количество одновременных пользователей, всего несколько на каждого клиента, плюс несколько внутренних представителей с нашей стороны.
Неясно, потребуются ли каждому клиенту настройки, но я бы сказал, что некоторые из них, вероятно, потребуются, и, возможно, некоторые из этих изменений будут вещами, которые другие клиенты не захотят видеть.