Управление приложениями для использования в нескольких средах

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

Рассмотрим два простых примера:

  • служба ожидает передачи данных через определенный порт, но это должны быть разные порты во всех средах;
  • необходимо указать разные учетные данные привязки для базы данных во всех средах.

Указание конфигурации

Предоставляемую конфигурацию можно разделить на две категории.

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

Примечание

Не все атрибуты в файле манифеста приложения и файле манифеста служб поддерживают использование параметров. В таких случаях следует полагаться на замену строк в рабочем процессе развертывания. В Azure DevOps можно воспользоваться таким расширением, как Replace Tokens (https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens), а в Jenkins можно запустить задачу скрипта для замены значений.

Указание параметров при создании приложения

При создании именованных экземпляров приложения в Service Fabric имеется возможность передавать параметры. Способ их передачи зависит от того, как создается экземпляр приложения.

  • В PowerShell командлет New-ServiceFabricApplication принимает параметры приложения в виде хэш-таблицы.
  • При использовании sfctl команда sfctl application create принимает параметры в виде строки JSON. Сценарий install.sh использует sfctl.
  • Visual Studio предоставляет набор файлов параметров в папке Parameters в проекте приложения. Эти файлы параметров используются при публикации из Visual Studio с помощью Azure DevOps Services или Azure DevOps Server. В Visual Studio файлы параметров передаются в сценарий Deploy-FabricApplication.ps1.

Дальнейшие действия

В приведенных ниже статьях описывается, как использовать некоторые основные понятия, приведенные в этой статье: