Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Note
The Basic, Standard, and Enterprise plans will be deprecated starting from mid-March, 2025, with a 3 year retirement period. We recommend transitioning to Azure Container Apps. For more information, see the Azure Spring Apps retirement announcement.
The Standard consumption and dedicated plan will be deprecated starting September 30, 2024, with a complete shutdown after six months. We recommend transitioning to Azure Container Apps.
This article answers frequently asked questions about Azure Spring Apps.
Azure Spring Apps provides a platform as a service (PaaS) for Spring developers. Azure Spring Apps manages your application infrastructure so that you can focus on application code and business logic. Core features built into Azure Spring Apps include Eureka, Config Server, Service Registry Server, VMware Tanzu Build Service, Blue-green deployment, and more. This service also enables developers to bind their applications with other Azure services, such as Azure Cosmos DB, Azure Database for MySQL, and Azure Cache for Redis.
Azure Spring Apps enhances the application diagnostics experience for developers and operators by integrating Azure Monitor, Application Insights, and Log Analytics.
Security and privacy are among the top priorities for Azure and Azure Spring Apps customers. Azure helps ensure that only customers have access to application data, logs, or configurations by securely encrypting all of this data.
- The service instances in Azure Spring Apps are isolated from each other.
- Azure Spring Apps provides complete TLS/SSL and certificate management.
- Critical security patches for OpenJDK and Spring runtimes are applied to Azure Spring Apps as soon as possible.
Each service instance in Azure Spring Apps is backed by Azure Kubernetes Service with multiple worker nodes. Azure Spring Apps manages the underlying Kubernetes cluster for you, including high availability, scalability, Kubernetes version upgrade, and so on.
Azure Spring Apps intelligently schedules your applications on the underlying Kubernetes worker nodes. To provide high availability, Azure Spring Apps distributes applications with two or more instances on different nodes.
See Products available by region.
While the Azure Spring Apps Basic/Standard plan is available in regions of China, the Enterprise plan is not available in all regions on Azure China.
Azure Spring Apps is a regional service. All customer data in Azure Spring Apps is stored to a single, specified region. To learn more about geo and region, see Data residency in Azure.
Azure Spring Apps has the following known limitations:
spring.application.name
is overridden by the application name that's used to create each application.server.port
defaults to port1025
in the Basic/Standard plan. If you apply any other value, the default value overrides the one that you specify, so avoid specifying a server port in your code. If your code sets the server port explicitly rather than usingserver.port
, ensure that the port is either1025
or8080
depending on the pricing plan of your Azure Spring Apps service instance.- The Azure portal, Azure Resource Manager templates, and Terraform don't support uploading application packages. You can upload application packages by deploying the application using the Azure CLI, Azure DevOps, Maven Plugin for Azure Spring Apps, Azure Toolkit for IntelliJ, and the Visual Studio Code extension for Azure Spring Apps.
Which one should I use and what are the limits within each plan?
- Azure Spring Apps offers two pricing plans: Basic and Standard. The Basic plan is targeted for Dev/Test and trying out Azure Spring Apps. The Standard plan is optimized to run general purpose production traffic. See Azure Spring Apps pricing details for limits and feature level comparison.
If you encounter any issues with Azure Spring Apps, create an Azure Support Request. To submit a feature request or provide feedback, go to Azure Feedback.
I'm a Spring developer but new to Azure. What's the quickest way for me to learn how to develop an application in Azure Spring Apps?
For the quickest way to get started with Azure Spring Apps, follow the instructions in Quickstart: Launch an application in Azure Spring Apps by using the Azure portal.
Find metrics in the App Overview tab and the Azure Monitor tab.
Azure Spring Apps supports exporting Spring application logs and metrics to Azure Storage, Event Hubs, and Log Analytics. The table name in Log Analytics is AppPlatformLogsforSpring. To learn how to enable it, see Diagnostic services.
Yes. For more information, see Use Application Insights Java In-Process Agent in Azure Spring Apps.
Three services are currently supported:
- Azure Cosmos DB
- Azure Database for MySQL
- Azure Cache for Redis.
Yes.
The number of outbound public IP addresses varies according to the plans and other factors.
Azure Spring Apps instance type | Default number of outbound public IP addresses |
---|---|
Basic plan instances | 1 |
Standard plan instances | 2 |
VNet injection instances | 1 |
Yes, you can open a support ticket to request for more outbound public IP addresses.
When I delete/move an Azure Spring Apps service instance, are its extension resources deleted/moved as well?
It depends on the logic of resource providers that own the extension resources. The extension resources of a Microsoft.AppPlatform
instance don't belong to the same namespace, so the behavior varies by resource provider. For example, the delete/move operation won't cascade to the diagnostics settings resources. If a new Azure Spring Apps instance is provisioned with the same resource ID as the deleted one, or if the previous Azure Spring Apps instance is moved back, the previous diagnostics settings resources continue extending it.
You can delete the Azure Spring Apps diagnostic settings by using Azure CLI:
az monitor diagnostic-settings delete --name $DIAGNOSTIC_SETTINGS_NAME --resource $AZURE_SPRING_APPS_RESOURCE_ID
Azure Spring Apps supports Java LTS versions with the most recent builds, currently Java 8, Java 11, Java 17, and Java 21 are supported.
See Java long-term support for Azure and Azure Stack.
Public notice is sent out at 12 months before any old runtime version is retired. You have 12 months to migrate to a later version.
- Subscription admins get email notification when we retire a Java version.
- The retirement information is published in the documentation.
See Java long-term support for Azure and Azure Stack.
The most recent Ubuntu LTS version is used, currently Ubuntu 20.04 LTS (Focal Fossa) is the default OS.
Security patches applicable to Azure Spring Apps are rolled out to production on a monthly basis. Critical security patches (CVE score >= 9) applicable to Azure Spring Apps are rolled out as soon as possible.
Yes. For more information, see Set up a staging environment.
No. Azure Spring Apps abstracts the developer from the underlying architecture, allowing you to concentrate on application code and business logic.
Yes. For more information, see Quickstart: Deploy your first application to Azure Spring Apps.
Yes. For more information, see Set up autoscale for applications.
Azure Spring Apps continuously probes port 1025
for customer's applications with the Basic/Standard pricing plan. These probes determine whether the application container is ready to start accepting traffic and whether Azure Spring Apps needs to restart the application container. Internally, Azure Spring Apps uses Kubernetes liveness and readiness probes to achieve the status monitoring.
Note
Because of these probes, you currently can't launch applications in Azure Spring Apps without exposing port 1025
or 8080
.
Yes. For more information, see Monitor app lifecycle events using Azure Activity log and Azure Service Health.
In some rare scenarios, you can see errors from your application logs similar to the following example:
RetryableEurekaHttpClient: Request execution failure with status code 401; retrying on another server if available
The Spring framework raises this issue at a low rate due to network instability or other network issues. There should be no impacts to the user experience. The Eureka client has both heartbeat and retry policy to take care of this problem. You can consider it a transient error and skip it safely.
If you have further questions, see the Azure Spring Apps troubleshooting guide.