Настройка среды разработки в macOS X

Вы можете создавать Azure Service Fabric приложения для запуска в кластерах Linux с помощью macOS X. В этом документе описывается настройка Mac для разработки.

Предпосылки

Azure Service Fabric не выполняется изначально в macOS X. Для запуска локального кластера службы Fabric предоставляется предварительно настроенный образ контейнера Docker. Прежде чем приступить к работе, вам потребуется:

Подсказка

Чтобы установить Docker на компьютере Mac, выполните действия, описанные в документации По Docker. После установки можно использовать Docker Desktop для настройки параметров, включая ограничения ресурсов и использование дисков.

Создание локального контейнера и настройка службы Fabric

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

  1. Обновите конфигурацию демона Docker на вашем хосте, указав следующие параметры, и перезапустите демон Docker:

    {
        "ipv6": true,
        "fixed-cidr-v6": "fd00::/64"
    }
    

    Эти параметры можно обновить непосредственно в файле daemon.json в пути установки Docker. Вы можете напрямую изменить параметры конфигурации управляющей программы в Docker. Выберите значок Docker, а затем выберите Параметры>Демон>Дополнительно.

    Примечание.

    Рекомендуется изменить управляющую программу непосредственно в Docker, так как расположение файла daemon.json может отличаться от компьютера к компьютеру. Например, ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.

    Подсказка

    Мы рекомендуем увеличить ресурсы, выделенные Docker при тестировании больших приложений. Это можно сделать, выбрав значок Docker, а затем выбрав "Дополнительно ", чтобы настроить количество ядер и памяти.

  2. Запустите кластер.

    Latest:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:latest
    

    Ubuntu 18.04 LTS:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u18
    

    Подсказка

    По умолчанию это загрузит образ с последней версией Service Fabric. Для конкретных редакций посетите страницу Service Fabric Onebox на странице Docker Hub.

  3. Необязательно. Создайте расширенный образ Service Fabric.

    В новом каталоге создайте файл под названием Dockerfile, чтобы создать ваш настроенный образ.

    Примечание.

    Вы можете адаптировать приведенный выше образ с помощью Dockerfile, чтобы добавить в контейнер дополнительные программы или зависимости. Например, добавление RUN apt-get install nodejs -y позволит поддерживать приложения nodejs как гостевые исполняемые файлы.

    FROM mcr.microsoft.com/service-fabric/onebox:u18
    RUN apt-get install nodejs -y
    EXPOSE 19080 19000 80 443
    WORKDIR /home/ClusterDeployer
    CMD ["./ClusterDeployer.sh"]
    

    Подсказка

    По умолчанию это загрузит образ с последней версией Service Fabric. Для получения информации о конкретных ревизиях посетите страницу Docker Hub.

    Чтобы создать повторно используемый образ из Dockerfile, откройте терминал и cd перейдите в каталог, содержащий ваш Dockerfile, затем выполните команду:

    docker build -t mysfcluster .
    

    Примечание.

    Эта операция займет некоторое время, но требуется только один раз.

    Теперь вы можете быстро запустить локальную копию Service Fabric при необходимости, выполнив следующие действия:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mysfcluster
    

    Подсказка

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

    Если приложение прослушивает определенные порты, порты должны быть указаны с помощью дополнительных -p тегов. Например, если приложение прослушивает порт 8080, добавьте следующий -p тег:

    docker run -itd -p 19000:19000 -p 19080:19080 -p 8080:8080 --name sfonebox mcr.microsoft.com/service-fabric/onebox:u18

  4. Запуск кластера займет некоторое время. При запуске журналы можно просмотреть с помощью следующей команды или перейти на панель мониторинга для просмотра работоспособности кластеров: http://localhost:19080

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

    docker rm -f sftestcluster
    

Известные ограничения

Ниже перечислены известные ограничения локального кластера, работающего в контейнере для Mac:

  • Служба DNS не запускается и в настоящее время не поддерживается в контейнере. Проблема #132
  • Для запуска приложений на основе контейнеров требуется запуск SF на узле Linux. Вложенные контейнерные приложения на данный момент не поддерживаются.

Настройка интерфейса командной строки службы Fabric (sfctl) на компьютере Mac

Следуйте инструкциям в разделе Service Fabric CLI, чтобы установить интерфейс командной строки Service Fabric (sfctl) на компьютере Mac. Команды CLI позволяют взаимодействовать с объектами Service Fabric, включая кластеры, приложения и службы.

  1. Чтобы подключиться к кластеру перед развертыванием приложений, выполните следующую команду.
sfctl cluster select --endpoint http://localhost:19080

Создание приложения на Компьютере Mac с помощью Yeoman

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

  1. На вашем Mac должны быть установлены Node.js и менеджер пакетов Node.js (npm). Программное обеспечение можно установить с помощью HomeBrew следующим образом:

    brew install node
    node -v
    npm -v
    
  2. Установите генератор шаблонов Yeoman на компьютере с узла диспетчер пакетов:

    npm install -g yo
    
  3. Установите генератор Yeoman, который вы предпочитаете, выполнив действия, описанные в документации по началу работы. Чтобы создать приложения службы Fabric с помощью Yeoman, выполните следующие действия:

    npm install -g generator-azuresfjava       # for Service Fabric Java Applications
    npm install -g generator-azuresfguest      # for Service Fabric Guest executables
    npm install -g generator-azuresfcontainer  # for Service Fabric Container Applications
    
  4. Установив генераторы, создайте службы гостевых исполняемых файлов или службы контейнеров с помощью команды yo azuresfguest или yo azuresfcontainer соответственно.

  5. Чтобы создать приложение service Fabric Java на компьютере Mac, необходимо установить JDK версии 1.8 и Gradle на хост-компьютере. Программное обеспечение можно установить с помощью HomeBrew следующим образом:

    brew update
    brew cask install java
    brew install gradle
    

    Это важно

    Текущие версии brew cask install java могут устанавливать более новую версию JDK. Обязательно установите JDK 8.

Развертывание приложения на компьютере Mac из терминала

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

  1. Подключитесь к кластеру службы Fabric, работающему внутри экземпляра контейнера на компьютере Mac:

    sfctl cluster select --endpoint http://localhost:19080
    
  2. В каталоге проекта запустите скрипт установки:

    cd MyProject
    bash install.sh
    

Настройка среды разработки .NET Core 3.1

Установите пакет SDK .NET Core 3.1 для Mac, чтобы начать создавать приложения Service Fabric на C#. Пакеты .NET Core для приложений Service Fabric размещены на сайте NuGet.org.

Установите плагин Service Fabric для Eclipse на компьютере Mac

Azure Service Fabric предоставляет подключаемый модуль для Eclipse Neon (или более поздней версии) для интегрированной среды разработки Java. Подключаемый модуль упрощает процесс создания, сборки и развертывания служб Java. Чтобы установить или обновить подключаемый модуль Service Fabric для Eclipse до последней версии, выполните следующие действия. Другие действия в Service Fabric для документации Eclipse также применимы: создание приложения, добавление службы в приложение, удаление приложения и т. д.

Последний шаг — создать экземпляр контейнера, указав путь, общий с вашим хостом. Для работы с контейнером Docker на вашем Mac плагину требуется этот тип создания экземпляра. Рассмотрим пример.

docker run -itd -p 19080:19080 -v /Users/sayantan/work/workspaces/mySFWorkspace:/tmp/mySFWorkspace --name sfonebox mcr.microsoft.com/service-fabric/onebox:latest

Атрибуты определяются следующим образом:

  • /Users/sayantan/work/workspaces/mySFWorkspace — это полный путь к рабочему пространству на вашем Mac.
  • /tmp/mySFWorkspace — это путь, который находится внутри контейнера, в котором должна быть сопоставлена рабочая область.

Примечание.

Если у вас есть другое имя или путь для рабочей области, обновите эти значения в команде docker run .

Если вы запускаете контейнер с именем, отличным от sfonebox, обновите значение name в файле testclient.sh в вашем Java-приложении акторов Service Fabric.

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