Configurer votre environnement de développement sur macOS X

Vous pouvez générer des applications Azure Service Fabric pour qu’elles s’exécutent sur des clusters Linux à l’aide de macOS X. Ce document explique comment configurer votre Mac pour le développement.

Prérequis

Azure Service Fabric n’est pas exécuté en mode natif sur macOS X. Pour exécuter un cluster Service Fabric local, une image conteneur Docker préconfigurée est fournie. Avant de commencer, vous avez besoin des éléments suivants :

Conseil

Pour installer Docker sur votre Mac, suivez les étapes indiquées dans la documentation de Docker. Après l’installation, vous pouvez utiliser Docker Desktop pour définir les préférences, notamment les limites de ressources et l’utilisation du disque.

Créer un conteneur local et configurer Service Fabric

Pour configurer un conteneur Docker local et y exécuter un cluster Service Fabric, procédez comme suit :

  1. Mettez à jour la configuration du démon Docker sur votre ordinateur hôte avec les paramètres suivants, puis redémarrez le démon Docker :

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

    Vous pouvez mettre à jour ces paramètres directement dans le fichier daemon.json dans votre chemin d’installation de Docker. Vous pouvez modifier directement les paramètres de configuration du démon dans Docker. Sélectionnez l’icône de Docker, puis sélectionnez Préférences>Démon>Avancé.

    Notes

    Modifier le démon directement dans Docker est recommandé, car l’emplacement du fichier daemon.json peut varier d’une machine à l’autre. Par exemple, ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.

    Conseil

    Nous recommandons d’augmenter la quantité de ressources allouées à Docker lorsque vous testez des applications volumineuses. Pour cela, sélectionnez l’icône de Docker, puis choisissez Avancé pour ajuster le nombre de cœurs et la mémoire.

  2. Démarrez le cluster.

    La plus récente :

    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
    

    Conseil

    Par défaut, cela extraira l’image avec la dernière version de Service Fabric. Pour obtenir des révisions particulières, visitez la page Onebox Service Fabric sur Docker Hub.

  3. Facultatif : Générez votre image Service Fabric étendue.

    Dans le nouveau répertoire, créez un fichier nommé Dockerfile pour créer votre image personnalisée :

    Notes

    Vous pouvez adapter l’image ci-dessus avec un Dockerfile pour ajouter des programmes ou des dépendances supplémentaires dans votre conteneur. Par exemple, l’ajout de RUN apt-get install nodejs -y permet de prendre en charge les applications nodejs comme exécutables invités.

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

    Conseil

    Par défaut, cela extraira l’image avec la dernière version de Service Fabric. Pour des révisions particulières, visitez la page Docker Hub.

    Pour créer votre image réutilisable à partir du Dockerfile, ouvrez un terminal et cd vers le répertoire contenant votre Dockerfile, puis exécutez :

    docker build -t mysfcluster .
    

    Notes

    Cette opération prend un certain temps, mais ne doit être effectuée qu’une seule fois.

    Vous pouvez maintenant démarrer rapidement une copie locale de Service Fabric chaque fois que nécessaire en exécutant :

    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
    

    Conseil

    Donnez un nom à votre instance de conteneur de sorte qu’elle puisse être gérée plus facilement.

    Si votre application écoute sur certains ports, ceux-ci doivent être spécifiés à l’aide de balises -p supplémentaires. Par exemple, si votre application écoute sur le port 8080, ajoutez la balise -p suivante :

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

  4. Le cluster prendra quelques instants pour démarrer. Lorsqu’il s’exécute, vous pouvez afficher les journaux à l’aide de la commande suivante ou accéder au tableau de bord pour afficher l’intégrité des clusters : http://localhost:19080.

    docker logs sftestcluster
    
  5. Pour arrêter et nettoyer le conteneur, utilisez la commande suivante. Toutefois, nous allons utiliser ce conteneur à l’étape suivante.

    docker rm -f sftestcluster
    

Limites connues

Voici les limitations connues d’un cluster local qui s’exécute dans un conteneur sous Mac :

  • Le service DNS ne fonctionne pas et n’est actuellement pas pris en charge dans le conteneur. Problème no 132.
  • L’exécution d’applications basées sur des conteneurs nécessite l’exécution de Service Fabric sur un hôte Linux. Les applications de conteneur imbriquées ne sont actuellement pas prises en charge.

Configurer la CLI Service Fabric (sfctl) sur votre ordinateur Mac

Suivez les instructions de la CLI Service Fabric pour installer la CLI Service Fabric (sfctl) sur votre ordinateur Mac. Les commandes CLI prennent en charge l’interaction avec des entités Service Fabric, y compris des clusters, des applications et des services.

  1. Pour vous connecter au cluster avant de déployer des applications, exécutez la commande ci-dessous.
sfctl cluster select --endpoint http://localhost:19080

Créer votre application sur votre Mac à l’aide de Yeoman

Service Fabric fournit des outils de génération de modèles automatique qui vous aident à créer une application Service Fabric depuis un terminal à l’aide du générateur de modèles Yeoman. Procédez comme suit pour vous assurer que le générateur de modèles Yeoman Service Fabric est en état de fonctionnement sur votre machine :

  1. Node.js et le Gestionnaire de package Node doivent être installés sur votre Mac. Le logiciel peut être installé à l’aide de HomeBrew, comme suit :

    brew install node
    node -v
    npm -v
    
  2. Installez le générateur de modèles Yeoman sur votre machine à partir du Gestionnaire de package Node :

    npm install -g yo
    
  3. Installez le générateur Yeoman que vous préférez en suivant les étapes indiquées dans la documentation de prise en main. Pour créer des applications Service Fabric à l’aide de Yeoman, procédez comme suit :

    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. Après avoir installé ces générateurs, vous devez être en mesure de créer un exécutable invité ou des services de conteneurs en exécutant respectivement yo azuresfguest ou yo azuresfcontainer.

  5. Pour générer une application Java Service Fabric sur votre Mac, JDK version 1.8 et Gradle doivent être installés sur la machine hôte. Le logiciel peut être installé à l’aide de HomeBrew, comme suit :

    brew update
    brew cask install java
    brew install gradle
    

    Important

    Les versions actuelles de brew cask install java peuvent installer une version plus récente du JDK. Veillez à installer JDK 8.

Déployer votre application sur votre Mac à partir du terminal

Lorsque vous avez créé et généré votre application Service Fabric, vous pouvez déployer votre application à l’aide de la CLI Service Fabric :

  1. Connectez-vous au cluster Service Fabric qui est en cours d’exécution à l’intérieur de l’instance de conteneur sur votre Mac :

    sfctl cluster select --endpoint http://localhost:19080
    
  2. Depuis votre répertoire de projet, exécutez le script d’installation :

    cd MyProject
    bash install.sh
    

Configurer le développement de .NET Core 3.1

Installez le Kit de développement logiciel (SDK) .NET Core 3.1 pour Mac afin de démarrer la création d’applications Service Fabric en C#. Les packages pour les applications .NET Core Service Fabric sont hébergés sur NuGet.org.

Installer le plug-in Service Fabric pour Eclipse sur votre Mac

Azure Service Fabric fournit un plug-in pour Eclipse Neon (ou une version ultérieure) pour l’environnement de développement intégré Java. Le plug-in simplifie le processus de création, de génération et de déploiement des services Java. Pour installer ou mettre à jour le plug-in Service Fabric pour Eclipse vers la dernière version, procédez comme suit. Les autres étapes de la documentation de Service Fabric pour Eclipse sont également applicables : générer une application, ajouter un service à une application, désinstaller une application, etc.

La dernière étape consiste à instancier le conteneur avec un chemin d’accès qui est partagé avec votre hôte. Le plug-in requiert ce type d’instanciation pour utiliser le conteneur Docker sur votre Mac. Par exemple :

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

Les attributs sont définis comme suit :

  • /Users/sayantan/work/workspaces/mySFWorkspace est le chemin d’accès qualifié complet de l’espace de travail sur votre Mac.
  • /tmp/mySFWorkspace est le chemin d’accès à l’intérieur du conteneur auquel l’espace de travail doit être mappé.

Notes

Si vous avez un nom/chemin d’accès différent pour votre espace de travail, mettez à jour ces valeurs dans la commande docker run.

Si vous démarrez le conteneur avec un nom autre que sfonebox, mettez à jour la valeur du nom dans le fichier testclient.sh de votre application Java pour Service Fabric.

Étapes suivantes