Configuración del entorno de desarrollo en macOS X

Puede crear aplicaciones de Azure Service Fabric para que se ejecuten en clústeres de Linux con macOS X. En este documento se describe cómo configurar su Mac para el desarrollo.

Prerrequisitos

Azure Service Fabric no se ejecuta de forma nativa en macOS X. Para ejecutar un clúster local de Service Fabric, se proporciona una imagen preconfigurada del contenedor de Docker. Antes de comenzar, necesitará lo siguiente:

Sugerencia

Para instalar Docker en el equipo Mac, siga los pasos mencionados en la documentación de Docker. Después de la instalación, puede usar Docker Desktop para establecer las preferencias, incluidos los límites de recursos y el uso del disco.

Creación de un contenedor local e instalación de Service Fabric

Para configurar un contenedor local de Docker y hacer que un clúster de Service Fabric se ejecute en él, realice los pasos siguientes:

  1. Actualice la configuración del demonio de Docker en el host con las opciones siguientes y reinicie dicho demonio:

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

    Puede actualizar estos valores directamente en el archivo daemon.json en la ruta de acceso de instalación de Docker. Puede modificar directamente los valores de configuración del demonio en Docker. Seleccione el icono de Docker y, a continuación, seleccione Preferencias>Daemon>Avanzadas.

    Nota:

    Se recomienda modificar el demonio directamente en Docker porque la ubicación del archivo daemon.json puede variar de una máquina a otra. Por ejemplo, ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.

    Sugerencia

    Cuando se prueben aplicaciones de gran tamaño, se recomienda aumentar los recursos asignados a Docker, para lo que se debe hacer clic en el icono de Docker y, después, seleccionar Opciones avanzadas para ajustar el número de núcleos y la memoria.

  2. Inicie el clúster.

    Lo más reciente:

    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
    

    Sugerencia

    De forma predeterminada, se extraerá la imagen con la versión más reciente de Service Fabric. Para ver revisiones concretas, consulte la página Service Fabric OneBox en Docker Hub.

  3. Opcional: cree la imagen de Service Fabric extendida.

    En un directorio nuevo, cree un archivo denominado Dockerfile para crear la imagen personalizada:

    Nota:

    Puede adaptar esa imagen con un Dockerfile para agregar programas o dependencias al contenedor. Por ejemplo, si se agrega RUN apt-get install nodejs -y, será posible usar aplicaciones nodejs como ejecutables de invitado.

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

    Sugerencia

    De forma predeterminada, se extraerá la imagen con la versión más reciente de Service Fabric. Para revisiones concretas, visite la página Docker Hub.

    Para crear la imagen reutilizable a partir del Dockerfile, abra una terminal y cd en el directorio que contiene el Dockerfile y luego ejecute:

    docker build -t mysfcluster .
    

    Nota:

    Esta operación tardará un tiempo, pero solo se necesita una vez.

    Ya se puede iniciar rápidamente una copia local de Service Fabric, siempre que se necesite. Para ello, hay que ejecutar:

    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
    

    Sugerencia

    Al especificar un nombre para la instancia del contenedor, puede tratarlo de forma más legible.

    Si la aplicación está escuchando en determinados puertos, estos deben especificarse mediante etiquetas -p adicionales. Por ejemplo, si la aplicación está escuchando en el puerto 8080, agregue la siguiente etiqueta -p:

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

  4. El clúster tardará unos instantes en iniciarse. Una vez que se inicie puede ver los registros usando el comando siguiente o pasar al panel para ver el estado de los clústeres: http://localhost:19080

    docker logs sftestcluster
    
  5. Para detener y limpiar el contenedor, use el comando siguiente. De todas formas, vamos a usar este contenedor en el paso siguiente.

    docker rm -f sftestcluster
    

Limitaciones conocidas

A continuación se muestran limitaciones conocidas del clúster local que se ejecuta en un contenedor para dispositivos Mac:

  • El servicio DNS no se ejecuta y actualmente no se admite dentro del contenedor. Problema n.° 132
  • La ejecución de aplicaciones basadas en contenedores requiere la ejecutar SF en un host de Linux. Actualmente no se admiten aplicaciones de contenedor anidadas.

Configuración de la CLI de Service Fabric (sfctl) en un Mac

Para instalar la CLI de Service Fabric (sfctl) en un Mac, siga las instrucciones que encontrará en CLI de Service Fabric. Los comandos de la CLI permiten interactuar con las entidades de Service Fabric, lo que incluye clústeres, aplicaciones y servicios.

  1. Para conectarse al clúster antes de implementar las aplicaciones, ejecute el siguiente comando.
sfctl cluster select --endpoint http://localhost:19080

Creación de una aplicación en un equipo Mac mediante Yeoman

Service Fabric proporciona herramientas de scaffolding que le ayudarán a crear una aplicación de Service Fabric desde el terminal mediante el generador de plantillas Yeoman. Realice los pasos siguientes para asegurarse de que el generador de plantillas Yeoman de Service Fabric está en funcionamiento en la máquina:

  1. Node.js y el administrador de paquetes de Node (NPM) deben estar instalados en el equipo Mac. El software puede instalarse mediante HomeBrew, como se indica a continuación:

    brew install node
    node -v
    npm -v
    
  2. Instale el generador de plantillas Yeoman en la máquina desde NPM:

    npm install -g yo
    
  3. Para instalar el generador Yeoman que desea usar, siga los pasos descritos en la documentación de introducción. Para crear aplicaciones de Service Fabric mediante Yeoman, siga estos pasos:

    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. Después de instalar los generadores, cree ejecutables invitados o servicios de contenedor mediante la ejecución de yo azuresfguest o yo azuresfcontainer respectivamente.

  5. Para compilar una aplicación Java de Service Fabric en Mac, JDK versión 1.8 y Gradle deberían estar instalados en la máquina host. El software puede instalarse mediante HomeBrew, como se indica a continuación:

    brew update
    brew cask install java
    brew install gradle
    

    Importante

    Las versiones actuales de brew cask install java pueden instalar una versión más reciente del JDK. Asegúrese de instalar JDK 8.

Implementación de la aplicación en el equipo Mac desde el terminal

Una vez que cree y compile la aplicación de Service Fabric, puede implementar su aplicación mediante la CLI de Service Fabric:

  1. Conéctese al clúster de Service Fabric que se ejecuta dentro de la instancia del contenedor en el equipo Mac:

    sfctl cluster select --endpoint http://localhost:19080
    
  2. Vaya al directorio del proyecto y ejecute el script de instalación:

    cd MyProject
    bash install.sh
    

Configuración del desarrollo con .NET Core 3.1

Instale el SDK de .NET Core 3.1 para Mac para iniciar la creación de aplicaciones de Service Fabric en C#. Los paquetes de aplicaciones de Service Fabric en .NET Core se hospedan en NuGet.org.

Instalación del complemento de Service Fabric para Eclipse en un equipo Mac

Azure Service Fabric proporciona un complemento de Eclipse Neon (o posterior) para el IDE de Java. El complemento simplifica el proceso de creación, compilación e implementación de servicios de Java. Para instalar la versión más reciente del complemento de Service Fabric para Eclipse o actualizar a dicha versión, siga estos pasos. Los otros pasos de la documentación de Service Fabric para Eclipse también son aplicables: compilar una aplicación, agregar un servicio a una aplicación, desinstalar una aplicación, etcétera.

El último paso es crear una instancia del contenedor con una ruta de acceso que se comparte con el host. El complemento requiere este tipo de creación de instancias para funcionar con el contenedor de Docker en el equipo Mac. Por ejemplo:

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

Los atributos se definen de la manera siguiente:

  • /Users/sayantan/work/workspaces/mySFWorkspace es la ruta de acceso completa del área de trabajo en el equipo Mac.
  • /tmp/mySFWorkspace es la ruta de acceso que está dentro del contenedor al que se debe asignar el área de trabajo.

Nota:

Si tiene un nombre o ruta de acceso diferente para el área de trabajo, actualice estos valores con el comando docker run.

Si inicia el contenedor con otro nombre distinto de sfonebox, actualice el mismo valor en el archivo testclient.sh, en su aplicación Java del actor de Service Fabric.

Pasos siguientes