Поделиться через


Принципы проектирования рабочих нагрузок SaaS в Azure

Как независимый поставщик программного обеспечения (ISV), предоставляющий решение SaaS, вы отвечаете за архитектуру решения, и вы разделяете ответственность с вашим клиентом. Они полагаются на ваше решение, и проблемы могут каскадно к ним. Если ваша организация зрела и имеет установленную клиентскую базу, надежность и безопасность, скорее всего, ваши самые большие проблемы. Простои и нарушения безопасности могут иметь негативные последствия для доходов и репутации вашей компании.

Но многие поставщики программного обеспечения, особенно запускаемых поставщиков программного обеспечения, работают с ограниченными ресурсами, чтобы свести к минимуму затраты. Если ваша организация находится на этапе запуска, возможно, придется сделать агрессивные компромиссы, чтобы перейти к следующему этапу роста. Возможно, у вас нет выделенных команд для управления, безопасности или автоматизации развертывания, но не забудьте запланировать будущий рост. Если вам придется рисковать, примите вычисляемые решения.

Как вы разрабатываете решение, которое работает с низким объемом масштабирования, отличается от масштабируемого решения. Для поддержки быстрого роста необходимо разработать архитектуру рабочей нагрузки SaaS с гибкостью и адаптацией. В этой статье представлены основные принципы, касающиеся этой эволюции роста. Рассмотрим все пять столпов хорошо архитектора платформы вместе, в том числе компромиссы. Существует минимальный стандарт для всех столпов, поэтому рассмотрим каждый из них. Если вы не применяете эти принципы, вы можете ввести финансовые потери и уменьшить доверие клиентов.

Надежность

Принцип проектирования Рекомендации
Приоритет доступности. Ваше решение — это ваш бизнес. Поддерживайте высокий уровень доступности так же, как и практически. Если решение испытывает сбой, влияние может повлиять не только на ваших клиентов, но и на своих клиентов.
Будьте явным образом в соглашениях об уровне обслуживания , которые вы предлагаете вашим клиентам. При создании финансовых соглашений об уровне обслуживания для клиентов убедитесь, что их можно встретить и что компоненты, от которых вы зависите, совместимы с ними. Просмотрите составные соглашения об уровне обслуживания для базовых служб Azure в рамках процесса разработки соглашения об уровне обслуживания. Не делайте предположений. Отражает модель общей ответственности в соглашениях об уровне обслуживания.

Компромисс: надежность и стоимость. Для обеспечения высокой надежности часто требуется развернуть дополнительные ресурсы. Например, можно распределить ресурсы между несколькими зонами доступности или регионами. Некоторые службы Azure предлагают встроенную георепликацию или репликацию между зонами, но эти функции часто приходят с высокими затратами.

Принимать обоснованные решения о уровне устойчивости, который позволяет вашему бюджету. Если надежность некоторых компонентов или потоков в рабочей нагрузке не имеет финансовых последствий, рассмотрите возможности с низкой стоимостью для повышения устойчивости. Например, можно использовать зоны доступности служб платформы, регулярно создавать резервные копии данных в другое физическое расположение и использовать инфраструктуру в качестве кода (IaC) для быстрого повторного развертывания ресурсов во время процессов восстановления.

Безопасность

Принцип проектирования Рекомендации
Создайте управление в качестве основы для обеспечения безопасности. Создайте рекомендации по управлению с самого начала, а не решения проблем позже. Многие факторы влияют на безопасность, например управление ролями, упорядочивание ресурсов и реализацию политик. Без надежного управления средства управления безопасностью не защищают систему.
Следуйте базовым планам облачной безопасности с первого дня. Ожидайте аудиты безопасности от клиентов. Включите тропы аудита в начале разработки.
Изоляция клиентов и изоляция сегментов. Используйте модель аренды в качестве стратегии изоляции данных. Сегментируйте развертывания и среды.
Начните с нуля доверия и предоставьте минимальный доступ. По умолчанию позиция доступа отсутствует. Введите минимальный доступ только при необходимости. Используйте эту стратегию для управления удостоверениями и сетевого трафика. Регулярно просматривает потоки через систему и принимает меры по аномалиям.
Избегайте учетных данных, где это возможно. Если необходимо использовать учетные данные, защитите их. Относитесь к учетным данным как ответственности. Используйте надежные поставщики удостоверений и методы, которые свести к минимуму хранилище учетных данных. Если это невозможно, защитите учетные данные с помощью безопасных облачных подходов. Обработка учетных данных и секретов клиентов с максимальной осторожностью.
Внедрение безопасности в качестве текущего процесса. Непрерывно переоценьте состояние безопасности. Рассмотрим развивающийся ландшафт угроз, новые возможности и протоколы, а также обновленные требования к соответствию или нормативным требованиям.

Компромисс: оптимизация безопасности и затрат. Проектирование и эксплуатация безопасных решений являются дорогостоящими. Но вы можете добиться значительных шагов в направлении безопасности, таких как хорошее управление и соблюдение базовых показателей безопасности, с минимальными затратами. Определите баланс между экономичностью и идеальной безопасностью.

Оптимизация затрат

Принцип проектирования Рекомендации
Платите только за то, что вам нужно. Воспользуйтесь преимуществами функций управления затратами Майкрософт, чтобы понять общие затраты. Определите приоритеты наиболее дорогих категорий ресурсов для дальнейшего просмотра. Определите области, в которых можно перерасходить.
Используйте то, что вы оплачиваете. Максимальное значение из ресурсов, за которые вы оплачиваете, но это может быть недостаточно.
Моделиируйте затраты. Отслеживайте стоимость товаров, проданных. Узнайте о затратах на доставку решения клиентам. Этот процесс аналогичен производству физического продукта. Чтобы сообщить о принятии решений, следите за затратами для каждого клиента относительно дохода, который они генерируют. Чтобы быстро понять и объединить расходы Azure, реализуйте процессы управления, такие как хорошая организация ресурсов и теги.
Узнайте, как связаны затраты и доходы. Избегайте ситуаций, когда затраты увеличиваются без соответствующего роста доходов. Например, затраты могут увеличиться, если вы добавите новую функцию, которая предлагает неограниченное свободное хранилище. Аналогичным образом, если вы взимаете плату с клиентов на основе количества пользователей, убедитесь, что вы связываете функциональные возможности с пользователями.

Компромисс: оптимизация затрат и надежность. Чтобы создавать надежные решения, часто необходимо развертывать дополнительные компоненты, передавать больше данных и использовать более устойчивые номера SKU ключевых компонентов, все из которых увеличивают затраты. Добавленная надежность часто стоит расходов, но необходимо принять обоснованные решения. Чтобы компенсировать увеличение этих затрат, убедитесь, что вы эффективно используете другие компоненты и максимизируете их ценность.

Эффективность работы

Принцип проектирования Рекомендации
Общие сведения о модели общей ответственности. Четко определите обязанности поставщика облачных служб, клиентов и вашей организации. Убедитесь, что все знают, кто отвечает за какие задачи.
Подготовьтесь к работе с решением от имени клиентов. Настройте организацию, группу, процессы и средства для поддержки работы SaaS в большом масштабе.
Внедрение согласованных процессов. Используйте метки развертывания. Согласованность диска в конфигурации и архитектуре меток. Автоматизация или стандартизация процессов.
Формализация исключений или различий. Определите разные номера SKU для удовлетворения различных потребностей. Используйте этот метод, чтобы избежать пользовательских развертываний, конфигураций или кода для разных клиентов.
Безопасное развертывание изменений. Реализуйте безопасный процесс развертывания, который можно использовать для прогрессивного воздействия, постоянного мониторинга и отката при возникновении проблем. Используйте согласованный процесс для изменений кода, инфраструктуры и конфигурации. Управляйте количеством версий решений, которые развертываются в любое время.

Компромисс: операционное превосходство и стоимость сложности. Автоматизированные операции управления могут увеличить сложность решения и занять время для сборки. Изначально стоимость автоматизации может перевесить преимущества, особенно с небольшой клиентской базой. Но по мере роста числа клиентов затраты на автоматизацию оплачивают, а преимущества увеличиваются.

Оптимизация производительности

Принцип проектирования Рекомендации
Реализуйте глобальный масштаб, чтобы обеспечить глобальную производительность. Обеспечивает хороший опыт для глобальных клиентов с помощью многорегионных развертываний или ускорения маршрутизации трафика.
Квалифицируйте ожидаемый масштаб. Лучшие, средние и худшие сценарии роста. Проанализируйте тенденции и обратитесь к вашей группе продаж за реалистичными проекциями. Планирование гибких стратегий масштабирования для удовлетворения различных возможностей роста.
Общие сведения о точках масштабирования. Определите, где, скорее всего, требуется гибкость. Распространенные триггеры включают количество клиентов или клиентов, пользователей и транзакций на пользователя. Узнайте, как эти факторы изменяются по мере роста бизнеса и как они влияют на архитектуру.
Проектирование для горизонтального масштабирования. Масштабирование имеет ограничения, но масштабирование позволяет увеличить масштаб. Не все масштабируется, поэтому рекомендуется использовать метки развертывания для масштабирования решения в виде единицы, чтобы избежать ограничений масштабирования ресурсов.

Компромисс: эффективность производительности и надежность. Надежные системы часто требуют репликации данных в широких географических областях. В зависимости от структуры репликации эта настройка может привести к более высокой задержке и снижению пропускной способности. Например, если вы синхронно реплицируете важные данные между двумя регионами Azure, которые находятся в нескольких сотнях миль друг от друга, можно добавить сотни миллисекунда в время отклика из-за репликации в режиме реального времени.

Следующий шаг

Начните обучение, оптимизируя выставление счетов и стратегию управления затратами клиента.