Migrar aplicativos do Spring Cloud para o Azure Spring Apps

Observação

Azure Spring Apps é o novo nome do serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns locais por um tempo enquanto trabalhamos para atualizar ativos como capturas de tela, vídeos e diagramas.

Este guia descreve o que você deve estar ciente quando quiser migrar um aplicativo Spring Cloud existente para ser executado nos Aplicativos Spring do Azure.

Pré-migração

Antes de tudo, para garantir uma migração bem-sucedida, conclua as etapas de avaliação e de inventário descritas nas seções a seguir.

Se você não puder atender a nenhum desses requisitos de pré-migração, confira os seguintes guias de migração complementares:

  • Migrar aplicativos JAR executáveis para contêineres no Serviço de Kubernetes do Azure (diretrizes planejadas)
  • Migrar aplicativos JAR executáveis para Máquinas Virtuais do Azure (diretrizes planejadas)

Inspecionar os componentes de aplicativo

Determinar se e como o sistema de arquivos é usado

Localize instâncias nas quais os serviços gravem e/ou leiam do sistema de arquivos local. Identifique onde os arquivos de curto prazo/temporários são gravados e lidos e onde os arquivos de longa duração são gravados e lidos.

Observação

Os Aplicativos Spring do Azure fornecem 5 GB de armazenamento temporário por instância do Azure Spring Apps, montados no /tmp. Se os arquivos temporários forem gravados acima desse limite ou em uma localização diferente, alterações de código serão necessárias.

Conteúdo estático somente leitura

Se seu aplicativo estiver servindo conteúdo estático no momento, você precisará de um local alternativo para ele. Talvez você queira considerar a movimentação de conteúdo estático para o Armazenamento de Blobs do Azure e a adição da CDN do Azure para downloads extremamente rápidos, globalmente. Para obter mais informações, confira Hospedagem de site estático no Armazenamento do Microsoft Azure e Início rápido: Integrar uma conta de armazenamento do Azure à CDN do Azure.

Conteúdo estático publicado dinamicamente

Se o aplicativo permitir conteúdo estático que é carregado/produzido pelo aplicativo, mas não puder ser alterado após sua criação, você poderá usar o Armazenamento de Blobs do Azure e a CDN do Azure, conforme descrito acima, com uma Função do Azure para lidar com uploads e atualização de CDN. Fornecemos uma implementação de exemplo para seu uso em Carregar conteúdo estático e fazer o pré-carregamento desse conteúdo pela CDN com o Azure Functions.

Determinar se algum dos serviços contém o código específico do SO

Se seu aplicativo contiver qualquer código com dependências do sistema operacional do host, você precisará refatorá-lo para remover essas dependências. Por exemplo, talvez seja necessário substituir qualquer uso de / ou \ em caminhos do sistema de arquivos com File.Separator ou Paths.get.

Alternar para uma plataforma compatível

Os Aplicativos Spring do Azure oferecem versões específicas do Java e versões específicas do Spring Boot e do Spring Cloud. Para garantir a compatibilidade, primeiro migre o aplicativo para uma das versões com suporte do Java no ambiente atual e depois continue com as etapas de migração restantes. É necessário testar completamente a configuração resultante. Use a versão estável mais recente da sua distribuição do Linux nesses testes.

Observação

Essa validação é especialmente importante se o servidor atual estiver sendo executado em um JDK não compatível (como Oracle JDK ou IBM OpenJ9).

Para determinar a sua versão atual do Java, entre no servidor de produção e execute o seguinte comando:

java -version

Para obter versões com suporte do Java, Spring Boot e Spring Cloud, bem como instruções para atualização, consulte Preparar um aplicativo para implantação no Azure Spring Apps.

Identificar as versões do Spring Boot

Examine as dependências de cada aplicativo que está sendo migrado para determinar a versão do Spring Boot.

Maven

Em projetos Maven, a versão do Spring Boot normalmente se encontra no elemento <parent> do arquivo POM:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.10</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
Gradle

Em projetos Gradle, a versão do Spring Boot normalmente se encontrará na seção plugins, como a versão do plug-in org.springframework.boot:

plugins {
  id 'org.springframework.boot' version '2.7.10'
  id 'io.spring.dependency-management' version '1.0.15.RELEASE'
  id 'java'
}

Para os aplicativos que usam o Spring Boot 1.x, siga o Guia de migração do Spring Boot 2.0 para atualizá-los para uma versão do Spring Boot com suporte. Para obter versões com suporte, consulte a seção Spring Boot e versões Spring Cloud de Preparar um aplicativo para implantação no Azure Spring Apps.

Identificar as versões do Spring Cloud

Examine as dependências de cada aplicativo que você está migrando para determinar a versão dos componentes do Spring Cloud usados.

Maven

Em projetos Maven, a versão do Spring Cloud é normalmente definida na propriedade spring-cloud.version:

  <properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>2021.0.6</spring-cloud.version>
  </properties>
Gradle

Em projetos Gradle, a versão do Spring Cloud é normalmente definida no bloco “propriedades extras”:

ext {
  set('springCloudVersion', "2021.0.6")
}

Você precisa atualizar todos os aplicativos para usar versões suportadas do Spring Cloud. Para obter uma lista de versões com suporte, consulte a seção Spring Boot e versões Spring Cloud de Preparar um aplicativo para implantação em aplicativos Spring do Azure.

Identificar as soluções de agregação de log

Identifique quaisquer soluções de agregação de log em uso pelos aplicativos que você está migrando. Você precisa definir as configurações de diagnóstico na migração para disponibilizar os eventos registrados para consumo. Para obter mais informações, consulte a seção Garantir o log do console e definir configurações de diagnóstico.

Identificar os agentes de APM (gerenciamento de desempenho de aplicativo)

Identifique quaisquer agentes de monitoramento de desempenho de aplicativos em uso com seus aplicativos. O Azure Spring Apps oferece suporte à integração com Application Insights, New Relic, Elastic APM, Dynatrace e AppDynamics. Se o aplicativo estiver usando um APM com suporte, configure a integração na migração. Se o aplicativo não estiver usando um APM compatível, considere usar o Application Insights. Para obter mais informações, consulte a seção Migração .

Identificar as dependências Zipkin

Determine se seu aplicativo tem dependências no Zipkin. Atualize o aplicativo para usar o Application Insights. Para obter informações, consulte Usar o agente Java em processo do Application Insights nos aplicativos Spring do Azure e a seção Pós-migração .

Recursos externos de inventário

Identifique recursos externos, como fontes de dados, agentes de mensagens JMS e URLs de outros serviços. Em aplicativos Spring Cloud, normalmente é possível encontrar a configuração desses recursos em uma das seguintes localizações:

  • Na pasta src/main/directory, em um arquivo geralmente chamado de application.properties ou de application.yml.
  • No repositório do Spring Cloud Config que você identificou na etapa anterior.

Bancos de dados

Para qualquer banco de dados SQL, identifique a cadeia de conexão.

Para um aplicativo Spring Boot, as cadeias de conexão normalmente aparecem em arquivos de configuração.

Este é um exemplo de um arquivo application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/mysql_db
spring.datasource.username=dbuser
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

Este é um exemplo de um arquivo application.yaml:

spring:
  data:
    mongodb:
      uri: mongodb://mongouser:deepsecret@mongoserver.contoso.com:27017

Confira a documentação do Spring Data para obter mais cenários de configuração possíveis:

Agentes de mensagem JMS

Identifique os agentes em uso examinando o manifesto de build (normalmente, um arquivo pom.xml ou um build.gradle) para as dependências relevantes.

Por exemplo, um aplicativo Spring Boot que usa o ActiveMQ normalmente conteria essa dependência no arquivo pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

Os aplicativos Spring Boot que usam brokers comerciais normalmente contêm dependências diretamente nas bibliotecas de drivers JMS dos brokers. Este é um exemplo de um arquivo build.gradle:

    dependencies {
      ...
      compile("com.ibm.mq:com.ibm.mq.allclient:9.0.4.0")
      ...
    }

Depois de identificar os agentes em uso, localize as configurações correspondentes. Em aplicativos Spring Cloud, normalmente é possível encontrá-las nos arquivos application.properties ou application.yml no diretório de aplicativo ou no repositório do servidor do Spring Cloud Config.

Aqui está um exemplo do ActiveMQ em um arquivo application.properties:

spring.activemq.brokerurl=broker:(tcp://localhost:61616,network:static:tcp://remotehost:61616)?persistent=false&useJmx=true
spring.activemq.user=admin
spring.activemq.password=tryandguess

Para obter mais informações sobre o ActiveMQ, confira a Documentação de mensagens do Spring Boot.

Aqui está um exemplo do IBM MQ em um arquivo application.yaml:

ibm:
  mq:
    queueManager: qm1
    channel: dev.ORDERS
    connName: localhost(14)
    user: admin
    password: big$ecr3t

Para obter mais informações sobre a configuração do IBM MQ, confira a Documentação dos componentes do Spring IBM MQ.

Identificar os caches externos

Identifique os caches externos em uso. Frequentemente, o Redis é usado por meio do Spring Data Redis. Para obter informações de configuração, confira a Documentação do Spring Data Redis.

Determine se os dados de sessão estão sendo armazenados em cache por meio do Spring Session pesquisando a respectiva configuração (no Java ou no XML).

Provedores de identidade

Identifique todos os provedores de identidade e todos os aplicativos Spring Cloud que requerem autenticação e/ou autorização. Para obter informações sobre como configurar provedores de identidade, consulte os seguintes recursos:

Recursos configurados por meio do VMware TAS (Tanzu Application Service) (antigo Pivotal Cloud Foundry)

Para os aplicativos gerenciados com o TAS, os recursos externos, incluindo aqueles descritos anteriormente, são geralmente configurados por meio de associações de serviço do TAS. Para examinar a configuração desses recursos, use a CLI do TAS (Cloud Foundry) para exibir a variável VCAP_SERVICES do aplicativo.

# Log into TAS, if needed (enter credentials when prompted)
cf login -a <API endpoint>

# Set the organization and space containing the application, if not already selected during login.
cf target org <organization name>
cf target space <space name>

# Display variables for the application
cf env <Application Name>

Examine a variável VCAP_SERVICES para obter as definições de configuração de serviços externos associados ao aplicativo. Para obter mais informações, confira a documentação do TAS (Cloud Foundry).

Todos os outros recursos externos

É inviável que este guia documente todas as dependências externas possíveis. Após a migração, é sua responsabilidade verificar se você pode satisfazer todas as dependência externas do aplicativo.

Inventariar as fontes e os segredos de configuração

Inventariar as senhas e proteger as cadeia de caracteres

Verifique todas as propriedades e os arquivos de configuração, assim como as variáveis de ambiente, nas implantações de produção em busca de senhas e cadeias de caracteres secretas. Em um aplicativo Spring Cloud, normalmente é possível encontrar essas cadeias de caracteres no arquivo application.properties ou no application.yml em serviços individuais ou no repositório do Spring Cloud Config.

Inventariar os certificados

Documente todos os certificados usados para pontos de extremidade SSL públicos ou comunicação com bancos de dados de back-end e outros sistemas. Você pode exibir todos os certificados nos servidores de produção executando o seguinte comando:

keytool -list -v -keystore <path to keystore>

Determinar se o Spring Cloud Vault é usado

Se você usar o Spring Cloud Vault para armazenar e acessar segredos, identifique o repositório de segredos de backup (por exemplo, HashiCorp Vault ou CredHub). Em seguida, identifique todos os segredos usados pelo código de aplicativo.

Localize a origem do servidor de configuração

Se o aplicativo usar um Servidor do Spring Cloud Config, identifique onde a configuração está armazenada. Normalmente será possível encontrar essa configuração no arquivo bootstrap.yml ou no bootstrap.properties ou, às vezes, no arquivo application.yml ou no application.properties. A configuração se parecerá com o seguinte exemplo:

spring.cloud.config.server.git.uri: file://${user.home}/spring-cloud-config-repo

Embora o Git seja usado com mais frequência como o armazenamento de dados de backup do Spring Cloud Config, como mostrado anteriormente, um dos outros back-ends possíveis pode estar em uso. Confira a Documentação do Spring Cloud Config para obter informações sobre outros back-ends, como o JDBC (banco de dados relacional), o SVN e o sistema de arquivos local.

Observação

Se os dados do servidor de configuração estiverem armazenados no local, como o GitHub Enterprise, você precisará disponibilizá-los para os Aplicativos Spring do Azure por meio de um repositório Git.

Inspecionar a arquitetura de implantação

Documentar os requisitos de hardware para cada serviço

Para cada um dos serviços do Spring Cloud (não incluindo o servidor de configuração, o registro nem o gateway), documente as seguintes informações:

  • O número de instâncias em execução.
  • O número de CPUs alocadas para cada instância.
  • A quantidade de RAM alocada para cada instância.

Documentar a replicação geográfica/distribuição

Determine se os aplicativos Spring Cloud estão atualmente distribuídos entre várias regiões ou datacenters. Documente os requisitos de tempo de atividade/SLA (Contrato de Nível de Serviço) para os aplicativos que você está migrando.

Identificar os clientes que ignoram o registro de serviço

Identifique aplicativos cliente que invoquem qualquer um dos serviços a serem migrados sem usar o Spring Cloud Service Registry. Após a migração, essas invocações não serão mais possíveis. Atualize esses clientes para usar o Spring Cloud OpenFeign antes da migração.

Migração

Remover configurações restritas

Nos serviços que você está migrando, localize e remova quaisquer atribuições explícitas das seguintes configurações restritas. Essas propriedades são injetadas automaticamente no ambiente do aplicativo para acessar o Config Server e o Service Discovery. Se essas propriedades estiverem nos arquivos de aplicativo do Config Server, você poderá enfrentar conflitos e comportamento inesperado. Para obter mais informações, consulte a seção Restrição de Configurar um servidor de configuração de nuvem Spring gerenciado no Azure Spring Apps

  • eureka.client.service-url.defaultZone
  • eureka.client.tls.keystore
  • eureka.instance.preferIpAddress
  • eureka.instance.instance-id
  • server.port
  • spring.cloud.config.tls.keystore
  • spring.config.import
  • spring.application.name
  • spring.jmx.enabled
  • management.endpoints.jmx.exposure.include

Criar uma instância e aplicativos do Azure Spring Apps

Provisione uma instância do Azure Spring Apps em sua assinatura do Azure. Em seguida, provisione um aplicativo para cada serviço que você está migrando. Não inclua o registro e os servidores de configuração do Spring Cloud. Inclua o serviço Spring Cloud Gateway. Para obter instruções, consulte Guia de início rápido: implantar seu primeiro aplicativo nos aplicativos do Azure Spring.

Preparar o servidor do Spring Cloud Config

Configure o servidor de configuração em sua instância do Azure Spring Apps. Para saber mais, confira Configurar uma instância do Spring Cloud Config Server para seu serviço.

Observação

Se o repositório atual do Spring Cloud Config estiver no sistema de arquivos local ou no local, primeiro você precisará migrar ou replicar seus arquivos de configuração para um repositório baseado em nuvem privada, como GitHub, Azure Repos ou BitBucket.

Verificar o registro em log de console e definir as configurações de diagnóstico

Configure o log para que toda a saída seja roteada para o console e não para arquivos.

Depois que um aplicativo for implantado nos Aplicativos Spring do Azure, adicione uma configuração de diagnóstico para disponibilizar eventos registrados para consumo, por exemplo, por meio do Azure Monitor Log Analytics.

LogStash/ELK Stack

Se você usar o LogStash/ELK Stack para a agregação de log, defina a configuração de diagnóstico para transmitir a saída de console para um hub de eventos do Azure. Em seguida, use o Plug-in do LogStash para Hub de Eventos a fim de ingerir eventos registrados no LogStash.

Splunk

Se você usar o Splunk para a agregação de log, defina a configuração de diagnóstico para transmitir a saída de console para o Armazenamento de Blobs do Azure. Em seguida, use o Complemento do Splunk para os serviços em nuvem da Microsoft para ingerir eventos registrados no Splunk.

Configurar um armazenamento persistente

Se qualquer parte do aplicativo ler ou gravar no sistema de arquivos local, você precisará configurar o armazenamento persistente para substituir o sistema de arquivos local. Para obter mais informações, consulte Usar armazenamento persistente interno nos aplicativos do Azure Spring.

Você deveria gravar arquivos temporários no diretório /tmp. Para a independência do SO, você pode obter esse diretório usando System.getProperty("java.io.tmpdir"). Você também pode usar java.nio.Files::createTempFile para criar arquivos temporários.

Componentes do VMware Tanzu

Na camada Enterprise, o Application Configuration Service for VMware Tanzu® é fornecido para oferecer suporte à configuração externalizada para seus aplicativos. O Managed Spring Cloud Config Server não está disponível na camada Enterprise e só está disponível nas camadas Standard e Basic do Azure Spring Apps.

Serviço de Configuração do Aplicativo para Tanzu

O Serviço de Configuração do Aplicativo para Tanzu é um dos componentes comerciais do VMware Tanzu. O Serviço de Configuração de Aplicativo para Tanzu é nativo do Kubernetes e diferente do Spring Cloud Config Server. O Application Configuration Service for Tanzu permite o gerenciamento de recursos do ConfigMap nativos do Kubernetes que são preenchidos com base em propriedades definidas em um ou mais repositórios Git.

Na camada Enterprise, não há nenhum Spring Cloud Config Server, mas você pode usar o Application Configuration Service for Tanzu para gerenciar configurações centralizadas. Para saber mais, confira Usar o Application Configuration Service for Tanzu

Para usar o Application Configuration Service for Tanzu, execute as seguintes etapas para cada um dos seus aplicativos:

  1. Adicione uma associação de aplicativo explícita para declarar que o aplicativo precisa usar o Application Configuration Service for Tanzu.

    Observação

    Ao alterar o status de associar/desassociar, reinicie ou reimplante o aplicativo para que a alteração entre em vigor.

  2. Defina os padrões do arquivo de configuração. Os padrões de arquivo de configuração permitem que você escolha qual aplicativo e perfil o aplicativo usa. Para saber mais, confira a seção Padrão de Usar o Application Configuration Service for Tanzu.

    Outra opção é definir os padrões do arquivo de configuração ao mesmo tempo que a implantação do aplicativo, conforme mostrado no seguinte exemplo:

    az spring app deploy \
        --name <app-name> \
        --artifact-path <path-to-your-JAR-file> \
        --config-file-pattern <config-file-pattern>
    

O Serviço de Configuração de Aplicativo para Tanzu é executado no Kubernetes. Para ajudar a permitir uma experiência de desenvolvimento local transparente, fornecemos as seguintes sugestões.

  • Se você já tiver um repositório Git para armazenar sua configuração externalizada, poderá configurar o Spring Cloud Config Server localmente como a configuração centralizada para seu aplicativo. Depois que o Config Server é iniciado, ele clona o repositório Git e fornece o conteúdo do repositório por meio de seu controlador da Web. Para obter mais informações, consulte Spring Cloud Config na documentação do Spring. O spring-cloud-config-client fornece a capacidade de seu aplicativo pegar automaticamente a configuração externa do Config Server.

  • Se você não tiver um repositório Git ou não quiser configurar o Config Server localmente, poderá usar o arquivo de configuração diretamente em seu projeto. Recomendamos que você use um perfil para isolar o arquivo de configuração para que ele seja usado apenas em seu ambiente de desenvolvimento. Por exemplo, use dev como perfil. Em seguida, você pode criar um arquivo application-dev.yml na pasta src/main/resource para armazenar a configuração. Para fazer com que seu aplicativo use essa configuração, inicie o aplicativo localmente com --spring.profiles.active=devo .

Registro do Serviço Tanzu

O VMware Tanzu Service Registry é um dos componentes comerciais do VMware Tanzu®. O Tanzu Service Registry fornece aos seus aplicativos da camada Enterprise uma implementação do padrão Service Discovery, um dos principais princípios de uma arquitetura baseada em microsserviços. Seus aplicativos podem usar o Tanzu Service Registry para descobrir e chamar dinamicamente serviços registrados. Usar o Tanzu Service Registry é preferível a configurar manualmente cada cliente de um serviço, o que pode ser difícil, ou adotar alguma forma de convenção de acesso, que pode ser frágil na produção. Para obter mais informações, confira Usar o Tanzu Service Registry.

Migrar segredos do Spring Cloud Vault para o Azure Key Vault

Você pode injetar segredos diretamente em aplicativos por meio do Spring usando o iniciador do Spring Boot para o Azure Key Vault. Para obter mais informações, confira Como usar o iniciador do Spring Boot para o Azure Key Vault.

Observação

A migração pode requerer que você renomeie alguns segredos. Atualize o código de aplicativo de acordo.

Migrar todos os certificados para o Key Vault

Os Aplicativos Spring do Azure não fornecem acesso ao armazenamento de chaves JRE, portanto, você deve migrar certificados para o Cofre de Chaves do Azure e alterar o código do aplicativo para acessar certificados no Cofre de Chaves. Para obter mais informações, confira Introdução aos certificados do Key Vault e Biblioteca de clientes de certificados do Azure Key Vault para Java.

Configurar integrações de APM (gerenciamento de desempenho de aplicativos)

Os Aplicativos de Primavera do Azure oferecem as seguintes integrações de APM. Siga os links para habilitar o APM que você precisa:

Se seu aplicativo não estiver usando um APM compatível, considere usar o Application Insights. O Azure Spring Apps oferece integração profunda com o Application Insights para gerenciamento de desempenho e resposta em tempo real a aberrações.

Desabilitar os clientes e os pontos de extremidade de métricas nos aplicativos

Remova os clientes de métricas usados ou os pontos de extremidade de métricas expostos nos aplicativos.

Implantar os serviços

Implante cada um dos aplicativos Spring migrados (não incluindo os servidores Spring Cloud Config e Registry), conforme descrito em Guia de início rápido: implantar seu primeiro aplicativo nos aplicativos Spring do Azure.

Configurar os segredos por serviço e definir as configurações externas

Você pode injetar as definições de configuração por serviço em cada serviço como variáveis de ambiente. Use as seguintes etapas no portal do Azure:

  1. Navegue até a Instância de Aplicativos Spring do Azure e selecione Aplicativos.
  2. Escolha o serviço a ser configurado.
  3. Selecione Configuração.
  4. Insira as variáveis para a configuração.
  5. Selecione Salvar.

Spring Cloud App Configuration Settings

Migrar e habilitar o provedor de identidade

Se qualquer um dos aplicativos Spring Cloud requerer autenticação ou autorização, verifique se eles estão configurados para acessar o provedor de identidade:

  • Se o provedor de identidade for o Microsoft Entra ID, nenhuma alteração deverá ser necessária.
  • Se o provedor de identidade for uma floresta do Active Directory local, considere implementar uma solução de identidade híbrida com o Microsoft Entra ID. Para obter diretrizes, confira a Documentação de identidade híbrida.
  • Se o provedor de identidade for outra solução local, como o PingFederate, consulte o tópico Instalação personalizada do Microsoft Entra Connect para configurar a federação com o Microsoft Entra ID. Como alternativa, considere o Spring Security para o uso do provedor de identidade por meio do OAuth2/OpenID Connect ou do SAML.

Atualizar aplicativos cliente

Atualize a configuração de todos os aplicativos cliente para usar os pontos de extremidade publicados do Azure Spring Apps para aplicativos migrados.

Após a migração

  • Considere adicionar um pipeline de implantação para implantações automáticas e consistentes. As instruções estão disponíveis Para o Azure Pipelines, Para o GitHub Actions e Para o Jenkins.

  • Considere usar implantações de preparo para testar alterações de código em produção antes que elas sejam disponibilizadas para alguns ou todos os usuários finais. Para obter mais informações, confira Configurar um ambiente de preparo no Azure Spring Apps.

  • Considere adicionar associações de serviço para conectar o aplicativo a bancos de dados do Azure com suporte. Essas associações de serviço eliminariam a necessidade de fornecer informações de conexão, incluindo credenciais, para os aplicativos Spring Cloud.

  • Considere usar o Azure Application Insights para monitorar o desempenho e as interações de seus aplicativos. Para obter mais informações, confira Agente em processo do Java do Application Insights no Azure Spring Apps.

  • Considere adicionar as regras de alerta e os grupos de ações do Azure Monitor para detectar e abordar as condições anormais rapidamente. Para obter mais informações, consulte Tutorial: Monitorar recursos do Spring Cloud usando alertas e grupos de ação.

  • Considere replicar a implantação do Azure Spring Apps em outra região para menor latência e maior confiabilidade e tolerância a falhas. Use o Gerenciador de Tráfego do Azure para balancear a carga entre implantações ou o Azure Front Door para adicionar o descarregamento de SSL e o firewall do aplicativo Web com proteção contra DDoS.

  • Se a replicação geográfica não for necessária, considere adicionar um Gateway de Aplicativo do Azure para adicionar o descarregamento de SSL e o Firewall do aplicativo Web com proteção contra DDoS.

  • Se os aplicativos usarem componentes herdados do Spring Cloud Netflix, considere substituí-los por alternativas atuais:

    Herdada Atual
    Spring Cloud Eureka Spring Cloud Service Registry
    Spring Cloud Netflix Zuul Spring Cloud Gateway
    Spring Cloud Netflix Archaius Servidor de Configuração do Spring Cloud
    Spring Cloud Netflix Ribbon Spring Cloud Load Balancer (balanceador de carga do lado do cliente)
    Spring Cloud Hystrix Spring Cloud Circuit Breaker + Resilience4j
    Spring Cloud Netflix Turbine Micrometer + Prometheus