Einrichten Ihrer Entwicklungsumgebung unter macOS X

Sie können Azure Service Fabric-Anwendungen für die Ausführung in Linux-Clustern unter macOS X erstellen. In diesem Dokument erfahren Sie, wie Sie Ihren Mac für die Entwicklung einrichten.

Voraussetzungen

Azure Service Fabric wird nicht nativ unter macOS X ausgeführt. Für die Ausführung eines lokalen Service Fabric-Clusters wird ein vorkonfiguriertes Docker-Containerimage bereitgestellt. Bevor Sie beginnen, benötigen Sie Folgendes:

Tipp

Führen Sie die Schritte in der Docker-Dokumentation aus, um Docker auf Ihrem Mac zu installieren. Nach der Installation können Sie Docker Desktop verwenden, um Einstellungen wie Ressourcenlimits und Datenträgerauslastung festzulegen.

Erstellen eines lokalen Containers und Einrichten von Service Fabric

Führen Sie die folgenden Schritte aus, um einen lokalen Docker-Container einzurichten und darin einen Service Fabric-Cluster auszuführen:

  1. Aktualisieren Sie die Konfiguration des Docker-Daemons auf dem Host mit den folgenden Einstellungen, und starten Sie den Docker-Daemon neu:

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

    Sie können diese Einstellungen direkt in der Datei „daemon.json“ im Docker-Installationspfad aktualisieren. Sie können die Daemon-Konfigurationseinstellungen direkt in Docker ändern. Klicken Sie auf das Docker-Symbol und anschließend auf Einstellungen>Daemon>Erweitert.

    Hinweis

    Es wird empfohlen, den Daemon direkt in Docker zu ändern, da sich der Speicherort der Datei „daemon.json“ von Computer zu Computer unterscheiden kann. Beispiel: ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json

    Tipp

    Es empfiehlt sich, Docker beim Testen großer Anwendungen mehr Ressourcen zuzuordnen. Klicken Sie hierzu auf das Docker-Symbol und anschließend auf Erweitert, um die Anzahl von Kernen und die Speichermenge anzupassen.

  2. Starten Sie den Cluster.

    Neueste:

    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
    

    Tipp

    Standardmäßig wird dann das Image mit der aktuellen Version von Service Fabric per Pullvorgang bereitgestellt. Informationen zu bestimmten Revisionen finden Sie auf der Seite Service Fabric Onebox von Docker Hub.

  3. Optional: Erstellen Sie das erweiterte Service Fabric-Image.

    Erstellen Sie zum Erstellen Ihres angepassten Images eine Datei namens Dockerfile in einem neuen Verzeichnis:

    Hinweis

    Sie können das Image oben mit einer Dockerfile-Datei anpassen, um in Ihrem Container weitere Programme oder Abhängigkeiten hinzuzufügen. Wenn Sie beispielsweise RUN apt-get install nodejs -y hinzufügen, können Anwendungen vom Typ nodejs als ausführbare Gastdateien unterstützt werden.

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

    Tipp

    Standardmäßig wird dann das Image mit der aktuellen Version von Service Fabric per Pullvorgang bereitgestellt. Bestimmte Revisionen finden Sie auf der Seite Docker Hub.

    Öffnen Sie ein Terminal, wechseln Sie mit cd zum Verzeichnis mit Ihrer Datei vom Typ Dockerfile, und führen Sie anschließend Folgendes aus, um Ihr wiederverwendbares Images auf der Grundlage der Datei vom Typ Dockerfile zu erstellen:

    docker build -t mysfcluster .
    

    Hinweis

    Dieser Vorgang dauert etwas, muss jedoch nur einmal ausgeführt werden.

    Nun können Sie bei Bedarf schnell eine lokale Kopie von Service Fabric starten, indem Sie Folgendes ausführen:

    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
    

    Tipp

    Geben Sie einen Namen für Ihre Containerinstanz an, um die Lesbarkeit zu verbessern.

    Wenn Ihre Anwendung an bestimmten Ports lauscht, müssen diese mit zusätzlichen Tags vom Typ -p angegeben werden. Beispiel: Wenn Ihre Anwendung an Port 8080 lauscht, fügen Sie das folgende -p-Tag hinzu:

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

  4. Es dauert einen Moment, bis der Cluster gestartet wird. Wenn er ausgeführt wird, können Sie mithilfe des folgenden Befehls Protokolle anzeigen oder zum Dashboard wechseln, um sich über die Integrität der Cluster zu informieren: http://localhost:19080

    docker logs sftestcluster
    
  5. Zum Anhalten und Bereinigen des Containers verwenden Sie den folgenden Befehl. Sie verwenden diesen Container jedoch im nächsten Schritt.

    docker rm -f sftestcluster
    

Bekannte Einschränkungen

Für den lokalen Cluster in einem Container auf einem Mac sind folgende Einschränkungen bekannt:

  • Der DNS-Dienst wird nicht ausgeführt und wird zurzeit im Container nicht unterstützt. Issue #132
  • Das Ausführen von containerbasierten Apps erfordert die Ausführung von SF auf einem Linux-Host. Geschachtelte Containeranwendungen werden derzeit nicht unterstützt.

Einrichten der Service Fabric-Befehlszeilenschnittstelle (sfctl) auf Ihrem Mac

Befolgen Sie die Anweisungen unter Service Fabric-Befehlszeilenschnittstelle, um die Service Fabric-Befehlszeilenschnittstelle (sfctl) auf Ihrem Mac zu installieren. Die Befehle der Befehlszeilenschnittstelle unterstützen die Interaktion mit Service Fabric-Entitäten wie Clustern, Anwendungen und Diensten.

  1. Führen Sie den folgenden Befehl aus, um vor dem Bereitstellen von Anwendungen eine Verbindung mit dem Cluster herzustellen.
sfctl cluster select --endpoint http://localhost:19080

Erstellen einer Anwendung auf Ihrem Mac mit Yeoman

Die Gerüstbautools von Service Fabric unterstützen Sie beim Erstellen einer Service Fabric-Anwendung über das Terminal unter Verwendung des Yeoman-Vorlagengenerators. Führen Sie die folgenden Schritte aus, um sicherzustellen, dass der Service Fabric-Yeoman-Vorlagengenerator auf dem Computer verwendet werden kann:

  1. Node.js und Node Package Manager müssen auf dem Mac installiert sein. Die Software kann wie folgt mithilfe von HomeBrew installiert werden:

    brew install node
    node -v
    npm -v
    
  2. Installieren Sie über Node Package Manager den Yeoman-Vorlagengenerator auf dem Computer:

    npm install -g yo
    
  3. Installieren Sie den gewünschten Yeoman-Generator gemäß der Anleitung in der Dokumentation zu den ersten Schritten. Führen Sie zum Erstellen von Service Fabric-Anwendungen mit Yeoman die folgenden Schritte aus:

    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. Erstellen Sie nach der Installation der Generatoren ausführbare Gastdateien oder Containerdienste, indem Sie yo azuresfguest bzw. yo azuresfcontainer ausführen.

  5. Zur Erstellung einer Service Fabric-Java-Anwendung auf einem Mac müssen JDK 1.8 und Gradle auf dem Hostcomputer installiert sein. Die Software kann wie folgt mithilfe von HomeBrew installiert werden:

    brew update
    brew cask install java
    brew install gradle
    

    Wichtig

    Aktuelle Versionen von brew cask install java installieren ggf. eine neuere Version des JDK. Stellen Sie sicher, dass Sie JDK 8 installieren.

Bereitstellen der Anwendung auf Ihrem Mac über das Terminal

Nachdem Sie Ihre Service Fabric-Anwendung erstellt und den Buildvorgang durchgeführt haben, können Sie sie mithilfe der Service Fabric-Befehlszeilenschnittstelle bereitstellen:

  1. Stellen Sie eine Verbindung mit dem Service Fabric-Cluster her, der unter der Containerinstanz auf Ihrem Mac ausgeführt wird:

    sfctl cluster select --endpoint http://localhost:19080
    
  2. Führen Sie in Ihrem Projektverzeichnis das Installationsskript aus:

    cd MyProject
    bash install.sh
    

Einrichten der .NET Core 3.1-Entwicklung

Installieren Sie das .NET Core 3.1 SDK für Mac, um mit dem Erstellen von Service Fabric-C#-Anwendungen zu beginnen. Pakete für Service Fabric-Anwendungen mit .NET Core werden auf NuGet.org gehostet.

Installieren des Service Fabric-Plug-Ins für Eclipse auf Ihrem Mac

Azure Service Fabric stellt ein Plug-In für Eclipse Neon (oder höher) für die Java-IDE bereit. Das Plug-In vereinfacht den Prozess der Erstellung und Bereitstellung von Java-Diensten. Führen Sie diese Schritte aus, um das Service Fabric-Plug-In für Eclipse zu installieren oder auf die aktuelle Version zu aktualisieren. Die anderen Schritte unter Service Fabric-Plug-In für die Entwicklung von Eclipse-Java-Anwendungen gelten ebenfalls: Erstellen einer Anwendung, Hinzufügen eines Diensts zu einer Anwendung, Deinstallieren einer Anwendung usw.

Der letzte Schritt besteht im Instanziieren des Containers mit einem Pfad, der mit Ihrem Host gemeinsam verwendet wird. Für das Plug-In ist diese Art der Instanziierung erforderlich, damit es mit dem Docker-Container auf Ihrem Mac verwendet werden kann. Beispiel:

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

Die Attribute sind wie folgt definiert:

  • /Users/sayantan/work/workspaces/mySFWorkspace ist der vollqualifizierte Pfad des Arbeitsbereichs auf Ihrem Mac.
  • /tmp/mySFWorkspace ist der Pfad innerhalb des Containers, dem der Arbeitsbereich zugeordnet werden soll.

Hinweis

Wenn Ihr Name/Pfad für den Arbeitsbereich anders lautet, aktualisieren Sie diese Werte im Befehl docker run.

Falls Sie den Container mit einem anderen Namen als sfonebox starten, sollten Sie den Wert des Namens in der Datei „testclient.sh“ in Ihrer Service Fabric Actor-Java-Anwendung aktualisieren.

Nächste Schritte