Azure Spring Apps Enterprise Tier Gets More Power, Scalability, and Extended Spring Boot Support

July 11, 2023

This blog was cowritten by Microsoft's Asir Selvasingh and VMware's Adib Saikali.

Can you believe Spring is celebrating its 20th anniversary this year? We could not have gotten to this point without the millions of Spring developers across the globe. Thank you! Spring has been an essential tool for Java developers, and it continues to grow and innovate at a fast pace. From the onset, Azure and VMware have been trusted partners helping customers run mission-critical Java and Spring workloads. Our commitment and fondness for the Java Spring developer community have not wavered.

Microsoft and VMware collaboration continues

Microsoft’s collaboration with the Spring team, which began in 2016, has been fundamental to our shared goal of enabling Spring apps to fully harness the power of the cloud. We have heard Spring developers express their desire to focus on their application code and business logic, rather than being bogged down by the complexities of managing, securing, and scaling infrastructure, containers, and virtual machines. To address this, Microsoft and VMware teamed up to establish Azure Spring Apps, an initiative aimed at simplifying development and operations workflows and expediting the journey from code to production. As a key service within the Microsoft Azure ecosystem, Azure Spring Apps has already garnered significant traction. Many customers, including Bosch, Digital Realty, FedEx, Kroger, Liantis, Morgan Stanley, National Life, and Swiss Re, adopted the service for their mission-critical enterprise Java Spring applications.

The Azure Spring Apps Enterprise tier is designed to expedite the development and deployment of enterprise applications by providing commercially supported Spring runtime components and access to Spring experts. Building on the features available in the Standard tier, it allows users to harness the expansive Azure ecosystem to enhance their Spring applications, facilitating a faster path to production and enabling the full realization of Spring's capabilities.

Today, we are delighted to announce significant enhancements to Azure Spring Apps Enterprise. These improvements can bolster security, quicken development speed, amplify scalability, and provide greater flexibility and reliability. We are excited to share these developments and look forward to seeing how they enhance customer experiences.

Java apps and GraalVM

In the traditional setup, Java applications operate within a Java Runtime Environment (JRE). However, the introduction of the GraalVM Native Image capability marks a significant shift. It lets you compile Java applications into standalone executables, otherwise known as native images. The advantages of this new process are substantial; native images offer quicker startup times and reduced runtime memory overhead when compared to the conventional Java Virtual Machine (JVM). Now, within Azure Spring Apps Enterprise, you have the option to deploy Spring native image applications using the Cloud Native Buildpack for Java Native Image, which can make the whole process simpler and super-efficient. 

Enhanced capabilities and their key benefits

In the past five years, our understanding and knowledge have been significantly shaped by the experiences and feedback of developers and customers. We are committed to paying heed to customers' voices and their needs. Acknowledging the growing demand for running and scaling enterprise applications at a larger scale, we are thrilled to announce a series of enhancements to Azure Spring Apps Enterprise. These enhancements are a direct reflection of our continuous effort to meet and exceed users’ expectations.

Table listing new features in Azure Spring Apps Enterprise tier

Enhancements to Azure Spring Apps Enterprise: Before vs. now, plus user benefits 

Enhanced reliability and significantly reduced downtime

Improved service-level agreement: Azure Spring Apps Enterprise now provides an improved service-level agreement (SLA) of 99.95%, enhancing reliability and reducing the potential downtime for businesses.

This enhancement potentially translates to about 4.34 hours of downtime annually, which represents as much as a 50% reduction from the previous SLA. The new SLA provides comprehensive assurance, when all components managed by Azure Spring Apps are taken into consideration. This includes key elements such as Azure Kubernetes Service, Azure Storage, Azure Container Registry, network elements, and various Spring components, such as Application Configuration Service, Service Registry, Spring Cloud Gateway for VMware Tanzu, and VMware Tanzu Build Service. In essence, the 99.95% SLA offers a more consistent and reliable service with a potential for significantly reduced outages, which is crucial for businesses with mission-critical operations.

This new SLA contrasts markedly with SLAs for do-it-yourself (DIY) application environments where the SLA is an aggregate of various individual services' SLAs and your homegrown control plane components (if any). For instance, a fully managed Kubernetes service could provide an SLA for Kubernetes API server connectivity but not for nodes running your application workloads. These nodes, being virtual machines, carry their own SLA. Services like Azure Storage and Azure Container Registry have their own availability guarantees as well. When you utilize your own ingress controllers and Spring components within a Kubernetes environment, you must ensure all necessary redundancies and instrumentations for measuring SLA and remedying downtime. To achieve an application availability comparable to Azure Spring Apps Enterprise's 99.95%, you would need to build in redundancies for all service components and your control plane components, and constantly monitor and adjust for any disruptions.

Enhanced scalability and increased capacity

Improvements available as preview features include enhanced hosting with up to 1,000 app instances, large-app support, and efficient build processes.

Up to 1,000 app instances: Azure Spring Apps Enterprise now offers a preview of a robust hosting environment capable of accommodating up to 1,000 application instances per service instance, which would provide businesses with the scalability needed for their workloads. With support for up to 8,000 virtual CPUs and 32 terabytes of memory per service instance, Azure Spring Apps Enterprise could enable organizations to meet demanding computational and memory requirements effectively and efficiently. Of course, you can provision any number of service instances in a region or any number of regions.

Larger app instances: In addition, Azure Spring Apps Enterprise offers enhanced value to users by providing support for larger app instances, featuring up to 8 virtual CPUs (vCPU) and 32 gigabytes (GB) of memory per app instance. This increased capacity can allow users to deploy resource-intensive applications that require more computational power and memory, enabling them to meet the demands of their workloads effectively.

Efficient build processes: And to enable more efficient and faster application build processes, especially for complex and resource-intensive applications, Azure Spring Apps Enterprise has increased the resource allocation for build agent pool up to 64 vCPUs and 128 GB of memory. With these ample resources at your disposal, you can build any app in a highly efficient and resource-rich environment, enabling a smoother and faster compilation process.

Faster startup time and optimized memory usage 

Java native images support: Available now as a preview feature, Azure Spring Apps Enterprise offers support for Java native images, which could result in faster startup times and optimized memory usage. 

GraalVM Native Image capability allows you to compile Java applications to standalone executables, known as native images. These executables can provide significant benefits, including faster startup times and lower runtime memory overhead compared to a traditional Java Virtual Machine. You can deploy Spring Boot native image applications using the Cloud Native Buildpack for Java Native Image.

The image below shows optimized memory usage of a native image deployment—which is about one-fifth of the memory consumed by its equivalent JAR deployment—for a constant workload of 400 requests per second into the monolithic version of the Petclinic application.

GraalVM requires a significant number of resources to build Java native images due to the complexity of the underlying process. The compilation and optimization steps involved in generating native images require substantial computational power and memory.

Screenshot showing memory usage of a Java Native Image deployment compared to a JAR deployment
 Optimized memory usage of a native image deployment for a constant workload of 400 requests per second into the monolithic version of the Petclinic application.

Seamless deployment across environments

Bring your own Azure Container Registry: Azure Spring Apps Enterprise now offers the flexibility to bring your own Azure Container Registry (ACR), promoting seamless application deployment across different environments. 

With Azure Spring Apps Enterprise, users have the advantage of utilizing the Bring Your Own Azure Container Registry (ACR) feature. This functionality lets users store container images built by Tanzu Build Service within the Azure Spring Apps Enterprise environment, promoting seamless deployment of the same image across various environments, regions, local machines for testing, on-premises setups, and more. Until now, an Azure Spring Apps Enterprise service instance has managed an Azure Container Registry service instance for container images built by Tanzu Build Service, with the Registry bundled within the service instance. But from now on, users can opt between using the Azure Container Registry managed by the service instance or choosing to bring your own Azure Container Registry. This enhancement can provide more flexibility and consistency in deployment processes, simplify management across multiple environments, and facilitate efficient application distribution across different platforms.

Spring Boot 2.x.x support extended until February 2025 

Extended Spring Boot support: Azure Spring Apps Enterprise grants you VMware Spring Runtime Support, which includes support for Spring Boot 2.x.x until February 2025, providing customers with more time for application upgrades.

Many enterprises and developers might not be aware that open source support for older versions of the Spring Framework and Spring Boot is set to end this year (Specifically, support for Spring Boot 2.x.x by the open source community will end on November 18, 2023*; find the current support timelines for Spring projects). This development could leave organizations without commercial support contracts struggling to access patches or security updates. As a result, companies might encounter increased security, compliance, and legal risks. With the need to navigate multiple upgrade tasks, such as transitioning to Java 17, adopting the latest Spring Boot versions, handling deprecated code in Spring Boot 2.x.x, and ensuring compatibility with Jakarta EE 9, developers require adequate time and support. 

Azure Spring Apps Enterprise users are entitled to commercial support for Spring apps through the VMware Spring Runtime Support. By offering extended commercial support for Spring Boot 2.x.x until February 2025, Azure Spring Apps Enterprise can provide a cushion for developers and customers, allowing them the necessary time to successfully upgrade their applications while mitigating the risks associated with delayed upgrades, as exemplified by many data breaches and subsequent costly consequences.

Timeline for commercial support of Spring Boot

Commercial support timeline for Spring Boot; find the current support timelines for Spring projects

Experience Azure Spring Apps Enterprise

Azure Spring Apps Enterprise helps deliver simplicity and productivity, and you can leverage Spring experts to make your projects even more successful. You can easily deploy your Spring and polyglot applications to the cloud and get them up and running in no time. It is a golden path to production that can simplify the deployment process and optimize your resource usage.

And the best part? Microsoft is offering free monthly grants on all tiers—50 vCPU hours and 100 GB hours per tier. This is the number of free hours you get before any usage is billed, giving you a chance to test out the service. Read Microsoft's announcement for more details. Take advantage of free monthly grants and deploy your first Spring app to Azure Spring Apps Enterprise today! 

This article contains hyperlinks to non-VMware websites that are created and maintained by third parties who are solely responsible for the content of such websites. 

VMware makes no guarantee that services announced in preview or beta will become available at a future date. The information in this article is for informational purposes only and may not be incorporated into any contract. 

Previous
Event Streaming Using RabbitMQ with Spring
Event Streaming Using RabbitMQ with Spring

Spring allows you to easily introduce RabbitMQ for applications written in Java virtual machine languages. ...

Next
4 Problems Raised in ‘Recoding America’—and How to Solve Them
4 Problems Raised in ‘Recoding America’—and How to Solve Them

Jennifer Pahlka's book highlights the unique challenges government entities face. See how Tanzu Labs works ...