Inicio rápido: Creación de una aplicación de Spring Boot de Java en Azure Service FabricQuickstart: Deploy a Java Spring Boot app on Azure Service Fabric

En esta guía de inicio rápido se muestra cómo implementar una aplicación de Java Spring Boot en Service Fabric.This quickstart shows how to deploy a Java Spring Boot application to Azure Service Fabric. Azure Service Fabric es una plataforma de sistemas distribuidos para implementar y administrar microservicios y contenedores.Azure Service Fabric is a distributed systems platform for deploying and managing microservices and containers.

Este tutorial rápido se usa el ejemplo Getting Started del sitio web de Spring.This quickstart uses the Getting Started sample from the Spring website. Al utilizar las conocidas herramientas de línea de comandos, esta guía de inicio rápido le guía a través de la implementación del ejemplo de Spring Boot como una aplicación de Service Fabric.Using familiar command-line tools, this quickstart walks you through deploying the Spring Boot sample as a Service Fabric application. Cuando haya terminado, tendrá el ejemplo Getting Started de Spring Boot funcionando en Service Fabric.When you're finished, you have the Spring Boot Getting Started sample working on Service Fabric.

Ejemplo de Service Fabric de Spring Boot

En esta guía de inicio rápido, ha aprendido a hacer lo siguiente:In this quickstart, you learn how to:

  • Implementación de una aplicación de Spring Boot en Service FabricDeploy a Spring Boot application to Service Fabric
  • Implementar la aplicación en el clúster localDeploy the application to your local cluster
  • Escalar horizontalmente la aplicación en varios nodosScale-out the application across multiple nodes
  • Realización de la conmutación por error del servicio sin impacto en la disponibilidadPerform failover of your service with no hit to availability

Requisitos previosPrerequisites

Para completar esta guía de inicio rápido:To complete this quickstart:

  1. Instalación del SDK de Service Fabric y la interfaz de la línea de comandos (CLI) de Service FabricInstall Service Fabric SDK & Service Fabric Command Line Interface (CLI)

    a.a. MacMac

    b.b. LinuxLinux

  2. Instalación de GitInstall Git

  3. Instalación de YeomanInstall Yeoman

    a.a. MacMac

    b.b. LinuxLinux

  4. Configuración del entorno de JavaSet up Java Environment

    a.a. MacMac

    b.b. LinuxLinux

Descarga del ejemploDownload the sample

En una ventana de terminal, ejecute el comando siguiente para clonar la aplicación de ejemplo Getting Started de Spring Boot en la máquina local.In a terminal window, run the following command to clone the Spring Boot Getting Started sample app to your local machine.

git clone https://github.com/spring-guides/gs-spring-boot.git

Creación de una aplicación Spring BootBuild the Spring Boot application

  1. En el directorio gs-spring-boot/complete, ejecute el comando siguiente para compilar la aplicaciónInside the gs-spring-boot/complete directory, run the command below to build the application

    ./gradlew build
    

Empaquetado de una aplicación de Spring BootPackage the Spring Boot application

  1. En el directorio gs-spring-boot del clon, ejecute el comando yo azuresfguest.Inside the gs-spring-boot directory in your clone, run the yo azuresfguest command.

  2. Escriba la siguiente información para cada mensaje.Enter the following details for each prompt.

    Entradas de Yeoman de Spring boot

  3. En la carpeta SpringServiceFabric/SpringServiceFabric/SpringGettingStartedPkg/code, cree un archivo llamado entryPoint.sh.In the SpringServiceFabric/SpringServiceFabric/SpringGettingStartedPkg/code folder, create a file called entryPoint.sh. Agregue al archivo entryPoint.sh lo siguiente.Add the following to the entryPoint.sh file.

    #!/bin/bash
    BASEDIR=$(dirname $0)
    cd $BASEDIR
    java -jar gs-spring-boot-0.1.0.jar
    
  4. Agregue el recurso Endpoints al archivo gs-spring-boot/SpringServiceFabric/SpringServiceFabric/SpringGettingStartedPkg/ServiceManifest.xml.Add the Endpoints resource in the gs-spring-boot/SpringServiceFabric/SpringServiceFabric/SpringGettingStartedPkg/ServiceManifest.xml file

        <Resources>
          <Endpoints>
            <Endpoint Name="WebEndpoint" Protocol="http" Port="8080" />
          </Endpoints>
       </Resources>
    

    El archivo ServiceManifest.xml ahora tiene este aspecto:The ServiceManifest.xml now looks like this:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceManifest Name="SpringGettingStartedPkg" Version="1.0.0"
                     xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" >
    
       <ServiceTypes>
          <StatelessServiceType ServiceTypeName="SpringGettingStartedType" UseImplicitHost="true">
       </StatelessServiceType>
       </ServiceTypes>
    
       <CodePackage Name="code" Version="1.0.0">
          <EntryPoint>
             <ExeHost>
                <Program>entryPoint.sh</Program>
                <Arguments></Arguments>
                <WorkingFolder>CodePackage</WorkingFolder>
             </ExeHost>
          </EntryPoint>
       </CodePackage>
        <Resources>
          <Endpoints>
            <Endpoint Name="WebEndpoint" Protocol="http" Port="8080" />
          </Endpoints>
       </Resources>
     </ServiceManifest>
    

En este punto, ha creado una aplicación de Service Fabric del ejemplo Getting Started de Spring Boot que se puede implementar en Service Fabric.At this stage, you have created a Service Fabric application for the Spring Boot Getting Started sample that you can deploy to Service Fabric.

Ejecución de la aplicación de forma localRun the application locally

  1. Inicie el clúster local en máquinas Ubuntu mediante la ejecución del siguiente comando:Start your local cluster on Ubuntu machines by running the following command:

    sudo /opt/microsoft/sdk/servicefabric/common/clustersetup/devclustersetup.sh
    

    Si utiliza un equipo Mac, inicie el clúster local desde la imagen del Docker (suponiendo que ha seguido los requisitos previos para configurar el clúster local para Mac).If using a Mac, start the local cluster from the Docker image (this is assuming you have followed the prerequisites to set up your local cluster for Mac).

    docker run --name sftestcluster -d -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 -p 8080:8080 mysfcluster
    

    El inicio del clúster local tarda algún tiempo.The startup of the local cluster takes some time. Para confirmar que el clúster está totalmente operativo, acceda a Service Fabric Explorer en http://localhost:19080 .To confirm that the cluster is fully up, access the Service Fabric Explorer at http://localhost:19080. Los cinco nodos con estado correcto indican que el clúster local está en funcionamiento.The five healthy nodes indicate the local cluster is up and running.

    Service Fabric Explorer muestra nodos correctos

  2. Abra la carpeta gs-spring-boot/SpringServiceFabric.Open the gs-spring-boot/SpringServiceFabric folder.

  3. Ejecute el comando siguiente para conectarse a su clúster local.Run the following command to connect to your local cluster.

    sfctl cluster select --endpoint http://localhost:19080
    
  4. Ejecute el script install.sh.Run the install.sh script.

    ./install.sh
    
  5. Abra el explorador web favorito y acceda a la aplicación a través de http://localhost:8080.Open your favorite web browser and access the application by accessing http://localhost:8080.

    Ejemplo de Service Fabric de Spring Boot

Ahora puede acceder a la aplicación de Spring Boot que se implementó en un clúster de Service Fabric.You can now access the Spring Boot application that was deployed to a Service Fabric cluster.

Escalar aplicaciones y servicios en un clústerScale applications and services in a cluster

Los servicios se pueden escalar en un clúster para adaptarse a un cambio en la carga en los servicios.Services can be scaled across a cluster to accommodate for a change in load on the services. Para escalar un servicio, cambie el número de instancias que se ejecutan en el clúster.You scale a service by changing the number of instances running in the cluster. Hay muchas formas de escalar los servicios; por ejemplo, se pueden usar scripts o comandos de la CLI de Service Fabric (sfctl).There are many ways of scaling your services, for example, you can use scripts or commands from Service Fabric CLI (sfctl). En los pasos siguientes se utiliza Service Fabric Explorer.The following steps use Service Fabric Explorer.

Service Fabric Explorer se ejecuta en todos los clústeres de Service Fabric y se puede acceder a él desde un explorador. Para ello, vaya al puerto de administración HTTP de clústeres (19080); por ejemplo, http://localhost:19080.Service Fabric Explorer runs in all Service Fabric clusters and can be accessed from a browser by browsing to the cluster's HTTP management port (19080); for example, http://localhost:19080.

Para escalar el servicio front-end web, realice estas operaciones:To scale the web front-end service, do the following:

  1. Abra Service Fabric Explorer en el clúster, por ejemplo, http://localhost:19080.Open Service Fabric Explorer in your cluster - for example, http://localhost:19080.

  2. Seleccione los puntos suspensivos ( ... ) al lado del nodo fabric:/SpringServiceFabric/SpringGettingStarted en la vista de árbol y seleccione Escalar servicio.Select the ellipsis (...) next to the fabric:/SpringServiceFabric/SpringGettingStarted node in the treeview and select Scale Service.

    Ejemplo del servicio de escalado de Service Fabric Explorer

    Ahora puede escalar el número de instancias del servicio.You can now choose to scale the number of instances of the service.

  3. Cambie el número a 3 y seleccione Scale Service (Escalar servicio).Change the number to 3 and select Scale Service.

    También puede escalar el servicio mediante la línea de comandos.An alternative way to scale the service using command line is as follows.

    # Connect to your local cluster
    sfctl cluster select --endpoint https://<ConnectionIPOrURL>:19080 --pem <path_to_certificate> --no-verify
    
    # Run Bash command to scale instance count for your service
    sfctl service update --service-id 'SpringServiceFabric~SpringGettingStarted' --instance-count 3 --stateless 
    
  4. Seleccione el nodo fabric:/SpringServiceFabric/SpringGettingStarted en la vista de árbol y expanda el nodo de partición (representado por un GUID).Select the fabric:/SpringServiceFabric/SpringGettingStarted node in the tree-view and expand the partition node (represented by a GUID).

    Escalar servicio de Service Fabric Explorer completado

    El servicio tiene tres instancias y la vista de árbol muestra en qué nodos se ejecutan las instancias.The service has three instances, and the tree view shows which nodes the instances run on.

Mediante esta sencilla tarea de administración, hemos duplicado los recursos disponibles para el servicio de front-end para procesar la carga de usuarios.Through this simple management task, you've doubled the resources available for the front-end service to process user load. Es importante entender que no hacen falta varias instancias de un servicio para que se ejecute de forma confiable.It's important to understand that you don't need multiple instances of a service for it to run reliably. Si se produce un error en un servicio, Service Fabric se asegurará de que se ejecute una nueva instancia de servicio en el clúster.If a service fails, Service Fabric makes sure that a new service instance runs in the cluster.

Servicios de conmutación por error en un clústerFail over services in a cluster

Para demostrar la conmutación por error del servicio, se simula un reinicio del nodo mediante Service Fabric Explorer.To demonstrate service failover, a node restart is simulated by using Service Fabric Explorer. Asegúrese de que solo se esté ejecutando una instancia del servicio.Ensure only one instance of your service is running.

  1. Abra Service Fabric Explorer en el clúster, por ejemplo, http://localhost:19080.Open Service Fabric Explorer in your cluster - for example, http://localhost:19080.

  2. Seleccione los puntos suspensivos ( ... ) junto al nodo que ejecuta la instancia del servicio y reinicie el nodo.Select the ellipsis (...) next to the node running the instance of your service and Restart the node.

    Reinicio del nodo de Service Fabric Explorer

  3. La instancia del servicio se moverá a otro nodo y la aplicación no tendrá ningún tiempo de inactividad.The instance of your service is moved to a different node and your application has no downtime.

    Reinicio del nodo de Service Fabric Explorer correcto

Pasos siguientesNext steps

En este tutorial, ha aprendido a hacer lo siguiente:In this quickstart, you learned how to:

  • Implementación de una aplicación de Spring Boot en Service FabricDeploy a Spring Boot application to Service Fabric
  • Implementar la aplicación en el clúster localDeploy the application to your local cluster
  • Escalar horizontalmente la aplicación en varios nodosScale-out the application across multiple nodes
  • Realización de la conmutación por error del servicio sin impacto en la disponibilidadPerform failover of your service with no hit to availability

Para más información sobre cómo trabajar con aplicaciones Java en Service Fabric, diríjase al tutorial de las aplicaciones Java.To learn more about working with Java apps in Service Fabric, continue to the tutorial for Java apps.