Хорошо спроектированные рабочие нагрузки SaaS в Azure
Для создания и эксплуатации программного обеспечения как службы (SaaS) в Microsoft Azure требуется другой подход по сравнению с другими типами программного обеспечения. Независимые поставщики программного обеспечения (ISV) имеют уникальную позицию в облачной экосистеме, так как их решения SaaS управляют своим бизнесом. Они продают свои продукты бизнесу, также известному как бизнес-бизнес (B2B), или потребителям, также известным как бизнес-потребитель (B2C). Поставщики программного обеспечения обычно размещают и поддерживают решение SaaS, которое они создают. Их клиенты настраивают продукт и управляют данными.
Решение, созданное с помощью хорошо спроектированной платформы, гарантирует, что рабочая нагрузка может работать в масштабе. В этой серии статей содержатся основные сведения о создании масштабируемых, производительности, надежных и безопасных решений SaaS в Azure. Если вы еще не знакомы с хорошо спроектированной платформой, мы рекомендуем некоторое время узнать о своих принципах.
Ознакомьтесь с основами платформы Microsoft Azure Well-Architected Framework.
Что такое рабочая нагрузка SaaS?
Термин "рабочая нагрузка" относится к коллекции ресурсов приложений, которые поддерживают общую бизнес-цель или выполнение общего бизнес-процесса, с несколькими службами, такими как API и хранилища данных, работая вместе для обеспечения конкретных комплексных функциональных возможностей.
Термин SaaS относится к бизнес-модели доставки программного обеспечения как услуги. В качестве поставщика вы несете ответственность за доставку и эксплуатацию всего решения. Во время выполнения требований к изоляции клиентов, безопасности и соответствия требованиям необходимо тщательно управлять средами клиентов. Решения SaaS часто используют мультитенантную архитектуру, где ресурсы совместно используются несколькими клиентами. Этот подход влияет на проектирование и развертывание ресурсов, а также модель ценообразования, предлагаемую клиентам.
Каковы распространенные проблемы?
Microsoft Azure — это отличная платформа для доставки SaaS, обеспечивающая необходимую эластичность и масштабируемость. Она также предоставляет функции для автоматизации различных аспектов доставки SaaS. Однако доставка SaaS в Azure поставляется с собственным набором проблем:
Ожидания клиентов являются высокими, требовательными к качеству, безопасности и устойчивости. Для решений B2B вы, по сути, становится расширением ИТ-отделов клиентов, принимая на себя ответственность за поддержание работы и работоспособности решения. Для этого требуется переход от простого разработки программного обеспечения к его работе в масштабе.
Доставка SaaS означает балансировку собственных бизнес-потребностей с клиентами, которые иногда могут конфликтовить. Вы столкнетесь с давлением, чтобы снизить стоимость товаров, проданных (COGS) и повысить эффективность, в то время как клиенты требуют больше от вашего решения.
SaaS часто работает в большом масштабе или с агрессивными целями роста. По мере масштабирования производительность и надежность при снижении операционной сложности имеет решающее значение. Операции вручную непрактично, поэтому необходимы автоматизация и структурированные процессы, требующие степени операционной зрелости.
Изоляция является критически важным требованием при совместном использовании инфраструктуры между клиентами. Клиенты ожидают, что их данные будут защищены и обеспечивают согласованную производительность и надежность независимо от действий других клиентов. В качестве поставщика вы несете значительную ответственность за защиту данных и рабочих нагрузок клиентов, в том числе от других клиентов.
Какова модель зрелости для создания SaaS?
Организации по созданию продуктов SaaS обычно:
Стартапы или другие небольшие организации. Как правило, меньше людей и меньше ресурсов. Независимо от размера организации, SaaS требует некоторого уровня зрелости для удовлетворения высоких ожиданий клиентов. Клиенты доверяют организации защищать свои данные и другие ресурсы. Они также могут полагаться на решение для важных частей их операций. Поэтому эффективность работы и надежность становятся ключевыми аспектами решения.
Изначально стартапы должны определять приоритеты наиболее влияющих элементов для своих клиентов. Параллельно они должны планировать будущие улучшения архитектуры, такие как автоматизация, управление клиентами, сокращение затрат и повышение безопасности и надежности. Несмотря на то, что это может показаться нецелесообразным сначала, это стратегическое планирование служит схемой для постепенной реализации и непрерывного улучшения. По мере роста стартапа она должна адаптировать и уточнить свои процессы, внедрить новые технологии и соответствовать изменяющимся стандартам соответствия для эффективного масштабирования и поддержания доверия клиентов.
Установленные организации. Установленные организации, желающие модернизировать существующие решения, часто переносятся в модель SaaS. Несмотря на то, что у организации может быть больше ресурсов, проблемы становятся сложными. Они должны поддерживать существующих клиентов при разработке нового решения SaaS, которое может создавать операционные издержки. Для этого перехода требуются изменения в технической архитектуре, наборах навыков и общих бизнес-операциях. Основное внимание должно быть в том, чтобы минимизировать влияние на текущих клиентов и убедиться, что они получают аналогичные или улучшенные надежность, безопасность и производительность. После того как устаревшие решения становятся менее обременительными, организация может определить приоритеты новых функций и улучшений.
Как использовать это руководство?
✔ Начните с методологии проектирования, которая описывает обоснование и повторяющиеся темы в технических и операционных областях. Этот систематический подход помогает определять требования и стратегии проектирования. Вернитесь к этой методологии при возникновении неопределенных вариантов, чтобы оставаться в соответствии с общими целями рабочей нагрузки. Кроме того, она предоставляет платформу для совместной работы с маркетинговыми и торговыми командами для проверки технических решений и включения отзывов клиентов для непрерывного улучшения.
✔ Перейдите к принципам проектирования, чтобы узнать, как методология проектирования SaaS соответствует основным основам хорошо спроектированной платформы, учитывая эволюцию роста. Оцените базовые принципы для всех столпов коллективно, включая компромиссы.
✔ Сосредоточьтесь на областях проектирования, которые оказывают наибольшее влияние на ваше решение. Каждая область включает рекомендации и рекомендации, которые помогут вам в принятии решений по проектированию.
Области проектирования |
---|
Управление выставлением счетов и затратами: оцените стратегию выставления счетов и ее влияние на стоимость проданных товаров (COGS). Модель и прогнозирование изменений затрат по мере масштабирования бизнеса SaaS. Ищите способы оптимизации затрат на облачные ресурсы. |
Управление. Управление и регулирование использования облачной службы для создания безопасной среды Azure. |
Организация ресурсов. Планирование развертывания ресурсов для поддержки требований к масштабированию и затратам. |
Управление удостоверениями и доступом. Общие сведения об управлении удостоверениями в мультитенантной среде SaaS. Выберите соответствующего поставщика удостоверений и рассмотрите необходимость федерации с системами удостоверений клиентов. |
Вычисление. Выберите вычислительную платформу, которая соответствует вашим потребностям. Планирование изоляции клиентов, масштабируемости и устойчивости. |
Сеть. Планирование сетевого развертывания, включая топологию и защиту. Изоляция ресурсов между клиентами и соответствие требованиям к подключению, включая интеграцию с сетями и развертывание ресурсов в своих средах. |
Данные. Выберите подходящее хранилище данных и план для изоляции данных клиентов при сохранении эффективности работы. Рассмотрите возможность планирования емкости на основе масштаба и роста и убедитесь, что данные соответствуют требованиям к устойчивости клиентов. |
Методы DevOps: развертывание инфраструктуры и приложений для каждого клиента в соответствии с моделью аренды. Используйте структурированный подход для изменений, включая прогрессивные развертывания. |
Управление инцидентами: создание обязанностей по работе SaaS и необходимых культурных элементов в организации. Подготовка к инцидентам путем инвестиций в средства и процессы для расследования, исправления и связи. |
✔ Используйте средство проверки оценки для оценки готовности оптимизированной рабочей нагрузки SaaS в рабочей среде.
Совет
Каждое решение архитектуры включает в себя ряд соображений и набор признанных компромиссов, которые балансируют различные аспекты платформы. Эти компромиссы указываются этим значком. .
Какие ресурсы доступны?
Мультитенантность — это основная бизнес-методология разработки рабочих нагрузок SaaS. Дополнительные сведения см. в этих дополнительных ресурсах.
- Архитектура решения SaaS и мультитенантного решения. Предоставляет обширные и подробные рекомендации по проектированию SaaS, включая сведения о том, как конкретные службы Azure можно использовать для поддержки целей разработки SaaS.
Следующие шаги
Ознакомьтесь с методологией, необходимой для разработки рабочей нагрузки SaaS в Azure.