Я знаю, что это будет очень широкий вопрос, и я уверен, что это ничего нового в сегодняшнем мире, но я действительно не сейчас, с чего начать.Приложение для управления приложениями (архитектура)
Я начал работать над сервисом на основе рельсов, который позволит пользователям создавать, настраивать и управлять своими проектами (базовые копии одного приложения с настройкой). Проекты будут выполняться на субдомене с возможностью подключения собственного домена. (Совсем похоже на то, как SquareSpace и Wix и многие другие службы создания сайтов обрабатывают свои сайты)
Я хочу, чтобы эти проекты были максимально гибкими и настраиваемыми (включая визуальный дизайн, некоторые дополнительные функции и т. Д.), В то время как простота настройки и обновления для самой кодовой базы.
Таким образом, вопросы я начну с:
- Если каждый проект будет отдельное приложение (basicaly копия из же репо) с собственными конфиги, базы данных, Nginx и единорога конфиги и т.д. или я должен хранить все в 1 приложении и различать их с различными конфигурациями и, возможно, базами данных и активами?
- Если это лучше держать все отделенное ...
- ... что лучший способ установки (при условии, что у меня есть базовая конфигурация, чтобы начать с)?
- ... как бы я смог обновить их все (с исправлениями, новыми функциями, улучшением производительности и т. Д.) С одного места?
- Если я держу все проекты в одном приложении ...
- ... как я должен управлять concurency конфигурации между проектами?
- ... как я могу отделить данные и активы?
Как всегда, я был бы признателен за любую достаточную помощь я могу получить.
Отличная статья и хороший улов с этим камнем. Я знал, что должно быть уже готовое решение для всего. У меня только пара вопросов для решения этой проблемы. 1. Вы бы посоветовали создать отдельное приложение для управления 'tennants' (у которого будут свои собственные пользователи, управление транзакциями и базовые настройки)? Если да, то как переносить теннанты из одного приложения в другое? 2. Как управлять различными макетами, представлениями и активами для разных арендаторов? – Almaron
Вы можете мне немного помочь? – Almaron
В моих целях работает одно приложение со всеми объектами, связанными с организацией через идентификатор организации. Вы можете сопоставлять макеты с организациями или даже с отдельными пользователями в зависимости от того, как вы реализуете макеты и моделируете свои данные. Вы можете использовать простые ассоциации Rails, чтобы связать все. Вам необходимо ограничить доступ, используя CanCan или тому подобное: https://github.com/ryanb/cancan/wiki/Fetching-Records – ob1