Configurar seu ambiente de desenvolvimento no macOS X

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

Pré-requisitos

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

Dica

Para instalar o Docker no seu Mac, siga as etapas da documentação do Docker. Depois da instalação, você pode usar o Docker Desktop para definir preferências, incluindo limites de recursos e utilização de disco.

Criar um contêiner local e configuração do Service Fabric

Para configurar um contêiner de Docker local e ter um cluster do Service Fabric em execução, execute as seguintes etapas:

  1. Atualize a configuração do daemon de Docker em seu host com as configurações a seguir e reinicie o daemon de Docker:

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

    Você pode atualizar essas configurações diretamente no arquivo daemon.json em seu caminho de instalação do Docker. Você pode modificar diretamente as definições de configuração do daemon no Docker. Selecione o ícone do Docker e então selecione Preferências>Daemon>Avançado.

    Observação

    É recomendável modificar o daemon diretamente no Docker porque o local do arquivo daemon.json pode variar de um computador para outro. Por exemplo, ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.

    Dica

    Ao testar aplicativos grandes, recomendamos aumentar os recursos alocados para o Docker. Isso pode ser feito selecionando o ícone do Docker e depois selecionando Avançado para ajustar a quantidade 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
    

    LTS do Ubuntu 18.04:

    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 padrão, isso busca a imagem com a versão mais recente do Service Fabric. Para obter revisões específicas, acesse a página Service Fabric Onebox no Docker Hub.

  3. Opcional: crie sua imagem estendida do Service Fabric.

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

    Observação

    Você pode adaptar a imagem acima com um Dockerfile para adicionar outros programas ou dependências a seu contêiner. Por exemplo, adicionar RUN apt-get install nodejs -y permitirá o suporte para aplicativos nodejs como executáveis convidados.

    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 padrão, isso busca a imagem com a versão mais recente do Service Fabric. Para análises específicas, visite a página Hub do Docker.

    Para compilar sua imagem reutilizável com base em Dockerfile, abra um terminal e cd para o diretório mantendo seu Dockerfile, depois execute:

    docker build -t mysfcluster .
    

    Observação

    Essa operação levará algum tempo, mas só precisa ser feita uma vez.

    Agora é possível iniciar rapidamente uma cópia local do Service Fabric sempre que for necessário 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
    

    Dica

    Forneça um nome para sua instância de contêiner para que ela possa ser tratada de forma mais legível.

    Se o seu aplicativo estiver escutando em determinadas portas, as portas deverão ser especificadas usando marcas -p adicionais. Por exemplo, se seu aplicativo estiver escutando na porta 8080, adicione a seguinte marca -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á algum tempo para iniciar. Quando estiver sendo executado, será possível exibir logs usando o seguinte comando ou ir até o painel para exibir a integridade dos clusters: http://localhost:19080

    docker logs sftestcluster
    
  5. Para interromper e limpar o contêiner, use o comando a seguir. No entanto, vamos usar esse contêiner na próxima etapa.

    docker rm -f sftestcluster
    

Limitações conhecidas

A seguir estão algumas limitações conhecidas do cluster local em execução em um contêiner para Mac’s:

  • O serviço DNS não é executado e no momento não tem suporte no contêiner. Problema nº 132
  • A execução de aplicativos baseados em contêiner requer executar o SF em um host Linux. No momento, 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 CLI do Service Fabric para instalar a CLI do Service Fabric (sfctl) no seu Mac. Os comandos da CLI dão suporte à interação com entidades do Service Fabric, incluindo clusters, aplicativos e serviços.

  1. Para conectar-se ao cluster antes de implantar aplicativos, execute o comando a seguir.
sfctl cluster select --endpoint http://localhost:19080

Criar seu aplicativo no Mac usando Yeoman

O Service Fabric fornece ferramentas de scaffolding que ajudarão a criar um aplicativo do Service Fabric no terminal usando gerador de modelos Yeoman. Use as etapas a seguir para garantir que o gerador de modelos Yeoman do Service Fabric esteja funcionando em seu computador:

  1. O Node.js e o Gerenciador de Pacotes do Node devem estar instalados no seu Mac. O software pode ser instalado usando HomeBrew, da seguinte maneira:

    brew install node
    node -v
    npm -v
    
  2. Instale o gerador de modelos Yeoman em seu computador com base no Gerenciador de Pacotes do Node:

    npm install -g yo
    
  3. Instale o gerador do Yeoman de sua preferência ao executar as etapas na documentação do guia de introdução. Para criar apps do Service Fabric usando o Yeoman, execute as etapas:

    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. Após a instalação dos geradores, crie os serviços do contêiner ou do executável do convidado executando yo azuresfguest ou yo azuresfcontainer respectivamente.

  5. Para criar um aplicativo Java do Service Fabric no seu Mac, o JDK versão 1.8 e o Gradle devem ser instalados no computador host. O software pode ser instalado usando HomeBrew, da seguinte maneira:

    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. Instale o JDK 8.

Implantar seu aplicativo no Mac desde o terminal

Depois de criar e compilar o aplicativo do Service Fabric, você pode implantar seu aplicativo usando a CLI do Service Fabric:

  1. Conecte-se ao cluster do Service Fabric em execução na instância de contêiner no seu Mac:

    sfctl cluster select --endpoint http://localhost:19080
    
  2. Do diretório do 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 iniciar a criação de aplicativos do Service Fabric em C#. Os pacotes de aplicativos do .NET Core Service Fabric estão hospedados em NuGet.org.

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

O Azure Service Fabric fornece um plug-in do Eclipse Neon (ou posterior) para o IDE do Java. O plug-in simplifica o processo de criação, compilação e implantação de serviços Java. Para instalar ou atualizar o plug-in do Service Fabric para Eclipse para a versão mais recente, execute estas etapas. As outras etapas na documentação do Service Fabric para Eclipse também são aplicáveis: criar um aplicativo, adicionar um serviço a um aplicativo, desinstalar um aplicativo e assim por diante.

A última etapa é instanciar o contêiner com um caminho que é compartilhado com o seu host. O plug-in requer que esse tipo de instanciação trabalhe com o contêiner do Docker em 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 da seguinte maneira:

  • /Users/sayantan/work/workspaces/mySFWorkspace é o caminho totalmente qualificado do workspace no seu Mac.
  • /tmp/mySFWorkspace é o caminho no interior do contêiner para onde o workspace deve ser mapeado.

Observação

Se você tiver um caminho/nome diferente para seu workspace, atualize esses valores no comando docker run.

Se você iniciar o contêiner com um nome diferente de sfonebox, atualize-o no arquivo testclient.sh em seu aplicativo Java do ator do Service Fabric.

Próximas etapas