Горизонтальное масштабирование для приложений Databricks

Important

Эта функция доступна в бета-версии. Чтобы запросить доступ, обратитесь к своему представителю Azure Databricks. После включения функции администраторы рабочих областей могут управлять доступом к нему на странице "Предварительные версии ". См. статью "Управление предварительными версиями Azure Databricks".

На этой странице описывается, как запустить приложение Databricks в нескольких экземплярах за одним URL-адресом приложения для повышения доступности и параллелизма.

Горизонтальное масштабирование распределяет запросы между экземплярами, поэтому сбой или перезапуск одного экземпляра не приводит к недоступности приложения. Стоимость вычислений линейно масштабируется с числом экземпляров.

К дополнительным преимуществам относятся следующие преимущества:

  • Привязка сеанса: Каждый запрос от одного и того же пользователя по возможности направляется к одному и тому же экземпляру, поэтому приложение может хранить в этом экземпляре кратковременные пользовательские данные (например, кэш в памяти). Также известен как липкие сеансы. См. сопоставление сеансов.
  • Развертывания без простоя: Azure Databricks сначала развертывает новую версию на экземпляре сборки и обновляет остальные экземпляры только после того, как этот экземпляр успешно отработает. Существующие экземпляры продолжают обслуживать трафик на протяжении всего.
  • Стабильные кэши сборки: Azure Databricks сохраняет артефакты развертывания при обновлениях вычислительных ресурсов (например, при изменении размера или количества экземпляров), поэтому приложению не нужна полная пересборка.

Requirements

Следующие требования применяются ко всем приложениям горизонтально масштабируемого масштаба:

  • В период бета-версии приложение должно прослушивать 0.0.0.0 (не 127.0.0.1 или localhost).

Создание горизонтально масштабируемого приложения

Чтобы создать приложение с поддержкой горизонтального масштабирования, выполните приведенные действия.

  1. В рабочей области Azure Databricks щелкните значок App icon. и выберите в переключателе приложений Databricks Apps.
  2. Нажмите кнопку "+ Создать приложение", а затем нажмите кнопку "Создать пользовательское приложение".
  3. Введите имя и настройте приложение, как описано в разделе "Создание настраиваемого приложения Databricks".
  4. На шаге "Настройка" выберите "Включить горизонтальное масштабирование".
  5. Укажите количество экземпляров (1–5). Azure Databricks рекомендует как минимум 2 экземпляра для обеспечения доступности.
  6. Нажмите кнопку "Создать приложение".

Включение горизонтального масштабирования для одного приложения не влияет на другие приложения в рабочей области.

Недавно созданные горизонтально масштабируемые приложения не включают предварительно установленные Python библиотеки. Объявите все зависимости в requirements.txt или pyproject.toml. См. статью "Управление зависимостями" для приложения Databricks.

Преобразование стандартного приложения для использования горизонтального масштабирования

Преобразуйте существующее стандартное приложение в горизонтально масштабируемое приложение на вкладке "Параметры ". Преобразование не вызывает простоя. Существующее стандартное приложение продолжает обслуживать трафик до тех пор, пока новое горизонтально масштабируемое развертывание не пройдет проверки работоспособности, после чего Azure Databricks переключает на него трафик.

Преобразование является обратимым. Вы можете преобразовать горизонтально масштабируемое приложение в стандартное приложение на той же вкладке "Параметры ".

Поведение преобразования

Следующее поведение применяется во время преобразования:

Проверка преобразования

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

  1. Создайте дубликат стандартного приложения, которое вы хотите преобразовать.
  2. Преобразуйте дубликаты, выполнив следующие действия.
  3. Убедитесь, что приложение работает должным образом с преобразованным дубликатом. Проверьте журналы, трафик и любое поведение сходства сеансов.
  4. Преобразуйте рабочее приложение после проверки.

Преобразование стандартного приложения

Чтобы преобразовать стандартное приложение в горизонтальное масштабирование:

  1. В рабочей области Azure Databricks щелкните значок App icon. и выберите в переключателе приложений Databricks Apps.
  2. Щелкните имя приложения, которое вы хотите преобразовать.
  3. Перейдите на вкладку Параметры.
  4. В разделе "Вычисления" выберите "Включить горизонтальное масштабирование". Azure Databricks задает количество экземпляров в значение 1, которое требуется во время преобразования.
  5. Нажмите кнопку Сохранить.

Azure Databricks запускает новые горизонтально масштабируемые вычислительные ресурсы, а затем развертывает приложение на нем. Общее время зависит от длительности сборки приложения. Имеющееся приложение при этом продолжает обрабатывать трафик.

После завершения преобразования можно масштабировать или отказаться от предварительно установленных библиотек.

Управление числом экземпляров

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

  1. На странице сведений о приложении нажмите кнопку "Изменить".
  2. На шаге настройки обновите число экземпляров.
  3. Нажмите кнопку Сохранить.

Приложение продолжает обслуживать трафик, пока Azure Databricks применяет изменение.

Сходство сеансов

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

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

Вы также можете сохранять данные с помощью Lakebase.

Приложения на основе браузера

Сопоставление сеансов работает автоматически для приложений на основе браузера. Первый запрос от браузера маршрутизируется на случайно выбранный экземпляр, который устанавливает cookie-файл __Host-databricks-app-router. Последующие запросы с этим cookie маршрутизируются к тому же экземпляру.

Клиенты API

Чтобы обеспечить привязку сеанса для клиентов API, включайте cookie __Host-databricks-app-router в каждый запрос и задавайте для него случайно сгенерированный UUID. Все запросы с одинаковым значением файла cookie направляются к одному экземпляру.

curl -X GET https://<your-app>.aws.databricksapps.com/api/endpoint \
  -H "Authorization: Bearer YOUR_BEARER_TOKEN" \
  -b "__Host-databricks-app-router=f8822466-3b1e-423a-988b-54c9e639c250"

Переназначение сеанса

Сеансы могут переноситься на другой экземпляр в следующих случаях:

  • Экземпляр становится недоступным (например, во время развертывания или сбоя).
  • Вы изменяете число экземпляров.
  • Azure Databricks перераспределяет сеансы между экземплярами.
  • Отдельный запрос неправильно перенаправляется (редко).

Ограничения

Следующие ограничения применяются к горизонтально масштабируемым приложениям:

  • Каждая рабочая область может иметь не более 5 горизонтально масштабируемых приложений. Обратитесь к своему представителю Azure Databricks, чтобы увеличить это ограничение.
  • Каждое горизонтально масштабируемое приложение может иметь не более 5 экземпляров. Обратитесь к своему представителю Azure Databricks, чтобы увеличить это ограничение.
  • Вкладка Logs показывает журналы только для одного экземпляра одновременно. Чтобы просмотреть логи во всех экземплярах, включите телеметрию приложения.