Embarking on a Java web app modernization journey to the cloud can be a challenging feat. How do you transform your apps to be not only functional but also secure, cost-efficient, and reliable in the cloud? We built the Reliable Web App Pattern for Java to help you accelerate your journey to the cloud by making minimal investments in your legacy code, re-platform, and set a base for future modernization. If you've read our announcement blog by Nish Anil or Rory Preddy’s expert take on the subject, you'll know we're deeply committed to helping you succeed in moving Java applications to Azure.
In this new 6-part video series, I’ll demystify the process of re-platforming Java web applications to Azure. The series deep-dives into Azure Well-Architected Framework, explores a production-grade reference application, covers the Reliable Web App Pattern principles, and explains the decision-making for choosing Azure services for your business context.
Part 1: Overview - The Reliable Web App Pattern for Java
This video introduces you to the concept of the Reliable Web App Pattern, which guides you through moving your Java applications to Azure. The pattern is built on five pillars—reliability, security, cost optimization, operational excellence, and performance efficiency. Each pillar incorporates best practices and prescriptive guidance. The video also introduces Prosewear, Inc. a fictitious company that serves as the basis for our scenario. To demonstrate the concepts, we explore a production-ready Java Tomcat application hosted by Prosewear that focuses on training video content. The demo application comes complete with source code and infrastructure-as-code templates, giving you hands-on resources to accompany prescriptive guidance.
Part 2: Reliability – Making your apps always available and responsive
This video dives deep into the concept of reliability using the Prosewear demo application. We discuss common challenges such as network connectivity and timeouts and introduces design patterns such as the Retry Pattern and the Circuit Breaker Pattern to enhance code reliability. The video also covers the double-edged sword of cloud computing, which both improves and complicates reliability. It introduces the concept of Recovery Point Objective (RPO), which defines the maximum amount of data you're willing to lose during downtime.
Part 3: Security – Securing your apps
This video focuses on security, emphasizing the importance of confidentiality, integrity, and availability. It guides you through Azure services like Azure Active Directory and Azure Key Vault, showing how to implement role-based access control and secret management using the Prosewear demo application. The video also covers endpoint security, demonstrating how to restrict public access to certain Azure resources. We also provide a demo on setting up managed identity and role-based access control for an Azure App Service and Key Vault.
Part 4: Cost Optimization – Effective cost management of your apps
This video is about optimizing costs. It discusses the importance of selecting the right Azure services and resources and introduces dynamic allocation and auto-scaling to manage costs effectively using the Prosewear demo application. The video also covers the concept of scaling strategies, discussing the benefits of scaling out over scaling up. It emphasize the importance of establishing a performance baseline before migration to Azure and provides a demo on how to set up auto-scaling rules based on metrics such as CPU usage.
Part 5: Operational Excellence – Streamlining operations of your apps
This video focuses on operational excellence, covering processes that keep your application running smoothly. We discuss the importance of Infrastructure as Code (IaC) and shows how to use Terraform and the Azure Developer CLI for provisioning using the Prosewear demo application. The video also covers the benefits of repeatable infrastructure, ensuring that environments are consistent, which maximizes productivity and allows for rapid innovation. You will learn how to use Application Insights to monitor application errors and performance issues.
Part 6: Performance Efficiency – Boosting your application performance
This final video is about performance efficiency. It introduces the Cache-Aside pattern, a coding pattern that improves the speed and lowers the cost of data retrieval. You will learn how to implement this pattern using Spring Boot Starter Data Redis using the Prosewear demo application. It also covers database performance tips, including minimizing network hops and using connection pools. The video wraps up by summarizing the five pillars covered in the series, based on the Azure Well-Architected Framework and the 12-Factor App methodology.
Conclusion: Lessons learned and key takeaways
This video series provides comprehensive guidelines for those looking to move their Java applications to Azure. The series provides both theoretical knowledge and prescriptive guidance which makes it a valuable resource for your cloud migration journey. The series covers everything from reliability and security to cost optimization and performance efficiency, while providing hands-on examples through the Prosewear demo application.
Learn more about Reliable Web App Pattern for Java
- Announcing the Reliable Web App Pattern for Java - Microsoft Community Hub
- Reliable web app pattern for Java - Plan the implementation - Azure Reference Architectures | Microsoft Learn
- Reliable Web App Pattern on Azure for Java - Microsoft for Java Developers
- GitHub - Azure/reliable-web-app-pattern-java
- How To Use Cache for Re-platform to Azure - Microsoft Community Hub