Aplicación e implementación en Azure Spring Apps

Nota:

Azure Spring Apps es el nuevo nombre del servicio Azure Spring Cloud. Aunque el servicio tiene un nuevo nombre, verá el nombre antiguo en algunos lugares durante un tiempo mientras trabajamos para actualizar recursos, como capturas de pantalla, vídeos y diagramas.

Este artículo se aplica a: ✔️ Java ✔️ C#

La información de este artículo puede ponerse en práctica en: ✔️ Básico o Estándar ✔️ Enterprise

Aplicación e implementación son los dos conceptos clave del modelo de recursos de Azure Spring Apps. En Azure Spring Apps, una aplicación es una abstracción de una aplicación empresarial. Una versión de código o binaria implementada como la aplicación se ejecuta en una implementación. Las aplicaciones se ejecutan en una instancia de servicio de Azure Spring Apps o simplemente en una instancia de servicio, como se muestra a continuación.

Diagram showing the relationship between the apps and deployments.

Puede tener varias instancias de servicio en una sola suscripción de Azure, pero el servicio Azure Spring Apps es más fácil de usar cuando todas las aplicaciones que componen una aplicación empresarial residen en una única instancia de servicio. Una razón es que es probable que las aplicaciones se comuniquen entre sí. Pueden hacerlo fácilmente mediante el registro del servicio Eureka en la instancia de servicio.

El plan Estándar de Azure Spring Apps permite que una aplicación tenga una implementación de producción y una implementación de ensayo, de modo que pueda realizar una implementación azul/verde en ella fácilmente.

Aplicación

Las siguientes características o propiedades se definen en el nivel de aplicación.

Características Descripción
Punto de conexión público
Dirección URL para acceder a la aplicación.
Custom Domain
Registro CNAME que protege el dominio personalizado.
Enlace de servicio
La conexión integrada con otros servicios de Azure.
Identidad administrada
La identidad administrada por microsoft Entra ID permite a la aplicación acceder fácilmente a otros recursos protegidos de Microsoft Entra, como Azure Key Vault.
Almacenamiento persistente
Configuración que permite que los datos se conserven más allá del reinicio de la aplicación.

Implementación

Las siguientes características o propiedades se definen en el nivel de implementación y se intercambian al intercambiar la implementación de producción y ensayo.

Características Descripción
CPU Número de vcores por instancia de aplicación.
Memoria Gb de memoria por instancia de aplicación.
Recuento de instancias
El número de instancias de aplicación, se establece manual o automáticamente.
Escalado automático El recuento de instancias de escalado se basa automáticamente en las reglas y programaciones predefinidas.
Opciones de JMV
Opciones de JVM que se van a establecer.
Variables de entorno
Variables de entorno que se van a establecer.
Versión de runtime
Java 8 o Java 11.

Entorno

Azure Spring Apps monta algunos archivos YAML de solo lectura en las aplicaciones implementadas. Estos archivos contienen el contexto de Azure de una implementación. En la lista siguiente se muestran las rutas de acceso y el contenido de estos archivos YAML:

  • /etc/azure-spring-cloud/context/azure-spring-apps.yml

    AZURE_SPRING_APPS:
        SUBSCRIPTION_ID:  <your-azure-subscription-id>
        RESOURCE_GROUP: <your-resource-group-name>
        NAME: <your-azure-spring-apps-name>
    
  • /etc/azure-spring-cloud/context/azure-spring-apps-deployment.yml

    AZURE_SPRING_APPS:
         APP:
            NAME: <your-app-name>
         DEPLOYMENT:
            NAME: <your-deployment-name>
            ACTIVE: true # true if the deployment is in production, false if in staging
    

Si la aplicación es una aplicación de Spring Boot, estas dos rutas de acceso de archivo se agregan a la SPRING_CONFIG_ADDITIONAL_LOCATION variable de entorno. De este modo, la aplicación puede cargar estas propiedades como configuraciones y usarlas en el código. Por ejemplo, puede usar la @ConfigurationProperties anotación para enlazar las propiedades de YAML a una clase Java. En el fragmento de código siguiente se muestra cómo crear una @Configuration clase que represente el contexto de Azure:

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "azure-spring-apps")
@Data
public class AzureSpringAppsContext {

    private String subscriptionId;
    private String resourceGroup;
    private String name;

    private AppContext app;
    private DeploymentContext deployment;

    @Data
    public static class AppContext {
        private String name;
    }

    @Data
    public static class DeploymentContext {
        private String name;
        private boolean active;
    }
}

Para cualquier otra aplicación poliglot, es posible que tenga que leer y acceder a las propiedades correspondientes mediante las bibliotecas de lectura y escritura de archivos correspondientes en las aplicaciones.

Restricciones

  • Una aplicación debe tener una implementación de producción. La API bloquea la eliminación de una implementación de producción. Debe intercambiar una implementación al almacenamiento provisional antes de eliminarla.
  • Una aplicación puede tener como máximo dos implementaciones. La API bloquea la creación de más de dos implementaciones. Implemente el nuevo archivo binario en la implementación de producción o de almacenamiento provisional.
  • La administración de implementación no está disponible en el plan Básico. Use el plan Estándar o Enterprise para la funcionalidad de implementación azul-verde.

Pasos siguientes