Develop Portable Apps with Adaptive Applications
Aaron Stark talks with Haishi Bai, Principal Software Architect at Microsoft, about Adaptive Applications: an architectural approach that separates what an application needs from how those capabilities are delivered.
Overview
What “Adaptive Applications” means
Adaptive Applications are presented as a way to:
- Define application needs as capabilities (what the app requires)
- Provide those capabilities via different implementations (how the capability is delivered)
- Keep application code stable while swapping underlying services based on environment constraints
Capability-based abstractions (decoupling code from infrastructure)
The episode explains a capability-oriented architecture where developers abstract key concerns behind capability interfaces, so the same app can run in multiple environments without rewriting core logic.
Key capability areas called out:
- AI capabilities (cloud AI services vs local models)
- Data capabilities (data services that may differ by environment)
- Identity capabilities (identity providers and access patterns that vary across deployments)
Why portability matters (sovereignty, compliance, and continuity)
The discussion highlights organizational requirements that often force environment-specific choices:
- Sovereignty and regulatory compliance constraints
- Data residency requirements
- Business continuity needs
- Hybrid deployment realities (cloud + edge + on-prem)
Adaptive Applications are positioned as a way to meet these constraints while keeping a consistent application architecture.
Running across cloud, sovereign, edge, and on-prem
The episode frames the goal as “build once, run anywhere” across:
- Azure
- Sovereign environments
- Edge deployments
- On-premises environments
Azure Arc and environment portability
Azure Arc is referenced in the context of enabling portability across environments, supporting scenarios where organizations need consistent management and deployment patterns beyond public Azure.
Modernizing existing applications
The episode includes a segment on applying the Adaptive Applications approach to modernize existing applications, using capability abstractions to incrementally decouple legacy assumptions about infrastructure and services.
Resources
- Build Portable Applications with Adaptive Apps (Azure Architecture Center): https://learn.microsoft.com/en-us/azure/architecture/solution-ideas/articles/adaptive-apps
- Adaptive Apps on GitHub: https://github.com/microsoft/adaptive-apps
- Azure Essentials Show: https://aka.ms/AzureEssentialsShow
- More Azure resources: https://azure.com/AzureEssentials