Share via


Rebuild applications for scalability, performance, and reliability

Sometimes the most cost-effective approach to application modernization is to start over. It’s time to rebuild your business-critical systems when:

  • The architecture fails to meet current or future requirements or has accrued significant technical debt.
  • The cost of refactoring or rebuilding outweighs the benefits.
  • Persistent performance issues can’t be solved by other means.
  • The technology stack relies on out-of-date or unsupported components.
  • Modernizing the user experience requires fundamental changes to the application’s design.
  • The most efficient way to use innovative new technologies is to start over.

Whatever the reason, when you decide to rebuild, you take on a high-effort, high-value optimization activity. The following sections provide best practices and special considerations for rebuilding based on Azure platform as a service (PaaS).

Improve scalability

In general, we recommend using a scale-unit architecture to compartmentalize your application into logical units that can be scaled independently. This approach helps you manage capacity and simplifies deployment and updates to your rebuilt application.

As you work with specific Azure services, the following tips help you choose the best scalability options:

  • In Azure Functions, make sure to choose the plan that best matches your requirements for serverless computing.
  • In Azure App Service, employ automatic scaling, a new scale-out option for web apps and App Service Plans.
  • In Azure Container Apps, deploy simple, isolated containerized applications, and then scale according to behavior—a prescriptive combination of limits and rules.
  • In Azure Kubernetes Service, deploy microservices with efficient horizontal scaling and resource utilization.

Improve performance

The following strategies can help you improve application performance:

  • Implement Azure Front Door for global load balancing and to reduce latency by directing user traffic to the nearest available backend.
  • Use Azure Cache for Redis to improve application performance by caching frequently accessed data.
  • For higher performance and availability, consider the Hyperscale service tier of Azure SQL Database, a highly scalable service suitable for all workload types.

Improve resiliency

A resilient application is designed to handle failure. Azure best practices include the use of availability zones, region pairing, and backups. In addition, as part of an application modernization strategy, we recommend the following:

  • Deploy your application across multiple Azure regions to help ensure high availability and fault tolerance.
  • Depending on your application requirements, consider using active-active or active-passive deployment strategies.
  • Use Azure Site Recovery to orchestrate disaster recovery for your applications, ensuring minimal downtime during outages.
  • Use Azure Service Bus for reliable messaging and for decoupling application components—a step that enhances fault tolerance.

For more information, see Resiliency checklist for specific Azure services.

Modernize monitoring and management

Monitoring gives you visibility across your application portfolio and tells you how well systems are functioning. We recommend using Azure Monitor to gain insights into application performance, set up alerts, and proactively manage issues.

For detailed telemetry and diagnostics about application health and performance, integrate Application Insights, a feature of Azure Monitor, into your monitoring practices.

Modernize security

In addition to the other security measures you implement, when rebuilding an existing application, we recommend the following Azure services:

  • Use Microsoft Entra ID for robust authentication and authorization. for robust authentication and authorization.
  • Store sensitive information such as secrets, keys, and certificates with Azure Key Vault.
  • Test your application under high-load scenarios using Azure Load Testing. Make use of frameworks that support a wide range of application types and communication protocols, including web application protocols (HTTP, HTTPS), REST APIs, JDBC, and arbitrary TCP-based endpoints.
  • Perform scalable, end-to-end web applications across browsers and operating systems using Microsoft Playwright Testing.

Next steps

Continue the optimization journey and rebuild B2B applications using API-first design principles.