Есть некий веб-сервис. На серверной стороне (Ubuntu/PHP/nginx,Mysql), на клиентской HTML/CSS/JS. В общем все обычно. На данныц момент все пользователи подключаются к одному серверу и используют общую базу данных. Мне бы хотелось попробовать реализовать виртуальное пространство для каждого пользователя, чтобы каждый имел свою БД и свою копию сервера приложения. Чтобы в случае каких-либо проблем (ошибка в базе, в коде, при деплое новой версии т.д) пострадали не все пользователи. .
Раньше этого никогда не делал, но предполагаю, что делается с помощью технологий виртуализации. Вся проблема в том, что я не очень представляю как должна создаваться среда для нового пользователя. Например, при регистрации нового пользователя нужно развернуть snaphot операцонки со всеми установленными утлитами, это делается как-то автоматизированно или типа "Оставьте вашу заявку, через пару дней вы получите доступ"?
Хотелось бы услышать опыт, если такой имеется, кто-нибудь реализовал подобную архитектуру?
В принципе подходит, оно щас так и реализовано. Но как я уже писал выше в этом случае все пользователи хранятся в одной базе, и используют один сервер приложения. Я конечно понимаю, что если для каждого юзера создавать свою виртуальную среду, то от поломок сервера это не спасет, но мне хочется с чего-то начать поскольку в будущем планирую размещать приложение на нескольких серверах
Хранит документы пользователя, каждый документ представляет собой набор таблиц, текста, изображений и т.д. Ну в общем что-то типа электронного документооборота
Меня интересует та же самая тема, начал копать в сторону биллинг-систем. И получается следующая цепочка.
Человек на сайте заполняет форму, в котором вводится желаемый логин и нажимается кнопка создать. На сервере создается папка пользователя через ajax по API BILLmanager от ISP например, в которую предустанавливается скрипт. Тут, как мне подсказали в поддержке ISP, возможно связка BILLmanager ISPmanager через тарифы. Назначается домен LOGIN.mydomain.ru на созданный аккаунт. Клиент заходит на созданный сайт.
В результате с помощью API биллинг системы мы можем управлять оплатами по сервису, нагрузкой, тарифом.
Подробнее не смотрел еще, это просто мысли... Если получится реализовать, прошу сообщите.