We are excited to announce the latest version of the Azure Immersion Workshop - Modernize Java Apps. The enhanced version provides a comprehensive overview of Azure destinations for Java applications and a hands-on experience with Azure Spring Apps Enterprise, a fully managed service for Spring Boot apps. In this workshop you will:
Discover the range of hosting options for Java applications on Azure, with support for popular application servers and frameworks like Red Hat JBoss EAP, Oracle WebLogic, IBM WebSphere, Java SE, Tomcat, and Spring.
Design solutions that incorporate DevOps tooling and CI/CD, secrets management, virtual networks, authentication and authorization, monitoring, and autoscaling.
Take Java applications to production without worrying about infrastructure, app lifecycle management, and monitoring.
The workshop includes demonstrations and examples of application modernization best practices, followed by hands-on guided lab experience. You will dive deep into Java application migration and modernization scenarios and tools (available from Microsoft and Partners) to help you on your journey to the cloud. If you are a developer, developer decision-maker, solution architect, DevOps engineer, or an IT professional who wants to learn about how to use Azure services to build and scale Java applications and services to enterprise scale this workshop is for you.
What you can expect
This is an intermediate- to advanced-level course. Come prepared to discuss, offer perspective, and integrate technology from minimal practical experience. To better understand the technical depth of the content to be presented, check out this sample lab. The 4 hours agenda covers these topics:
Overview of Java on Azure
Whiteboard design session
Azure Spring Apps Enterprise hands-on workshop
Question and answer and next steps discussion
1. Overview of Java on Azure
Java is a core platform for many enterprises, and these organizations are looking to modernize their applications and take advantage of the cloud. Microsoft Azure provides a comprehensive set of services that can help you modernize your Java application, including managed infrastructure, app services, and databases.
2. Whiteboard design session
In the whiteboard design session, you will work with a group to analyze and design a solution for moving legacy on-premises applications and infrastructure to cloud services. As part of the modernization effort, you will discuss modern concepts such as microservices and containers. This workshop improves your ability to design and implement a modernization plan for your organization as it moves services from on-premises to the cloud.
3. Azure Spring Apps Enterprise hands-on workshop
The workshop uses the sample Acme-fitness application, an online shopping platform for fitness equipment. This sample application is composed of several services including:
Three Java Spring Boot applications including a catalog service for fetching available products, a payment service for processing and approving payments for users’ orders, and an identity service for referencing the authenticated user
A shopping cart service written in Python for managing a users’ items that have been selected for purchase
An order service application written in ASP.NET that places orders for products in users’ shopping carts
A Node.js and static HTML front-end application for shopping
In this hands-on lab you will deploy the demo application written in Java, Python, and C# to Azure using Azure Spring Apps Enterprise (ASA-E). ASA-E enables you to easily run Spring Boot and polyglot applications on Azure. When you’re finished, you can continue to manage the application via Azure CLI or switch to Azure Portal. Find a complete guide to getting started with the lab here. This lab's GitHub sample repo can be found here.
Lab 1: Deploy and build applications- You will build and deploy both frontend as well as backend Spring applications to Azure Spring Apps using the Enterprise Tier. You will first attempt to set up a very basic hello-world spring boot app. After that, you will configure Spring Cloud Gateway, deploy the frontend and backend apps of acme-fitness, and verify that you can access the frontend as well as backend. Additionally, we will change the Spring Cloud Gateway rules for these backend apps and set them up to communicate with the Application Configuration Service and the Service Registry.
Lab 2: Configure single sign-on – You will configure Single Sign-On for Spring Cloud Gateway using Azure Active Directory. Single sign-on (SSO is an authentication method that lets users sign in using one set of credentials to multiple independent software systems. With SSO, users can access all needed applications once without being required to authenticate using different credentials.
Lab 3: Integrate with Azure database for PostgresSQL and Azure Cache for Redis – You will provision and prepare an Azure Database for PostgreSQL and an Azure Cache for Redis to be used with apps running in Azure Spring Apps Enterprise tier. Azure Database for PostgresSQL is a fully managed, intelligent, and scalable database service built on the open-source PostgresSQL engine. Azure Cache for Redis is a blazing-fast in-memory data store based on the popular open-source Redis cache. The two services can be integrated easily to provide a powerful and performant solution for your application needs.
Lab 4: Load application secrets using Key Vault – You will securely load secrets using Azure Key Vault for apps running Azure Spring Apps Enterprise tier. You can configure applications to directly load these secrets into memory from Key Vault by using managed identities and Azure role-based access control. These applications/services include resources like databases, logging and monitoring tools, messaging platforms, and more.
Lab 5: Monitor application end to end – You will monitor apps running Azure Spring Apps Enterprise tier using Application Insights and Log Analytics. Azure Application Insights is a powerful monitoring service that helps you understand how your web applications are performing. It provides detailed insights into request and response times, exceptions, database queries, and other important performance metrics. Azure Log Analytics is a powerful logging and monitoring solution that can be used to gain insights into the health and performance of your Azure resources.
Lab 6: Change the application code and update the app – You will update the source code of the frontend application and redeploy the application. This will let you see how changes to the codebase can be quickly propagated through to the live environment.
Lab 7: Set request rate limits – You will use Spring Cloud Gateway on Azure Spring Apps Enterprise tier to set request rate limits. Rate limiting helps you avoid problems that arise with spikes in traffic. When you set request rate limits, your application can reject excessive requests. This configuration helps you minimize throttling errors and more accurately predict throughput.
Lab 8: Automate deployments with GitHub Actions – You will use GitHub Actions and Terraform to automate deployments to Azure Spring Apps Enterprise tier. GitHub Actions lets you automate your workflow by creating "actions" that are triggered by certain events. For example, you can create an action that automatically deploys your code to Azure whenever you push it to your GitHub repository. Terraform lets you manage infrastructure as code. This means you can define your infrastructure (such as virtual machines, networking, and storage) in a Terraform configuration file, and then use the Terraform command line interface to deploy and manage that infrastructure. Together, these tools make it easy to automatically deploy Azure Spring Apps to the enterprise tier.
4.Question and answer and next steps discussion
After completing this workshop, you will have hands-on experience using Azure Spring Apps to take Java applications to production. By collaborating with industry experts as you explore modernization best practices and scenarios, you will learn how to accelerate the design, development, and deployment of Java applications using Azure-managed services.
If you are interested in delivering this workshop
The entire experience is fully packaged and ready to go out of the box, setting you up for success as a trusted advisor on your customers’ pressing Java application modernization concerns. You choose the date, and Microsoft will handle demand generation for your event. Each one-day event lasts from 4-5 hours: one hour of discussion and three hours of immersive hands-on learning. Interested in getting started with your Java application migration and modernization journey to the cloud? Connect with your local partner to see if you qualify.