Что такое мультитенантные приложения
Multianancy-это архитектура, в которой один экземпляр программного приложения обслуживает нескольких клиентов.
Но тогда вам может быть интересно: «Разве все приложения это делают? Что делает это таким особенным? “
Ответ на это заключается в том, что мультитенантные приложения позволяют вам обслуживать нескольких клиентов с одной установкой приложения. Каждый клиент имеет свои данные полностью изолированными в такой архитектуре. Каждый клиент называется арендатором.
Арендаторам может быть предоставлена возможность настроить некоторые части приложения, такие как цвет пользовательского интерфейса (пользовательский интерфейс) или бизнес -правила, но они не могут настроить код приложения.
Подходы к многопользованию
Существуют различные подходы к мультиценнению. Ключевым среди них являются:
- Общая база данных с общей схемой.
- Общая база данных с изолированными схемами.
- Изолированная база данных с изолированной схемой.
- Полностью изолированные арендаторы.
Для этой серии мы будем идти по Общая база данных с изолированными схемами
подход. Если вы хотите узнать больше об остальном, Проверьте эту удивительную книгу по Agiliq Анкет
Общая база данных с изолированными схемами
В этом методе один экземпляр базы данных ведет записи арендатора. В отличие от связывания данных каждого арендатора иностранным ключом, как мы обычно делаем, это распространено в методе 1, указанном ранее Общая база данных с общей схемой
, Мы создаем новую схему для каждого нового арендатора.
Преимущества многоцелевого
Мультитенантные приложения особенно полезны, когда речь идет о построении программного обеспечения как продуктов Service (SAAS). Используя этот подход вместо однополучия, представляется ряд преимуществ. Ключ среди них:
- Доступная стоимость: наличие нескольких клиентов означает, что стоимость окружающей среды (хостинг, базы данных и время разработчика) используется. Эти сбережения, в свою очередь, обычно передаются в стоимости программного обеспечения.
- Добавить нового клиента проще: в приложениях для однородец, новая установка приложения требуется каждый раз, когда новый клиент выходит на платформу. С мультиченом, это происходит за считанные секунды, используя вызов API.
- Удобство в поддержании единого приложения: как упоминалось выше, использование подхода с одним оттенком означает наличие нескольких экземпляров одного и того же приложения. Вы можете представить себе кошмар поддержания и обновления всех этих случаев по мере роста ваших клиентов. Хорошие проблемы, конечно, так как вы, очевидно, делаете что -то правильно 😄, но, тем не менее, это приведет к большому времени и потери ресурса.
Живая демонстрация
Мы будем работать над созданием мультиорганизационного трекера расходов. Живую демонстрацию можно найти Здесь Анкет
Бэкэнд -код репо
Бэкэнд-код написан в Python (Django) и развернут с использованием Docker-Compose.
Репо имеет несколько ветвей, представляющих приложение на разных этапах. Мы движемся шаг за шагом, чтобы избежать информационной перегрузки.
Frontend Code Repo
Фронт был построен с Vue.js, в частности nuxt.js, и развернут с использованием PM2
В предстоящих постах мы получим практическое построение, создав функциональное приложение с полным стеком. Надеемся, что к концу серии вы сможете создать аналогичные системы.
Оригинал: “https://dev.to/lewiskori/introduction-to-multi-tenant-apps-with-django-3fog”