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:
Cumplir los requisitos del sistema para instalar Docker Desktop en Mac
Para más información, consulte Instalar y ejecutar Docker Desktop en Mac.
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:
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.
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.
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 aplicacionesnodejs
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 ycd
en el directorio que contiene elDockerfile
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
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
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.
- 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:
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
Instale el generador de plantillas Yeoman en la máquina desde NPM:
npm install -g yo
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
Después de instalar los generadores, cree ejecutables invitados o servicios de contenedor mediante la ejecución de
yo azuresfguest
oyo azuresfcontainer
respectivamente.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:
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
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
- Creación e implementación de la primera aplicación de Java para Service Fabric en Linux con Yeoman
- Creación e implementación de la primera aplicación de Java para Service Fabric con el complemento de Eclipse para Service Fabric
- Creación de un clúster de Service Fabric en Azure Portal
- Creación de un clúster de Service Fabric con Azure Resource Manager
- Entender el modelo de aplicación de Service Fabric
- Uso de la CLI de Service Fabric para administrar las aplicaciones
- Preparación del entorno de desarrollo Linux en Windows