Configurare l'ambiente di sviluppo in macOS X

È possibile creare applicazioni di Azure Service Fabric da eseguire nei cluster Linux usando macOS X. Questo documento illustra come configurare Mac per lo sviluppo.

Prerequisiti

Azure Service Fabric non viene eseguito in modo nativo in macOS X. Per eseguire un cluster di Service Fabric locale, viene fornita un'immagine del contenitore Docker preconfigurato. Prima di iniziare, è necessario soddisfare questi requisiti:

Suggerimento

Per installare Docker nel computer Mac, è possibile seguire la procedura descritta nella documentazione di Docker. Dopo l'installazione, è possibile usare Docker Desktop per impostare le preferenze, inclusi i limiti delle risorse e l'utilizzo del disco.

Creare un contenitore locale e configurare Service Fabric

Per configurare un contenitore Docker locale ed eseguirvi un cluster di Service Fabric, seguire questa procedura:

  1. Aggiornare la configurazione del daemon Docker nell'host con le impostazioni seguenti e riavviare il daemon Docker:

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

    È possibile aggiornare queste impostazioni direttamente nel file daemon.json nel percorso di installazione di Docker. È possibile modificare direttamente le impostazioni di configurazione del daemon in Docker. Selezionare l'icona Docker e quindi selezionare Preferences (Preferenze)>Daemon>Advanced (Avanzate).

    Nota

    È consigliabile modificare il daemon direttamente in Docker perché il percorso del file daemon.json può variare da computer a computer. ad esempio ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.

    Suggerimento

    È consigliabile aumentare le risorse allocate per Docker durante il test di applicazioni di grandi dimensioni. Questa operazione può essere eseguita selezionando l'icona Docker, quindi selezionando Advanced (Avanzate) per modificare il numero di core e la quantità di memoria.

  2. Avviare il cluster.
    Ubuntu 20.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:u20
    

    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
    

    Suggerimento

    Per impostazione predefinita, verrà eseguito il pull dell'immagine con la versione più recente di Service Fabric. Per revisioni specifiche, visitare la pagina Di Service Fabric Onebox in Docker Hub.

  3. Facoltativo: compilare l'immagine di Service Fabric estesa.

    In una nuova directory creare un file chiamato Dockerfile per compilare l'immagine personalizzata:

    Nota

    È possibile adattare l'immagine precedente con un Dockerfile per aggiungere programmi o dipendenze aggiuntive nel contenitore. Ad esempio, se si aggiunge RUN apt-get install nodejs -y sarà possibile supportare le applicazioni nodejs come eseguibili guest.

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

    Suggerimento

    Per impostazione predefinita, verrà eseguito il pull dell'immagine con la versione più recente di Service Fabric. Per revisioni specifiche, visitare la pagina Docker Hub.

    Per compilare l'immagine riutilizzabile dall'oggetto Dockerfile, aprire un terminale e cd per l'esecuzione Dockerfile diretta:

    docker build -t mysfcluster .
    

    Nota

    Questa operazione richiederà del tempo, ma è necessaria eseguirla solo una volta.

    Ora è possibile avviare rapidamente una copia locale di Service Fabric ogni volta che è necessaria eseguendo:

    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
    

    Suggerimento

    Specificare un nome per l'istanza del contenitore per poterla gestire in modo più leggibile.

    Se l'applicazione è in ascolto su determinate porte, le porte devono essere specificate usando tag -p aggiuntivi. Se ad esempio l'applicazione è in ascolto sulla porta 8080, aggiungere il tag -p seguente:

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

  4. L'avvio del cluster richiederà qualche minuto. Quando è in esecuzione, è possibile visualizzare i log usando il comando seguente o passare al dashboard per visualizzare l'integrità dei cluster: http://localhost:19080

    docker logs sftestcluster
    
  5. Per arrestare e pulire il contenitore, usare il comando seguente. Tuttavia, questo contenitore verrà usato nel passaggio successivo.

    docker rm -f sftestcluster
    

Limitazioni note

Le seguenti sono limitazioni note del cluster locale eseguito in un contenitore per Mac:

  • Il servizio DNS non viene eseguito e attualmente non è supportato all'interno del contenitore. Problema #132
  • L'esecuzione di app basate su contenitori richiede l'esecuzione di SF in un host Linux. Le applicazioni contenitore annidate non sono attualmente supportate.

Configurare l'interfaccia della riga di comando di Service Fabric (sfctl) in un computer Mac

Per installare l'interfaccia della riga di comando di Service Fabric (sfctl) in un computer Mac, seguire le istruzioni riportate in Interfaccia della riga di comando di Azure Service Fabric. I comandi dell'interfaccia della riga di comando supportano l'interazione con entità di Service Fabric come cluster, applicazioni e servizi.

  1. Eseguire questo comando per connettersi al cluster prima di distribuire le applicazioni.
sfctl cluster select --endpoint http://localhost:19080

Creare l'applicazione in un computer Mac usando Yeoman

Service Fabric fornisce strumenti di scaffolding che consentono di creare un'applicazione di Service Fabric dal terminale usando il generatore di modelli Yeoman. Usare la procedura seguente per assicurarsi che nel computer sia disponibile il generatore di modelli Yeoman di Service Fabric:

  1. Node.js e Node Package Manager devono essere installati nel Mac. Il software può essere installato usando HomeBrew, come segue:

    brew install node
    node -v
    npm -v
    
  2. Installare il generatore di modelli Yeoman nel computer da Node Package Manager:

    npm install -g yo
    
  3. Installare il generatore Yeoman preferito seguendo la procedura disponibile nella documentazione introduttiva. Per creare applicazioni di Service Fabric con Yeoman, seguire questa procedura:

    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. Al termine dell'installazione dei generatori, creare i servizi contenitore o eseguibili guest eseguendo rispettivamente yo azuresfcontainer o yo azuresfguest.

  5. Per compilare un'applicazione Java di Service Fabric nel computer Mac, JDK versione 1.8 e Gradle devono essere installati nel computer host. Il software può essere installato usando HomeBrew, come segue:

    brew update
    brew cask install java
    brew install gradle
    

    Importante

    Le versioni correnti di brew cask install java possono installare una versione più recente del JDK. Assicurarsi di installare JDK 8.

Distribuire l'applicazione nel computer Mac dal terminale

Dopo aver creato e compilato l'applicazione di Service Fabric, è possibile distribuirla con l'interfaccia della riga di comando di Service Fabric:

  1. Connettersi al cluster di Service Fabric in esecuzione nell'istanza del contenitore nel computer Mac:

    sfctl cluster select --endpoint http://localhost:19080
    
  2. Dalla directory di progetto eseguire lo script di installazione:

    cd MyProject
    bash install.sh
    

Configurare lo sviluppo di .NET Core 3.1

Installare .NET Core 3.1 SDK per Mac per iniziare a creare applicazioni C# Service Fabric. I pacchetti per le applicazioni .NET Core Service Fabric sono ospitati in NuGet.org.

Installare il plug-in Service Fabric per Eclipse nel computer Mac

Azure Service Fabric fornisce un plug-in per Eclipse Neon (o versione successiva) per l'ambiente IDE Java. Il plug-in semplifica il processo di creazione, compilazione e distribuzione di servizi Java. Per installare o aggiornare il plug-in Service Fabric per Eclipse alla versione più recente, seguire questa procedura. Sono applicabili anche gli altri passaggi della documentazione di Service Fabric per Eclipse: compilare un'applicazione, aggiungere un servizio a un'applicazione, disinstallare un'applicazione e così via.

L'ultimo passaggio prevede la creazione di un'istanza del contenitore con un percorso condiviso con l'host. Il plug-in richiede che questo tipo di creazione di istanza usi il contenitore Docker nel Mac, Ad esempio:

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

Gli attributi sono definiti come segue:

  • /Users/sayantan/work/workspaces/mySFWorkspace è il percorso completo dell'area di lavoro nel Mac.
  • /tmp/mySFWorkspace è il percorso all'interno del contenitore a cui eseguire il mapping dell'area di lavoro.

Nota

Se l'area di lavoro ha un nome/percorso diverso, aggiornare questi valori nel comando docker run.

Se si avvia il contenitore con un nome diverso da sfonebox, aggiornare il valore del nome nel file testclient.sh nell'applicazione Java di Service Fabric Actors.

Passaggi successivi