основы платформы Azure для стартапов

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

В этой статье вы узнаете, как

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

Необходимые условия

  • Активная подписка Azure.
  • Azure CLI установлен и вошел в систему. Чтобы войти, выполните команду az login.
  • Доступ владельца или участника по крайней мере к одной группе ресурсов.
  • Знакомство с целевой страницей портала Azure полезно, но не обязательно.
  • Базовое знакомство с Azure основами (регионами, подписками и группами ресурсов).

Почему это важно для стартапов

В стартапе на ранней стадии стоимость неправильного выбора инфраструктуры — не в счёте. Это та неделя, которую вы потеряете, когда будете мигрировать с неподходящего сервиса после того, как уже выстроили вокруг него свою систему. Пять опорных элементов, о которых говорится в этой статье, — это именно те области, где неудачно выбранный вариант по умолчанию со временем лишь усугубляет последствия: неподходящая вычислительная платформа формирует ваш конвейер развертывания; неподходящая база данных ограничивает вашу модель данных; неподходящая топология сети может закрыть вам путь к первому корпоративному клиенту. Чтобы правильно принимать такие решения, вам не нужны ни команда платформенной инженерии, ни инженер по обеспечению надежности, ни специалист по финоперациям. Вам нужен вариант по умолчанию, достаточно хороший для выпуска, и чёткий сигнал, который подскажет, когда его стоит пересмотреть. Если ваш стартап участвует в программе Microsoft for Startups, те же параметры по умолчанию позволяют эффективнее расходовать ваши кредиты и сохранять право на получение расширенных преимуществ в дальнейшем.

Вычисление: место выполнения кода

Azure имеет более десятка вычислительных служб. Хорошая новость: для большинства нагрузок на раннем этапе достаточно трех из них, чтобы покрыть ваши потребности.

Ваша ситуация Служба Azure по умолчанию Почему Пересматривать, когда
Веб-приложение или HTTP API, одна или две службы, требуется управляемая среда выполнения. Служба приложений Azure (Linux) Сборка контейнера не требуется. Встроенные TLS, пользовательские домены, слоты развертывания и автомасштабирование. Уровни Free и Basic достаточно недороги, чтобы использовать их для запуска тестовой среды, хотя для слотов и автомасштабирования требуется уровень Standard или выше. Вы хотите запускать больше чем несколько сервисов, вам нужно масштабирование отдельных сервисов или нужны sidecar-контейнеры.
Функция, управляемая событиями, запланированное задание или обработчик вебхука Функции Azure (план потребления) Оплата за выполнение. Масштабирование до нуля. Привязки позволяют избежать написания большей части вспомогательного кода для очередей, BLOB-объектов и HTTP-триггеров. Холодные запуски увеличивают задержку, заметную пользователям, либо превышаются лимиты плана Consumption.
Контейнеризированные микросервисы: вам нужна платформа выполнения с готовыми архитектурными решениями без необходимости управлять Kubernetes Приложения контейнеров Azure Создано на основе Kubernetes с автомасштабированием на основе KEDA, но вы не управляете кластером. Dapr доступен как необязательная интеграция. Включены масштабирование до нуля, ревизии и HTTPS-вход. Вам нужен элемент управления на уровне кластера, настраиваемый планировщик или расширенная сеть.
Длительно выполняющееся пакетное задание, обучение на GPU или миграция существующей рабочей нагрузки виртуальной машины по модели lift-and-shift Виртуальные машины Azure Полный контроль над операционной системой. Используйте масштабируемый набор виртуальных машин, если требуется горизонтальное масштабирование. Операционная нагрузка, связанная с установкой патчей и управлением образами, начинает замедлять выпуск.
Вы уверены, что вам действительно нужен Kubernetes (см. раздел 4, прежде чем делать такое предположение) Служба Azure Kubernetes Управляемая плоскость управления. Соответствует командам, у которых уже есть интерфейс Kubernetes или определенные требования к платформе. См. раздел "Контейнеры" для критериев принятия решений AKS.

Tip

Начните с App Service для своего первого общедоступного веб-приложения, а Функции Azure используйте для всего, что работает по событиям. Позже вы сможете перейти на Контейнеры приложений Azure или Служба Azure Kubernetes без изменения кода приложения, если приложение не хранит состояние, а параметры конфигурации сохраняются в переменных среды.

Выбор между приложениями контейнеров и службой приложений

Контейнерные приложения и Служба приложений частично совпадают по функциям. Решающий критерий: если ваше приложение уже работает как контейнерный образ и вам нужно масштабирование на уровне отдельных служб (например, разное число реплик для веб-уровня и фонового обработчика), побеждает Container Apps. Если приложение является одним веб-процессом, и вы не хотите поддерживать Dockerfile, служба приложений выигрывает.

Предостережение

Учитывайте Служба Azure Kubernetes, если у вас есть четкие требования, которые не соответствуют более простым параметрам. Хотя она обеспечивает надежную гибкость и контроль, она также содержит дополнительные операционные рекомендации (например, обновления, изменение размера пула узлов, конфигурация входящего трафика и управление сертификатами). Если они были приняты слишком рано, команды часто находят больше времени в управлении платформой, чем создание функций продукта.

Сеть: что настроить в день один

Большинству рабочих нагрузок Azure на раннем этапе не требуется виртуальная сеть с самого начала. App Service, Functions, Container Apps и большинство управляемых баз данных предоставляют общедоступные конечные точки, защищённые TLS, которые можно безопасно открывать для внешнего доступа, если аутентификация настроена правильно. Добавление сложности сети перед тем, как у вас есть причина, является наиболее распространенной преждевременной оптимизацией на Azure.

Ваша ситуация Подход по умолчанию Почему Пересматривать, когда
Совершенно новое приложение, общедоступный веб-трафик, требований к соответствию пока нет Используйте общедоступную конечную точку с TLS. Нет виртуальной сети. Самые низкие операционные издержки. Служба приложений, приложения-контейнеры и управляемые базы данных обрабатывают протокол TLS. Используйте Microsoft Entra ID для проверки подлинности. Ваш первый корпоративный клиент запрашивает частное подключение.
Вам требуется частное подключение между приложением и управляемой базой данных Интеграция виртуальной сети на стороне вычислений, частная конечная точка на стороне базы данных Трафик остается в магистральной сети Microsoft. Общий доступ к базе данных отсутствует. Тот же управляемый сервис, без изменений в приложении. День один, если вы обрабатываете защищенные данные; в противном случае, когда запросит аудит или клиент.
Вам нужна единая общедоступная точка входа, которая служит внешней точкой доступа для нескольких внутренних сервисов и обеспечивает маршрутизацию, завершение TLS и межсетевой экран веб-приложений. Azure Front Door (глобально) или Шлюз приложений Azure (региональный) Front Door добавляет глобальную сеть доставки контента и кэширование на периферии. Application Gateway — это региональный вариант, изначально предназначенный для виртуальной сети. Вам больше не хватает встроенных возможностей App Service для TLS и маршрутизации.
Вам нужны исходящие статические IP-адреса (например, список разрешений обработчика платежей) Шлюз NAT, подключенный к виртуальной сети Прогнозируемый исходящий IP-адрес. Требуется многим сторонним API. Этого требует поставщик. Не добавляйте это наугад.
Топология с несколькими регионами или несколькими учетными записями Пиринг виртуальных сетей или Виртуальная глобальная сеть Azure Реальная сетевая архитектура начинается здесь. Не входит в круг задач большинства команд на этапе изучения. Мультирегион является реальным требованием, а не стремлением.

Important

Заблокируйте Microsoft Entra ID и назначения ролей подписки, прежде чем беспокоиться об изоляции сети. Большинство инцидентов безопасности в Azure в небольших компаниях происходит из-за учётной записи с избыточными правами, а не из-за открытого сетевого доступа. Используйте группы Microsoft Entra ID для предоставления инженерного доступа и не назначайте роль "Владелец" на уровне подписки.

Хранилище: BLOB-объекты, файлы и диски

служба хранилища Azure — это один тип ресурса (учетная запись хранения), который предоставляет четыре службы данных: большие двоичные объекты, файлы, очереди и таблицы. Для решений хранилища приложений вы почти всегда выбираете между blob-объектами (хранилище объектов), файлами (управляемыми общими папками) и управляемыми дисками (блочное хранилище, подключенное к виртуальной машине).

То, что вы храните Служба Azure по умолчанию Почему Пересматривать, когда
Загруженные пользователем файлы, созданные отчеты, журналы, артефакты модели, резервные копии Хранилище BLOB-объектов Azure (горячий уровень) Хранилище объектов. Дешевые, устойчивые, масштабируемые до петабайтов. Позже используйте холодный или архивный уровень хранения для данных, к которым вы обращаетесь нечасто. Вам нужна семантика ФАЙЛА POSIX или случайное чтение и запись в один файл с нескольких компьютеров.
Общая файловая система, смонтированная на нескольких виртуальных машинах или в контейнерах Файлы Azure (стандартный) или Azure NetApp Files (высокая пропускная способность) Общие тома Server Message Block (SMB) или Network File System (NFS). Избегайте использовать их для контента, который подходит для blob-модели. Вы начинаете использовать общую папку в качестве очереди или базы данных. Перейдите к правому примитиву.
Диски для виртуальной машины Управляемые диски SSD уровня "Премиум" версии 2 Настраиваемая производительность и хорошее соотношение цены и производительности для дисков приложений. Ssd уровня "Премиум" версии 2 нельзя использовать в качестве диска ОС; свяйте его с SSD уровня "Премиум" (версия 1) или SSD уровня "Стандартный" для ОС. SSD типа «Стандартный» подходит для нагрузок с низкой интенсивностью ввода-вывода. Для виртуальных машин требуется общее хранилище блоков (используйте Azure Elastic SAN или Azure NetApp Files).
Статические ресурсы веб-сайта (пакет одностраничных приложений, маркетинговый сайт, документация) служба хранилища Azure размещение статических веб-сайтов + Azure Front Door Статические веб-приложения — это современный стандарт по умолчанию: встроенные пользовательские домены, бесплатный управляемый ПРОТОКОЛ TLS, глобальное распределение, GitHub Actions CI/CD и встроенная проверка подлинности. Связка статического веб-сайта в Storage и Front Door по-прежнему подходит для очень бюджетных конфигураций, но изначально не поддерживает пользовательские заголовки или аутентификацию. Вы добавляете отрисованные сервером страницы. Перейдите к службе приложений или приложениям-контейнерам.

Note

Учетные записи хранилища имеют мягкое ограничение в 250 учетных записей на регион в рамках одной подписки (можно увеличить до 500 по запросу). Этого вполне достаточно для команд на раннем этапе развития. Ошибка, которую следует избежать, заключается в создании одной учетной записи хранения для каждой микрослужбы; группировать по среде (рабочей, промежуточной, разработке) и по шаблону доступа (горячей, холодной, архивной) вместо этого.

Примечание о резервных копиях

Azure Backup и параметры избыточности учетной записи хранения (локально избыточное хранилище, хранилище, избыточное по зонам, геоизбыточное хранилище) настраиваются для каждой учетной записи и на диск. Локально избыточное хранилище (LRS) хорошо подходит для разработки и промежуточного хранения. Используйте избыточное по зонам хранилище (ZRS) для рабочих данных. Геоизбыточное хранилище добавляет затраты и не заменяет аварийное восстановление на уровне приложения.

Контейнеры и Служба Azure Kubernetes

Azure имеет три способа запуска контейнеров в рабочей среде: Контейнеры приложений Azure, Экземпляры контейнеров Azure и Служба Azure Kubernetes. Они соответствуют командам разного размера и различным операционным потребностям.

Ваша ситуация Служба Azure по умолчанию Почему Когда он начинает болеть
У вас есть образы контейнеров, и вам нужна управляемая среда выполнения с HTTPS-входом, масштабированием до нуля и ревизиями Приложения контейнеров Azure Бессерверная платформа в Kubernetes с автомасштабированием KEDA, но вы не видите или управляете кластером. Платите только за то, что работает. Хороший вариант, пока не столкнётесь с требованиями на уровне кластера. Dapr доступен как интеграция с согласием. Вам нужны настраиваемые планировщики, расширенные сетевые возможности (несколько сетевых интерфейсных карт, пользовательские плагины CNI) или конкретные операторы Kubernetes.
Вы хотите запустить один контейнер как разовую задачу или кратковременную пакетную задачу Экземпляры контейнеров Azure Самый быстрый путь от образа к запущенному контейнеру. Нет оркестрации. Посекундная оплата времени выполнения. Вам нужно что-то вроде service mesh или автомасштабирования, не ограничивающегося одним контейнером.
Вы уже используете Kubernetes в другой среде, или архитектура вашего приложения действительно требует Kubernetes Служба Azure Kubernetes Управляемая плоскость управления. Используйте собственные пулы узлов, сетевой плагин, Ingress-контроллер и стек наблюдения. День один. Планирование текущих обновлений (дополнительная версия, выпущенная каждые 4 месяца), настройка пула узлов и управление сертификатами.
Вы не уверены, требуется ли Вам Kubernetes Контейнерные приложения на данный момент При необходимости можно перестроиться на Служба Azure Kubernetes позже. Перенос контейнеризированного приложения без сохранения состояния занимает несколько дней, а не недель. У вас есть конкретные потребности (экосистема операторов, политика на уровне кластера), которые можно назвать. «Задел на будущее» не является конкретной необходимостью.

Когда следует переходить на AKS

Переходите на Azure Kubernetes Service (AKS), если как минимум два из следующих условий верны:

  • Вы запускаете более десяти сервисов с единым жизненным циклом и общими сетевыми аспектами.
  • Вам нужны пользовательские контроллеры, sidecar-контейнеры или пользовательские определения ресурсов (CRD), которые не поддерживаются в Container Apps.
  • Требуется глубокая интеграция виртуальной сети с строгим применением политик.
  • Вы стандартизируете экосистему на основе Kubernetes открытый код (Argo, Istio, KEDA и т. д.).

При внедрении AKS следуйте архитектуре базовых показателей AKS. Microsoft Azure Well-Architected Framework и эталонная архитектура AKS Baseline в совокупности охватывают рекомендуемые базовые параметры безопасности, масштабирования и обновления.

AkS по умолчанию для небольшой команды

Setting Default Почему
Размер узла системный пул Standard_D4s_v5, пул пользователей Standard_D8s_v5 Прогнозируемая цена на производительность для общих рабочих нагрузок
Автоматическое масштабирование кластера Enabled Избегайте оплаты за неактивные узлы
Идентификация рабочей нагрузки Enabled Заменяет идентификатор pod, интегрируется с Microsoft Entra ID
надстройка Политика Azure Enabled Бесплатные ограничения (без привилегированных контейнеров, обязательные метки)
Аналитика контейнеров Enabled Метрики и журналы первого класса в Azure Monitor
Частный кластер Включено для рабочей среды Плоскость управления, доступная только из виртуальной сети

Реестр контейнеров Azure (Реестр контейнеров Azure)

Независимо от выбранной вычислительной платформы сохраните изображения в Реестр контейнеров Azure. Базовый уровень достаточно для ранних команд. Используйте отдельный реестр для каждой среды (рабочей, промежуточной), если требуется жесткая изоляция, или один реестр с отдельными репозиториями и управлением доступом на основе ролей, если требуется простота.

Платформа данных: реляционная, документ, вектор, аналитика

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

Рабочая нагрузка Служба Azure по умолчанию Почему Пересматривать, когда
Данные транзакционного приложения (пользователи, заказы, содержимое) с известной реляционной схемой База данных Azure для PostgreSQL (гибкий сервер) Зрелая, хорошо понятная, с мощной экосистемой расширений (включая pgvector для эмбеддингов). Уровень с настраиваемой производительностью достаточно недорогой для разработки и тестирования. Шаблоны чтения с несколькими регионами или гипермасштабированием. Рассмотрим Azure Cosmos DB для PostgreSQL.
Операционные данные с гибкой схемой, глобальное распределение, предсказуемое чтение с задержкой в единицы миллисекунд Azure Cosmos DB (API NoSQL) По умолчанию несколько регионов. Бессерверный тариф достаточно недорогой, чтобы начать с него. Важно правильно спроектировать секционирование; перед выпуском ознакомьтесь с руководством по ключу секционирования. Вы заставляете реляционные соединения через слой приложения. PostgreSQL, вероятно, правильный ответ.
Поиск по структурированным и неструктурированным данным, в том числе генерация с дополнением поиском (RAG) Поиск с использованием ИИ Azure Гибридное ключевое слово и векторный поиск. Интегрируется с Служба Azure OpenAI и Cosmos DB. Есть бесплатный тариф для создания прототипов. Вы превысили лимиты индекса для текущего уровня (Standard 1 — распространённый вариант обновления).
Векторные эмбеддинги для функции генерации, дополненной поиском Начните с pgvector в PostgreSQL или Поиск с использованием ИИ Azure Избегайте отдельной базы данных векторов для первой версии функции извлечения. Вы узнаете, что вам действительно нужно (фильтрация, гибридный поиск, масштабирование) от реального использования. Вы охарактеризовали характер чтения, и имеющиеся ограничения оправдывают использование специализированного движка.
Аналитика, отчетность и произвольные запросы к данным рабочей системы реплика для чтения База данных Azure для PostgreSQL (ознакомление), Microsoft Fabric (развертывание и извлечение) Для большинства задач аналитики на этапе Explore достаточно реплики для чтения. Microsoft Fabric — это современная платформа для аналитики, когда возможностей прежнего решения вам уже не хватает. Ваши реплики чтения не справляются с нагрузкой, или бизнес-пользователям нужен инструмент самообслуживания для аналитики.
Слой кэширования перед базой данных Кэш Azure для Redis (базовый уровень) Стандартный примитив кэширования. Дешевые, чтобы добавить позже; не добавляйте спекулятивно. Вы видите явный паттерн интенсивного чтения, который перегружает базу данных. Измерьте перед добавлением.

Important

Выберите одну базу данных по умолчанию и оставайтесь на ней до тех пор, пока вы можете. Команда из пятнадцати инженеров, которая поддерживает PostgreSQL, Cosmos DB, Redis, ИИ-поиск, систему очередей и графовую базу данных, случайно взяла на себя объём работы, сопоставимый с работой целой платформенной команды.

Где Служба Azure OpenAI подходит

Служба Azure OpenAI не является платформой данных, но использует тот же ритм принятия решений. Большинство стартапов, разрабатывающих функцию на основе генеративного ИИ, начинают с одного развертывания модели (одной из последних моделей для завершения чата) в одном регионе, а также с AI Search или pgvector для извлечения данных. Вам не нужны отдельный конвейер тонкой настройки, шлюз для моделей или несколько развертываний, пока практика использования не покажет, что они нужны.

Что рассматривается в этой статье (и что в ней не рассматривается)

Тема В этой статье Когда его добавить
Управление идентификацией и доступом: за рамками основ Нет День один для настройки Microsoft Entra ID. Условный доступ и управление привилегированными удостоверениями при проведении проверки информационной безопасности.
Инфраструктура как код (Bicep, Terraform) Нет Когда изменения, вносимые вручную в портал, начинают расходиться между средами. Обычно примерно тогда, когда вы добавляете staging.
Непрерывная интеграция и конвейеры непрерывного развертывания Нет День один. GitHub Actions или Azure DevOps Pipelines — подойдут оба варианта.
Наблюдаемость (логи, метрики, трассировки) Нет Application Insights с первого дня. Рабочие книги Azure Monitor при усталости от оповещений.
Управление затратами Нет Задайте бюджет на уровне подписки в день один. Помечайте ресурсы тегами среды и владельца с самого начала.
Соответствие требованиям (SOC 2, ISO 27001, HIPAA) Нет Когда клиент просит. Microsoft Defender для облака имеет панель мониторинга соответствия требованиям, которая сопоставляет элементы управления с Azure ресурсами.
Аварийное восстановление и многорегионное восстановление Нет Когда стоимость часа простоя превышает затраты на проектирование второго региона.

Когда стандартных возможностей платформы уже недостаточно

Эти сигналы роста говорят вам, что определенное значение по умолчанию требует более преднамеренной замены:

  • Вы развернули более пяти отдельных служб в службе приложений или контейнерных приложениях, а масштабирование для каждой службы становится ежедневной проблемой. Посмотрите на Служба Azure Kubernetes.
  • Ваш ежемесячный Azure счет растет быстрее, чем ваш ежемесячный доход в течение двух месяцев подряд. Время для проверки управления затратами и анализа зарезервированного экземпляра или плана экономии.
  • Виртуальная сеть теперь охватывает несколько подписок или регионов. Посмотрите на Виртуальная глобальная сеть Azure и топологию концентратора и периферийной топологии.
  • Один экземпляр PostgreSQL не может уместить в памяти весь рабочий объём данных, а реплики для чтения не устраняют этот разрыв. Посмотрите на Cosmos DB для PostgreSQL или сегментированную архитектуру.
  • Запросы аналитики в рабочей базе данных заметно влияют на задержку приложения. Перенесите аналитику в Microsoft Fabric.
  • Вы используете более двух учетных записей хранения для каждой среды для одного и того же шаблона доступа. Консолидировать.
  • Вы добавили третью страну с платящими клиентами. Пора оценить второй регион, геоизбыточное хранилище и стратегию маршрутизации с помощью Front Door.

Note

Сопротивляйтесь соблазну принять инструменты корпоративной платформы рано. Большинство из перечисленных выше подходов (service mesh, многорегиональная схема active-active, инструменты FinOps, пользовательские операторы Kubernetes) увеличивают операционную сложность и окупаются только при большом масштабе. Добавляйте их только когда у вас есть команда, которая сможет их поддерживать, а не раньше.

Контрольный список ссылок

Проходите через этот раз в месяц в течение первых шести месяцев на Azure. Он обнаруживает наиболее распространённый дрейф.

  • Одна подписка для каждой среды (рабочей, тестовой, разработки) или одна подписка со строгим разделением по группам ресурсов для каждой среды. Не смешивайте.
  • Каждый ресурс помечен тегами среды, владельца и центра затрат (даже если сегодня значение центра затрат у всех одинаковое).
  • Бюджет на уровне подписки с оповещениями при достижении 50 %, 80 % и 100 % ежемесячного целевого значения в Управлении затратами.
  • Группам Microsoft Entra ID, а не отдельным пользователям, назначаются роли в группах ресурсов. На уровне подписки нет постоянной роли Owner.
  • Application Insights или Azure Monitor включен для каждого рабочего вычислительного ресурса.
  • Резервные копии рабочей базы данных проверяются документируемым тестом восстановления (по крайней мере один раз).
  • Секреты находятся в Azure Key Vault, а не в конфигурации приложения. Используйте управляемые удостоверения для доступа от вычислительных ресурсов к Key Vault.
  • Образы контейнеров сканируются (Microsoft Defender для контейнеров или встроенного сканера реестра).