Контрольный список для проектирования и создания мультитенантных решений в Azure
При создании мультитенантного решения в Azure необходимо учитывать множество элементов. Используйте этот контрольный список в качестве отправной точки, чтобы помочь вам разработать и создать мультитенантное решение. Этот контрольный список является вспомогательным ресурсом для мультитенантных решений архитекторов в серии статей Azure . Контрольный список структурирован вокруг бизнес-и технических соображений, а также пять основных компонентов платформы Azure Well-Architected Framework.
Совет
Пройдя этот контрольный список, ознакомьтесь с обзором решения SaaS, чтобы оценить продукт SaaS , проанализировав мультитенантную архитектуру и ее соответствие рекомендациям по работе SaaS.
Деловые соображения
- Узнайте, какое решение вы создаете, например бизнес-бизнес (B2B), бизнес-потребитель (B2C) или корпоративное программное обеспечение, а также как клиенты отличаются от пользователей.
- Определите клиентов. Узнайте, сколько клиентов вы будете поддерживать изначально, а также планы роста.
- Определите модель ценообразования и убедитесь, что она соответствует использованию ресурсов Azure клиентами.
- Узнайте, нужно ли разделять клиентов на разные уровни. Уровни могут иметь разные цены, функции, обещания производительности, географические расположения и т. д.
- На основе требований клиентов определите модели аренды, подходящие для различных частей решения.
- Когда вы будете готовы, продать мультитенантное решение B2B с помощью Microsoft Commercial Marketplace.
Рекомендации по надежности
- Просмотрите контрольный список надежности azure Well-Architected, применимый ко всем рабочим нагрузкам.
- Понять шумный сосед антипаттерн. Запретить отдельным клиентам влиять на доступность системы для других клиентов.
- Разработайте мультитенантное решение для ожидаемого уровня роста. Но не перенаправься на нереалистичный рост.
- Определите цели уровня обслуживания (SLOS) и соглашения об уровне обслуживания (СОГЛАШЕНИЯ об уровне обслуживания) для вашего решения. Соглашения об уровне обслуживания и соглашения об уровне обслуживания должны основываться на требованиях клиентов.
- Проверьте масштаб решения. Убедитесь, что он хорошо работает при всех уровнях нагрузки и правильно масштабируется по мере увеличения числа клиентов.
- Применение принципов проектирования хаоса для проверки надежности решения.
Вопросы безопасности
- Применение принципов нулевого доверия и минимальных привилегий во всех уровнях решения.
- Убедитесь, что вы можете правильно сопоставить запросы пользователей с клиентами. Рассмотрите возможность включения контекста клиента в состав системы удостоверений или с помощью других средств, таких как авторизация клиента на уровне приложения.
- Проектирование изоляции клиента. Непрерывно тестируйте модель изоляции.
- Убедитесь, что код приложения предотвращает доступ между клиентами или утечку данных.
- Выполняйте текущие проверки на проникновение и проверки кода безопасности.
- Ознакомьтесь с требованиями к соответствию клиентов, включая размещение данных и любые нормативные стандарты, которые им требуются.
- Правильное управление именами доменов и избегайте уязвимостей, таких как переключение DNS и поддомена атак.
- Следуйте указаниям по мультитенантности для конкретной службы.
Рекомендации по оптимизации затрат
- Ознакомьтесь с контрольным списком хорошо спроектированной оптимизации затрат Azure, который применим ко всем рабочим нагрузкам.
- Убедитесь, что вы можете адекватно измерять потребление для каждого клиента и сопоставлять их с затратами на инфраструктуру.
- Избегайте антипаттернов. Антипаттерны включают неспособность отслеживать затраты, отслеживать затраты с ненужной точностью, измерением в режиме реального времени и использовать средства мониторинга для выставления счетов.
Рекомендации по операционному превосходству
- Используйте автоматизацию для управления жизненным циклом клиента, например подключением, развертыванием, подготовкой и конфигурацией.
- Общие сведения о различиях между плоскостями управления и плоскостями данных в мультитенантном решении.
- Найдите правильный баланс для развертывания обновлений службы. Рассмотрите как требования клиентов, так и ваши собственные операционные требования.
- Отслеживайте работоспособность всей системы, а также каждого клиента.
- Настройте и проверьте оповещения, чтобы уведомить вас о возникновении проблем с конкретными клиентами или превышении ограничений потребления.
- Упорядочение ресурсов Azure для изоляции и масштабирования.
- Избегайте защиты от развертывания и конфигурации. Антипаттерны включают выполнение отдельных версий решения для каждого клиента, жесткое кодирование конфигураций или логики клиента и развертывание вручную.
Рекомендации по эффективности производительности
- Ознакомьтесь с контрольным списком производительности Azure Well-Architected Performancey, который применим ко всем рабочим нагрузкам.
- Если вы используете общую инфраструктуру, спланируйте, как устранить проблемы с шумным соседом . Убедитесь, что один клиент не может снизить производительность системы для других клиентов.
- Определите, как масштабировать вычислительные ресурсы, хранилище, сеть и другие ресурсы Azure в соответствии с требованиями клиентов.
- Рассмотрите ограничения масштаба каждого ресурса Azure. Упорядочение ресурсов соответствующим образом, чтобы избежать антипаттернов организации ресурсов. Например, не перепроектируйте решение, чтобы работать в нереалистических требованиях к масштабированию.
Соавторы
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.
Основные авторы:
- Арсен Владимирский | Главный инженер клиента
- Богдан Черчик | Старший инженер клиента
Другой участник:
- Джон Даунс | Главный инженер программного обеспечения
Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.
Следующие шаги
- Ознакомьтесь с рекомендациями по архитектуре для мультитенантных решений.
- Просмотрите архитектурные подходы к мультитенантности.
- Ознакомьтесь с рекомендациями по мультитенантности для конкретной службы.
- Ознакомьтесь с дополнительными ресурсами для архитекторов и разработчиков мультитенантных решений.