Configurar o ambiente de desenvolvimento no macOS X

Pode criar aplicações do Azure Service Fabric para serem executadas em clusters do Linux com o macOS X. Este documento aborda como configurar o seu Mac para desenvolvimento.

Pré-requisitos

O Azure Service Fabric não é executado nativamente no macOS X. Para executar um cluster local do Service Fabric, é fornecida uma imagem de contentor do Docker pré-configurada. Antes de começar, precisará de:

Dica

Para instalar o Docker no seu Mac, siga os passos na documentação do Docker. Após a instalação, pode utilizar o Docker Desktop para definir preferências, incluindo limites de recursos e utilização do disco.

Criar um contentor local e configurar o Service Fabric

Para configurar um contentor do Docker local e executar um cluster do Service Fabric no mesmo, realize os passos seguintes:

  1. Atualize a configuração do daemon do Docker no seu anfitrião com as seguintes definições e reinicie-o:

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

    Pode atualizar estas definições diretamente no ficheiro daemon.json no caminho de instalação do Docker. Pode modificar diretamente as definições de configuração do daemon no Docker. Selecione o ícone de Dockere, em seguida, selecione Preferências>Daemon>Avançadas.

    Nota

    Recomenda-se modificar o daemon diretamente no Docker porque a localização do ficheiro daemon.json pode variar de computador para computador. Por exemplo, ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.

    Dica

    Recomendamos que aumente os recursos alocados ao Docker quando testar aplicações grandes. Pode fazê-lo selecionando o Ícone do Docker e, em seguida, selecionando Avançadas para ajustar o número de núcleos e memória.

  2. Inicie o cluster.

    Mais recente:

    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
    

    Dica

    Por predefinição, isto irá extrair a imagem com a versão mais recente do Service Fabric. Para revisões específicas, visite a página Onebox do Service Fabric no Docker Hub.

  3. Opcional: crie a sua imagem expandida do Service Fabric.

    Num novo diretório, crie um ficheiro chamado Dockerfile para criar a sua imagem personalizada:

    Nota

    Pode adaptar a imagem acima com um Dockerfile para adicionar programas ou dependências adicionais ao seu contentor. Por exemplo, se adicionar RUN apt-get install nodejs -y irá permitir o suporte para aplicações nodejs como convidado executáveis.

    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"]
    

    Dica

    Por predefinição, isto irá extrair a imagem com a versão mais recente do Service Fabric. Para revisões específicas, visite a página do Hub do Docker Hub.

    Para criar a sua imagem reutilizável a Dockerfilepartir do , abra um terminal e cd , em seguida, execute o diretório que mantém a sua Dockerfile :

    docker build -t mysfcluster .
    

    Nota

    Esta operação irá demorar algum tempo, mas só é necessária uma vez.

    Agora, pode iniciar rapidamente uma cópia local do Service Fabric sempre que precisar da mesma ao executar:

    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
    

    Dica

    Forneça um nome para a instância do contentor para poder processá-la de forma mais legível.

    Se a aplicação estiver a escutar em determinadas portas, as portas têm de ser especificada através da utilização de etiquetas -p adicionais. Por exemplo, se a sua aplicação estiver em escuta na porta 8080, adicione a seguinte etiqueta -p:

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

  4. O cluster demorará algum tempo a começar. Quando estiver em execução, pode ver os registos com o seguinte comando ou aceder ao dashboard para ver o estado de funcionamento dos clusters: http://localhost:19080

    docker logs sftestcluster
    
  5. Para parar e limpar o contentor, utilize o seguinte comando. No entanto, vamos utilizar este contentor no próximo passo.

    docker rm -f sftestcluster
    

Limitações Conhecidas

Seguem-se as limitações conhecidas do cluster local em execução num contentor para Mac:

  • O serviço DNS não é executado e não é atualmente suportado no contentor. Problema n.º 132
  • A execução de aplicações baseadas em contentores requer a execução de SF num anfitrião Linux. Atualmente, as aplicações de contentor aninhadas não são suportadas.

Configurar a CLI do Service Fabric (sfctl) no seu Mac

Siga as instruções em Service Fabric CLI para instalar a CLI do Service Fabric (sfctl) no seu Mac. Os comandos da CLI suportam a interação com as entidades do Service Fabric, incluindo clusters, aplicações e serviços.

  1. Para ligar ao cluster antes de implementar aplicações, execute o comando abaixo.
sfctl cluster select --endpoint http://localhost:19080

Criar uma aplicação no seu Mac com o Yeoman

O Service Fabric fornece ferramentas estruturais que o ajudam a criar uma aplicação do Service Fabric a partir do terminal, utilizando o gerador de modelos Yeoman. Utilize os seguintes passos para confirmar que o gerador de modelos Yeoman do Service Fabric está a funcionar na sua máquina:

  1. Node.js e o Node Package Manager têm de estar instalados no seu Mac. O software pode ser instalado utilizando o HomeBrew, da seguinte forma:

    brew install node
    node -v
    npm -v
    
  2. Instale o gerador de modelos Yeoman no seu computador a partir do Node Package Manager:

    npm install -g yo
    
  3. Instale o gerador Yeoman que prefira seguindo os passos na documentação da introdução. Para criar aplicações do Service Fabric utilizando o Yeoman, siga estes passos:

    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. Depois de instalar os geradores, crie serviços de contentor ou executáveis convidados ao executar yo azuresfguest ou yo azuresfcontainer, respetivamente.

  5. Para criar uma aplicação Java do Service Fabric no Mac, o JDK versão 1.8 e o Gradle devem estar instalados na máquina anfitriã. O software pode ser instalado utilizando o HomeBrew, da seguinte forma:

    brew update
    brew cask install java
    brew install gradle
    

    Importante

    As versões atuais do brew cask install java podem instalar uma versão mais recente do JDK. Certifique-se de que instala o JDK 8.

Implementar a aplicação no seu Mac a partir do terminal

Depois de criar e compilar a aplicação do Service Fabric, pode implementá-la com a CLI do Service Fabric:

  1. Ligue ao cluster do Service Fabric que está em execução dentro da instância de contentor no seu Mac:

    sfctl cluster select --endpoint http://localhost:19080
    
  2. A partir do diretório do seu projeto, execute o script de instalação:

    cd MyProject
    bash install.sh
    

Configurar o desenvolvimento do .NET Core 3.1

Instale o SDK .NET Core 3.1 para Mac para começar a criar aplicações do Service Fabric em C#. Os pacotes para aplicações do Service Fabric .NET Core estão alojados no NuGet.org.

Instalar o plug-in do Service Fabric para Eclipse no seu Mac

Fornece um plug-in do Azure Service Fabric para o Eclipse Neon (ou posterior) para o IDE Java. O plug-in simplifica o processo de criação e implementação de serviços Java. Para instalar ou atualizar o plug-in do Service Fabric para Eclipse para a versão mais recente, siga estes passos. Os outros passos na documentação do Service Fabric para o Eclipse também são aplicáveis: criar uma aplicação, adicionar um serviço a uma aplicação, desinstalar uma aplicação e assim sucessivamente.

O último passo consiste em instanciar o contentor com um caminho que é partilhado com o anfitrião. O plug-in requer este tipo de instanciação para trabalhar com o contentor do Docker no seu Mac. Por exemplo:

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

Os atributos são definidos do seguinte modo:

  • /Users/sayantan/work/workspaces/mySFWorkspace é o caminho completamente qualificado da área de trabalho no seu Mac.
  • /tmp/mySFWorkspace é o caminho que se encontra dentro do contentor para onde a área de trabalho deve ser mapeada.

Nota

Se tiver um nome/caminho diferente para a sua área de trabalho, atualize estes valores no comando docker run.

Se iniciar o contentor com um nome que não seja sfonebox, atualize o valor de nome no ficheiro testclient.sh na sua aplicação Java de atores do Service Fabric.

Passos seguintes