Задать вопрос
@TopClans

Хочу сделать сервис. Есть ли платформы для быстрого развертывания?

В течение нескольких лет писал для себя софт, теперь многие у меня его просят. Я хочу продавать доступ по подписке.
Всё ПО состоит из базы данных и примерно 40 файлов. БД на MySQL на 300 000 строк, 50 мбайт.
Изначально не рассчитывал на это, поэтому почти весь код придётся переписать, но меня больше всего беспокоит вопрос обновлений. Как дать доступ к ПО для 100 пользователей, но при этом оперативно обновлять и БД и файлы у всех?
Я никогда не занимался продажей софта или вообще дистрибуцией, и не в курсе, как это должно работать, я вижу несколько вариантов:
  • у каждого пользователя свой поддомен, своя БД, свой набор файлов. Хочешь обновлений - плати, и я вручную накачу тебе все наработки
  • у каждого пользователя свой поддомен, своя БД, свой набор файлов. но обновления (и файловые и в БД) каким-то образом прилетают всем пользователям автоматически
  • единый набор файлов для всех и своя база данных у каждого пользователя. в ПУ авторизуешься, и по логину скрипт определяет, что тебе выводить
  • единый набор файлов, единая база данных, в каждой таблице есть client_id, по которому скрипт запрашивает только информацию для пользователя. но при 100 пользователях как я - получится 30 млн строк и 50 гбайт веса, не многовато ли для одной БД?

Мне больше всего нравится второй вариант - пусть нагрузка будет больше, но зато можно изолировать пользователей друг от друга на разные сервера, да и вообще это выглядит логичным. Но повторюсь, у меня нет подобного опыта. Может быть, есть уже готовые платформы, которые позволяют автоматически создавать поддомены, и отправлять пользователям обновления?
Подскажите пожалуйста, хотя бы что мне гуглить.
  • Вопрос задан
  • 126 просмотров
Подписаться 2 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
Sanes
@Sanes
Сделать продукт отчуждаемым и не париться про хостинг.
Ответ написан
Комментировать
@Mysterion
1 и 2 варианты самые оптимальные. В случае с 3 и 4 не получится обновлять что-то одному человеку, если это нужно (получится, но это будет геморрой).
Каждому клиенту ставите копию скрипта на своем сервере и все. Могут и свой домен прикрутить и Ваш использовать.
У меня был сервис, там было как в 3 и 4 случаях. По поддомену определялось какой контент выводить с какого сайта. Но и свой домен тоже прикрутить можно было. Хотя была одна точка входа на сайте как на основном домене, так и на поддоменах.
Ответ написан
@forspamonly2
Подскажите пожалуйста, хотя бы что мне гуглить.

это называется multi-tenant application (или database).

подходы вы в целом верно перечислили, их плюсы и минусы неплохо были расписаны у микрософта: https://docs.microsoft.com/en-us/azure/sql-databas...

для последнего варианта, чтобы не переписывать вообще все запросы, у некоторых субд есть интересная возможность - row level security. грубо говоря, можно настроить права на строки таблиц по тем самым полям с идентификатором клиента, и получить для каждого запроса прозрачную фильтрацию строк доступных для текущего юзера в базе, плюс ограничения при попытке изменить чужое. а в базах, где этого нет, народ иногда извращается с вьюхами и триггерами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы