Configurar seu ambiente de desenvolvimento no macOS X

Você pode criar aplicativos do Azure Service Fabric para serem executados em clusters Linux usando o macOS X. Este documento aborda como configurar o Mac para desenvolvimento.

Pré-requisitos

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

Gorjeta

Para instalar o Docker no seu Mac, siga os passos na documentação do Docker. Após a instalação, você pode usar 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. Você 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

    Modificar o daemon diretamente no Docker é recomendado porque o local do arquivo daemon.json pode variar de máquina para máquina. Por exemplo, ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.

    Gorjeta

    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 recentes:

    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
    

    Gorjeta

    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 sua imagem estendida do Service Fabric.

    Em um novo diretório, crie um arquivo chamado Dockerfile para construir sua imagem personalizada:

    Nota

    Você pode adaptar a imagem acima com um Dockerfile para adicionar programas ou dependências adicionais ao seu contêiner. 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"]
    

    Gorjeta

    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 construir sua imagem reutilizável a Dockerfilepartir do , abra um terminal e cd para o diretório que contém Dockerfile sua execução:

    docker build -t mysfcluster .
    

    Nota

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

    Agora você pode iniciar rapidamente uma cópia local do Service Fabric sempre que precisar, executando:

    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
    

    Gorjeta

    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 levará um momento para começar. Quando ele estiver em execução, você poderá exibir logs usando o seguinte comando ou ir para o painel para exibir a integridade dos clusters: http://localhost:19080

    docker logs sftestcluster
    
  5. Para parar e limpar o contêiner, use o seguinte comando. No entanto, usaremos esse contêiner na próxima etapa.

    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 atualmente não é suportado no contêiner. Edição #132
  • A execução de aplicativos baseados em contêiner requer a execução de SF em um host Linux. Atualmente, não há suporte para aplicativos de contêiner aninhados.

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 Node Package Manager devem 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 em sua máquina 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 instalar 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 do .NET Core 3.1 para Mac para começar a criar aplicativos C# Service Fabric. Os pacotes para aplicativos .NET Core Service Fabric são hospedados 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.

Próximos passos