Configuración de su entorno de desarrollo en Mac OS XSet up your development environment on Mac OS X

Puede crear aplicaciones de Azure Service Fabric para que se ejecuten en clústeres de Linux con Mac OS X. En este documento se describe cómo configurar su Mac para desarrollo.You can build Azure Service Fabric applications to run on Linux clusters by using Mac OS X. This document covers how to set up your Mac for development.

Requisitos previosPrerequisites

Azure Service Fabric no se ejecuta de forma nativa en Mac OS X. Para ejecutar un clúster local de Service Fabric, se proporciona una imagen preconfigurada del contenedor de Docker.Azure Service Fabric doesn't run natively on Mac OS X. To run a local Service Fabric cluster, a pre-configured Docker container image is provided. Antes de comenzar, necesita:Before you get started, you need:

  • Al menos 4 GB de RAM.At least 4 GB of RAM.
  • Versión más reciente de Docker.The latest version of Docker.

Sugerencia

Para instalar Docker en el equipo Mac, siga los pasos mencionados en la documentación de Docker.To install Docker on your Mac, follow the steps in the Docker documentation. Después de instalar, compruebe la instalación.After installing, verify your installation.

Creación de un contenedor local e instalación de Service FabricCreate a local container and set up 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:To set up a local Docker container and have a Service Fabric cluster running on it, perform the following steps:

  1. Actualice la configuración del demonio de Docker en el host con las opciones siguientes y reinicie dicho demonio:Update the Docker daemon configuration on your host with the following settings and restart the Docker daemon:

    {
        "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.You can update these settings directly in the daemon.json file in your Docker installation path. Puede modificar directamente los valores de configuración del demonio en Docker.You can directly modify the daemon configuration settings in Docker. Seleccione el icono de Docker y, a continuación, seleccione Preferencias > Daemon > Avanzadas.Select the Docker icon, and then select Preferences > Daemon > Advanced.

    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.Modifying the daemon directly in Docker is reccommended because the location of the daemon.json file can vary from machine to machine. Por ejemplo, ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.For example, ~/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,We recommend increasing the resources allocated to Docker when testing large applications. 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.This can be done by selecting the Docker Icon, then selecting Advanced to adjust the number of cores and memory.

  2. En un directorio nuevo, cree un archivo denominado Dockerfile para generar una imagen de Service Fabric:In a new directory create a file called Dockerfile to build your Service Fabric Image:

    FROM microsoft/service-fabric-onebox
    WORKDIR /home/ClusterDeployer
    RUN ./setup.sh
    #Generate the local
    RUN locale-gen en_US.UTF-8
    #Set environment variables
    ENV LANG=en_US.UTF-8
    ENV LANGUAGE=en_US:en
    ENV LC_ALL=en_US.UTF-8
    EXPOSE 19080 19000 80 443
    #Start SSH before running the cluster
    CMD /etc/init.d/ssh start && ./run.sh
    

    Nota

    Dicho archivo se puede adaptar para agregar otros programas o dependencias al contenedor.You can adapt this file to add additional programs or dependencies into your container. Por ejemplo, si se agrega RUN apt-get install nodejs -y, será posible usar aplicaciones nodejs como ejecutables de invitado.For example, adding RUN apt-get install nodejs -y will allow support for nodejs applications as guest executables.

    Sugerencia

    De forma predeterminada, se extraerá la imagen con la versión más reciente de Service Fabric.By default, this will pull the image with the latest version of Service Fabric. Para ver información acerca de revisiones concretas, visite la página de Docker HubFor particular revisions, please visit the Docker Hub page

  3. Para crear una imagen reutilizable a partir de Dockerfile, abra una ventana de terminal y ejecute cd para cambiar al directorio donde se encuentra su Dockerfile y, después, ejecute:To build your reusable image from the Dockerfile open a terminal and cd to the directly holding your Dockerfile then run:

    docker build -t mysfcluster .
    

    Nota

    Esta operación tardará un tiempo, pero solo se necesita una vez.This operation will take some time but is only needed once.

  4. Ya se puede iniciar rápidamente una copia local de Service Fabric, siempre que se necesite. Para ello, hay que ejecutar:Now you can quickly start a local copy of Service Fabric, whenever you need it, by running:

    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.Provide a name for your container instance so it can be handled in a more readable manner.

    Si la aplicación está escuchando en determinados puertos, estos deben especificarse mediante etiquetas -p adicionales.If your application is listening on certain ports, the ports must be specified by using additional -p tags. Por ejemplo, si la aplicación está escuchando en el puerto 8080, agregue la siguiente etiqueta -p:For example, if your application is listening on port 8080, add the following -p tag:

    docker run -itd -p 19080:19080 -p 8080:8080 --name sfonebox microsoft/service-fabric-onebox

  5. El clúster tardará unos instantes en iniciarse.The cluster will take a moment to start. Una vez que se inicie puede ver los registros usando el comando siguiente o pasar al panel para ver el mantenimiento de los clústeres http://localhost:19080:When it is running, you can view logs using the following command or jump to the dashboard to view the clusters health http://localhost:19080:

    docker logs sftestcluster
    
  6. Para detener y limpiar el contenedor, use el comando siguiente.To stop and cleanup the container, use the following command. De todas formas, vamos a usar este contenedor en el paso siguiente.However, we will be using this container in the next step.

    docker rm -f sftestcluster
    

Limitaciones conocidasKnown Limitations

A continuación se muestran limitaciones conocidas del clúster local que se ejecuta en un contenedor para dispositivos Mac:The following are known limitations of the local cluster running in a container for Mac's:

  • El servicio DNS no se ejecuta y no es compatible Problema 132DNS service does not run and is not supported Issue #132

Configuración de la CLI de Service Fabric (sfctl) en un MacSet up the Service Fabric CLI (sfctl) on your Mac

Para instalar la CLI de Service Fabric (sfctl) en un Mac, siga las instrucciones que encontrará en CLI de Service Fabric.Follow the instructions at Service Fabric CLI to install the Service Fabric CLI (sfctl) on your Mac. Los comandos de la CLI permiten interactuar con las entidades de Service Fabric, lo que incluye clústeres, aplicaciones y servicios.The CLI commands support interacting with Service Fabric entities, including clusters, applications, and services.

  1. Para conectarse al clúster antes de implementar las aplicaciones, ejecute el siguiente comando.To connect to the cluster before deploying applications run the command below.
sfctl cluster select --endpoint http://localhost:19080

Creación de una aplicación en un equipo Mac mediante YeomanCreate your application on your Mac by using 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.Service Fabric provides scaffolding tools that help you to create a Service Fabric application from the terminal by using the Yeoman template generator. Realice los pasos siguientes para asegurarse de que el generador de plantillas Yeoman de Service Fabric está en funcionamiento en la máquina:Use the following steps to ensure that the Service Fabric Yeoman template generator is working on your machine:

  1. Node.js y el administrador de paquetes de nodo (NPM) deben estar instalados en el equipo Mac.Node.js and Node Package Manager (NPM) must be installed on your Mac. El software puede instalarse mediante HomeBrew, como se indica a continuación:The software can be installed by using HomeBrew, as follows:

    brew install node
    node -v
    npm -v
    
  2. Instale el generador de plantillas Yeoman en la máquina desde NPM:Install the Yeoman template generator on your machine from 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.Install the Yeoman generator that you prefer by following the steps in the getting started documentation. Para crear aplicaciones de Service Fabric mediante Yeoman, siga estos pasos:To create Service Fabric applications by using Yeoman, follow these steps:

    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.After you install the generators, create guest executable or container services by running yo azuresfguest or yo azuresfcontainer, respectively.

  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.To build a Service Fabric Java application on your Mac, JDK version 1.8 and Gradle must be installed on the host machine. El software puede instalarse mediante HomeBrew, como se indica a continuación:The software can be installed by using HomeBrew, as follows:

    brew update
    brew cask install java
    brew install gradle
    

    Sugerencia

    No olvide comprobar que tiene la versión correcta de JDK instalada.Be sure to verify you have the correct version of JDK installed.

Implementación de la aplicación en el equipo Mac desde el terminalDeploy your application on your Mac from the terminal

Una vez que cree y compile la aplicación de Service Fabric, puede implementar su aplicación mediante la CLI de Service Fabric:After you create and build your Service Fabric application, you can deploy your application by using the Service Fabric CLI:

  1. Conéctese al clúster de Service Fabric que se ejecuta dentro de la instancia del contenedor en el equipo Mac:Connect to the Service Fabric cluster that is running inside the container instance on your Mac:

    sfctl cluster select --endpoint http://localhost:19080
    
  2. Vaya al directorio del proyecto y ejecute el script de instalación:From inside your project directory, run the install script:

    cd MyProject
    bash install.sh
    

Configuración del desarrollo con .NET Core 2.0Set up .NET Core 2.0 development

Instale el SDK de .NET Core 2.0 para Mac para iniciar la creación de aplicaciones de Service Fabric en C#.Install the .NET Core 2.0 SDK for Mac to start creating C# Service Fabric applications. Los paquetes de aplicaciones de Service Fabric en .NET Core 2.0 se hospedan en NuGet.org, actualmente en versión preliminar.Packages for .NET Core 2.0 Service Fabric applications are hosted on NuGet.org, which is currently in preview.

Instalación del complemento de Service Fabric para Eclipse en un equipo MacInstall the Service Fabric plug-in for Eclipse on your Mac

Azure Service Fabric proporciona un complemento de Eclipse Neon (o posterior) para el IDE de Java.Azure Service Fabric provides a plug-in for Eclipse Neon (or later) for the Java IDE. El complemento simplifica el proceso de creación, compilación e implementación de servicios de Java.The plug-in simplifies the process of creating, building, and deploying Java services. Para instalar la versión más reciente del complemento de Service Fabric para Eclipse o actualizar a dicha versión, siga estos pasos.To install or update the Service Fabric plug-in for Eclipse to the latest version, follow these steps. 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.The other steps in the Service Fabric for Eclipse documentation are also applicable: build an application, add a service to an application, uninstall an application, and so on.

El último paso es crear una instancia del contenedor con una ruta de acceso que se comparte con el host.The last step is to instantiate the container with a path that is shared with your host. El complemento requiere este tipo de creación de instancias para funcionar con el contenedor de Docker en el equipo Mac.The plug-in requires this type of instantiation to work with the Docker container on your Mac. Por ejemplo:For example:

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

Los atributos se definen de la manera siguiente:The attributes are defined as follows:

  • /Users/sayantan/work/workspaces/mySFWorkspace es la ruta de acceso completa del área de trabajo en el equipo Mac./Users/sayantan/work/workspaces/mySFWorkspace is the fully qualified path of the workspace on your Mac.
  • /tmp/mySFWorkspace es la ruta de acceso que está dentro del contenedor al que se debe asignar el área de trabajo./tmp/mySFWorkspace is the path that is inside of the container to where the workspace should be mapped.

Nota

Si tiene un nombre o ruta de acceso diferente para el área de trabajo, actualice estos valores con el comando docker run.If you have a different name/path for your workspace, update these values in the docker run command.

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.If you start the container with a name other than sfonebox, update the name value in the testclient.sh file in your Service Fabric actor Java application.

Pasos siguientesNext steps