Azure Spring Apps FAQ
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.
General
Why 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.
How secure is Azure Spring Apps?
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.
How does Azure Spring Apps host my applications?
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.
In which regions is Azure Spring Apps available?
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.
Is any customer data stored outside of the specified region?
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.
What are the known limitations of Azure Spring Apps?
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.
What pricing plans are available?
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.
How can I provide feedback and report issues?
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.
Development
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.
Where can I view my Spring application logs and metrics?
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.
Does Azure Spring Apps support distributed tracing?
Yes. For more information, see Use Application Insights Java In-Process Agent in Azure Spring Apps.
What resource types does Service Binding support?
Three services are currently supported:
- Azure Cosmos DB
- Azure Database for MySQL
- Azure Cache for Redis.
Can I view, add, or move persistent volumes from inside my applications?
Yes.
How many outbound public IP addresses does an Azure Spring Apps instance have?
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 |
Can I increase the number of outbound public IP addresses?
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
Java runtime and OS versions
Which versions of Java runtime are supported in Azure Spring Apps?
Azure Spring Apps supports Java LTS versions with the most recent builds, currently Java 8, Java 11, Java 17, and Java 21 are supported.
How long are Java 8, Java 11, Java 17, and Java 21 LTS versions supported?
See Java long-term support for Azure and Azure Stack.
What is the retire policy for older Java runtimes?
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.
How can I get support for issues at the Java runtime level?
See Java long-term support for Azure and Azure Stack.
What is the operation system to run my apps?
The most recent Ubuntu LTS version is used, currently Ubuntu 20.04 LTS (Focal Fossa) is the default OS.
How often are OS security patches applied?
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.
Deployment
Does Azure Spring Apps support blue-green deployment?
Yes. For more information, see Set up a staging environment.
Can I access Kubernetes to manipulate my application containers?
No. Azure Spring Apps abstracts the developer from the underlying architecture, allowing you to concentrate on application code and business logic.
Does Azure Spring Apps support building containers from source?
Yes. For more information, see Quickstart: Deploy your first application to Azure Spring Apps.
Does Azure Spring Apps support autoscaling in app instances?
Yes. For more information, see Set up autoscale for applications.
How does Azure Spring Apps monitor the health status of my application?
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
.
Whether and when is my application restarted?
Yes. For more information, see Monitor app lifecycle events using Azure Activity log and Azure Service Health.
Troubleshooting
What are the impacts of service registry rarely unavailable?
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.
Next steps
If you have further questions, see the Azure Spring Apps troubleshooting guide.