Java is one of the most popular programming languages, used by over seven million developers to create everything from enterprise applications to complex robots. Over the past several years we’ve seen an evolution in the Java ecosystem, with the accelerated growth of open-source tools and frameworks like Spring. Microservice architectures are becoming more prevalent, and developers are building more applications on cloud platforms using containers and managed services. The Java ecosystem is complex and running Java applications in the cloud at an enterprise scale can be challenging. Our customers are asking us to help them modernize their Java applications and run them on an enterprise-grade platform—Azure.
We’ve made substantial investments in Java to support a wide range of customer workloads, from the development of Azure Spring Cloud with VMware as a managed destination for Spring Boot applications to the acquisition of jClarity, and the creation of our Microsoft Java Engineering Group. The Microsoft Build of OpenJDK provides a new supported Java runtime option on Azure with the potential for Azure-tuned optimizations—now generally available. We now support the full range of Java EE and Jakarta EE application servers through collaborations with Red Hat, Oracle, and IBM, with newly released offers for Red Hat JBoss Enterprise Application Platform (EAP) and IBM WebSphere on Azure Virtual Machines.
Microsoft is also using Java extensively. We see Java as critical to our success as a company, and it helps power some of our most strategic products like LinkedIn, SQL Server, Azure, Minecraft, and Yammer. We’re running hundreds of thousands of Java virtual machines (JVMs) in production for our internal systems (not including any customer workloads), and LinkedIn alone has thousands of Java microservices in production. Microsoft brings the expertise of running enterprise Java workloads, both internally and externally, to help our customers transform their business.
“I talk about our move to the cloud like this—imagine if you’re pulling into a racetrack pitstop and instead of changing the tires, you had to change out the whole engine. And in making the switch to Microsoft Azure, we changed out that engine—literally—overnight.”—Doug Wilson, Senior Director of Software Engineering, Kroger
Build using tools and frameworks you love
Azure provides first-class integration with DevOps tools popular with Java shops across integrated development environments (IDEs), build, automation, continuous integration and continuous delivery (CI/CD), and source code management (SCM). You can use the Azure Toolkits for IntelliJ and Eclipse to easily create, develop, configure, test, and deploy highly available and scalable Java apps to Azure, right from your favorite IDE such as IntelliJ, Eclipse, or Visual Studio Code. Plugins for Maven and Gradle allow you to natively build and interact with Azure services, and you can automate your workflows and deployments with GitHub Actions, Jenkins, and Terraform.
Azure supports a wide range of developer tooling options for Java.
Microsoft is committed to the Java community and supports projects that improve the Java developer experience. We’ve contributed directly to OpenJDK—implementing ports from Windows and macOS on ARM, contributing enhancements to speed up Java builds on Windows, and helping to accelerate the development of the Shenandoah garbage collector. At Microsoft Build, we’re announcing general availability of the Microsoft Build of OpenJDK, a no-cost long-term support (LTS) distribution of OpenJDK that is open source and available for anyone to deploy anywhere.
It should also come as no surprise that GitHub is the home for open-source Java projects, with over 3.6 million hosted Java repositories. We’ve been working to further improve the support and resources available to Java developers, including offering free cloud compute cycles to support CI/CD and code scanning capabilities in GitHub repos, which are helping to power several of the top Java projects from organizations like Adoptium, Apache, Eclipse Foundation, Red Hat, and VMware.
“We’ve brought Java, Tomcat, Docker containers, Red Hat Enterprise Linux, SUSE Linux, and many other open-source tools into DevTest Labs, and they all work great.”—Peter Rothlaender, Manager of Cloud Solutions, Daimler AG
Ship faster with fully managed services
Organizations and developers want to focus on their applications, not managing and configuring infrastructure. If you want to run containerized apps, Azure has the best-of-breed Kubernetes platforms in Azure Kubernetes Service and Azure Red Hat OpenShift (ARO). Azure also offers the most fully managed hosting applications for Java of any major cloud platform, including Java SE, Tomcat, and Red Hat JBoss EAP (in preview) on Azure App Service and Spring on Azure Spring Cloud. For event-driven architectures, you can use Azure Functions with automated and flexible scaling. Managed services offer ease of use, higher productivity, and lower total cost of ownership.
Azure supports all Java servers and frameworks on a range of managed compute destinations.
Azure Spring Cloud is a fully managed service for Spring Boot apps that lets you focus on building and running the apps that run your business. Simply deploy JARs or code and Azure Spring Cloud will automatically wire apps with the Spring service runtime. Once deployed you can easily monitor application performance, fix errors, and rapidly improve applications. It’s integrated into the Azure ecosystem and enterprise-ready.
Azure App Service lets you quickly build, deploy, and scale Java web apps and APIs on your terms. You can deploy EAR, WAR, and JAR files on Tomcat or Red Hat JBoss EAP (in preview) the way you want—with Maven plugins, from the command line, or from your IDE. Azure App Service includes built-in CI/CD integration and zero-downtime deployments with deployment slots. You can perform intelligent troubleshooting with Azure App Service diagnostics and optimize performance with Azure Monitor and Azure App Insights. Secure enterprise application hosting is possible with a variety of networking features or the single-tenant App Service Environment. If you have existing Tomcat web apps, you can use the App Service Migration Assistant to assess and migrate them to Azure App Service.
“We chose Azure Spring Cloud to concentrate on writing apps and running them with minimum overhead.”—Jonathan Jones, Lead Solutions Architect, Group Finance IT, Swiss Re
Easily extend your Java applications
Applications need supporting services like databases, integration, security, and monitoring. Azure offers a full range of managed database options, including Azure Database for PostgreSQL, Azure Database for MySQL, Azure Cosmos DB, and Azure SQL Database. Azure is the only cloud to offer hyperscale PostgreSQL, so customers can scale their databases almost limitlessly. Connect your applications with integration services like Azure Service Bus with Java Message Service (JMS) support and API Management. For data ingestion, you can use Event Hub or Event Grid. Get fully managed, native monitoring functionality for your Java workloads on Azure, including application performance monitoring (APM), through Azure Monitor Application Insights.
Azure Spring Cloud and Java on Azure reference architecture with common Azure platform services, security, and integration.
We continuously work with enterprise customers to ensure we are focused on their needs including scaling, security, deployment, and cost requirements. Key themes emerge such as enforcing a Zero Trust security model, end-to-end monitoring and observability, and complete automation. Many customers have thousands of Java applications running on-premises. As they migrate these applications to the cloud, they need validated architectures that meet the requirements of their IT departments and regulators. In many customer environments, they also need to show direct mappings from on-premises system architectures to industry-defined security controls and benchmarks.
Our recently released reference architecture for Azure Spring Cloud and Java on Azure makes it easy to follow enterprise best practices in deploying Java apps in the cloud with a range for supporting services. Start with a strong foundation and easily add functionality as your needs expand.
“The availability of Azure Spring Cloud reference architecture reduced our internal cycles of researching architecture options and Spring Cloud feature sets, which allowed us to rapidly determine how we would want to implement and scale globally.”—Devon Yost, Enterprise Architect, Digital Realty Trust
Leverage the benefits of our strong partner ecosystem
Microsoft has a strong partner ecosystem that provides best-in-class solutions to bring your existing Java workloads to Azure and extend the functionality of your applications. From unique managed hosting options with joint development and support to Azure Marketplace images for popular Linux distributions, you can leverage a growing portfolio of Java-focused solutions.
Microsoft has a strong partner ecosystem that provides many options for building and running Java applications.
Customers have substantial investments in mission-critical Java applications running on-premises and need fully supported environments to run these apps in the cloud. We’re announcing Azure Marketplace offerings for Red Hat JBoss EAP on Red Hat Enterprise Linux (RHEL) and IBM WebSphere, both running on Azure VMs. Red Hat JBoss EAP on Azure VMs includes flexible licensing options including bring your own subscription and pay as you go for RHEL. These offerings provide solution templates and Quickstarts to provision compute resources, install a base image, and provide configuration options. With the addition of Red Hat JBoss EAP and IBM WebSphere, customers now have a choice of Azure Marketplace offerings to deploy the most widely used Java enterprise application servers on Azure VMs (Oracle WebLogic, IBM WebSphere, and Red Hat JBoss EAP).
Many Java developers also use services like Redis for caching, Elastic for log analysis and observabilities, and Kafka for event streaming in their application architectures. Azure offers unique managed offerings for these services, including Redis Enterprise and Redis Enterprise Flash on Azure managed infrastructure, Elastic on Azure Marketplace for ELK-based monitoring and troubleshooting integrated with Azure, and Confluent Cloud with Azure portal and CLI integration. You can keep using your favorite services on Azure with the added benefits of managed infrastructure and support.
“Red Hat and Microsoft are both committed to extending choice and flexibility for organizations as they shift traditional Java applications to the cloud. Red Hat JBoss EAP on Azure offers customers a fully configured, jointly supported solution to make it easier for organizations to realize the benefits of cloud-based architecture. We look forward to continuing to build upon our long-standing relationship with Microsoft and expand support for our joint customers."—Rich Sharples, Senior Director of Product Management – Application Services, Red Hat
Get started with Java on Azure
Customers and developers want a seamless experience running Java apps in the cloud that doesn’t require them to change their workflows and processes. Azure’s open platform provides broad developer tooling integration, fully managed compute, database, and platform services, and an extensive set of partner offerings. We’ve seen customers do amazing things with Java on Azure and we will continue to invest in our offerings for Java and add additional support for running Java applications on Azure at an enterprise scale.
We invite you to learn more and get started building and running your Java applications on Azure using the resources below. We’re available at every stage, with extensive documentation and self-paced training to hands-on migration and modernization support from Azure engineering teams. We’d love to see what you build.
- Learn more about Java on Azure.
- Start a self-paced learning path on Microsoft Learn.
- Explore the Java developer docs.
- Learn about the Azure Migration Program.
Azure. Invent with purpose.