- Features
- Pricing
- English
- français
- Deutsch
- Contact us
- Docs
- Login

Azure App Service is Microsoft's Platform-as-a-Service for hosting web applications, APIs, and background processes on Azure. It supports .NET, Java, Node.js, Python, PHP, and Ruby. Despite the broad runtime list, Microsoft-shop .NET teams use App Service as the default home for their applications.
App Service has real strengths: deployment slots for blue-green swaps, tight integration with Entra ID, Cosmos DB, Azure SQL, and Application Insights, and polished Visual Studio tooling. For .NET teams already inside Microsoft's stack, it is the path of least resistance.
Teams are reassessing App Service in 2026 for strategic and operational reasons. The EU Data Act, recurring Microsoft service retirements, and rising vendor lock-in concerns at the board level have shifted the conversation.
The criteria below structure the comparison and map directly to the columns of the comparison table.
Upsun is a multi-cloud PaaS that uses a single YAML file for application code and infrastructure. It clones the full production environment, including live data, on every Git branch and supports 10 native runtimes, including PHP, Python, Node.js, Java, Go, Ruby, and .NET.
It runs across AWS, GCP, Azure, OVHcloud, and IBM Cloud with identical Git-push workflows. Teams choose the cloud and region per application, which means a single Upsun configuration can target AWS for one application, OVHcloud for another, and Azure for a specific compliance workload, without rewriting the configuration model.
For .NET, Upsun supports the runtime natively. Major and minor versions are selected in a YAML configuration file using type: 'dotnet:<version>', and Upsun manages patch updates automatically.
Key capabilities:
Best for: .NET teams whose mandate is genuine vendor diversification rather than swapping one hyperscaler for another, particularly teams under EU Data Act pressure or with compliance requirements that travel across environments.
The closest experience match to Azure App Service inside AWS, with deep AWS ecosystem integration.
AWS App Runner is a managed PaaS that auto-scales containerized applications, deploys from container images in ECR or source code in GitHub, and bills per-second compute, memory, and request volume. .NET runs via container build. The platform integrates with the AWS ecosystem, including RDS, Aurora, Cognito, CloudWatch, and Secrets Manager, mirroring how Azure App Service integrates with Cosmos DB and Entra ID.
Key capabilities:
Best for: Teams whose strategy is committing to AWS, not teams trying to reduce hyperscaler concentration.
A serverless container platform with scale-to-zero, request-based pricing, and global GCP deployment.
Google Cloud Run runs containerized workloads with scale-to-zero behavior and fast horizontal scaling, billing per request-processing time. It integrates natively with Cloud SQL, Pub/Sub, BigQuery, and Firestore. .NET runs via container build. The platform suits stateless workloads particularly well, where scale-to-zero genuinely cuts cost.
Key capabilities:
Best for: Teams whose strategy is moving to GCP, particularly for stateless workloads with variable traffic.
A plan-based PaaS for .NET teams already comfortable with Docker.
Render is an independent PaaS with plan-based, predictable pricing, managed PostgreSQL and Key Value (Redis), background workers, cron jobs, and persistent disks. It runs on its own infrastructure with no multi-cloud or BYOC option, so it solves "leave Azure" but does not offer multi-cloud as a feature. Per Render's documentation, .NET is not natively supported; applications run via Docker.
Key capabilities:
Best for: Teams ready to standardize on Docker who want a polished PaaS developer experience and predictable monthly billing.
A container platform for global edge-deployed .NET workloads with multi-region routing built in.
Fly.io runs Docker containers as lightweight VMs across 18 regions, according to Fly.io's regions documentation as of 2026, with global Anycast routing. For .NET teams whose users are genuinely distributed worldwide, Fly.io offers low-latency multi-region deployment as the default rather than a separate engineering project. .NET runs via Docker.
Key capabilities:
Best for: .NET teams whose product depends on low-latency, edge-distributed delivery across geographies.
Platform | Multi-cloud / BYOC | Native .NET runtime | Preview environments | Managed services | Compliance |
| Upsun | Yes: AWS, GCP, Azure, OVHcloud, IBM Cloud | Yes, native via YAML | Clone of production code, config, and live data | PostgreSQL, MySQL, Redis, Elasticsearch, OpenSearch, RabbitMQ, Kafka | ISO 27001, SOC 2 Type 2, PCI DSS Level 1, TX-RAMP, HIPAA, and GDPR |
| AWS App Runner | AWS only | Via container | No | RDS, Aurora, plus AWS catalog | AWS compliance footprint |
| Google Cloud Run | GCP only | Via container | No | Cloud SQL, plus GCP catalog | GCP-level: SOC 2, ISO 27001 |
| Render | Render-managed only | Via Docker | Built-in, no automatic production data clone | Postgres, Key Value (Redis) | SOC 2 Type 2, ISO 27001, HIPAA opt-in, GDPR |
| Fly.io | Fly.io-managed only | Via Docker | Not abstracted | Managed Postgres, Tigris, and Upstash Redis | SOC 2 Type 2 and HIPAA only |
The core question is what your mandate actually requires. Switching from Azure App Service to AWS App Runner or Google Cloud Run solves "leave Azure" but does not solve hyperscaler concentration. Switching to Render or Fly.io solves "leave hyperscalers" but trades multi-cloud for single-vendor PaaS. Only a platform with deployment across multiple clouds, or a bring-your-own-cloud model, addresses the structural concern that drives most diversification mandates in 2026.
For teams committing to AWS, App Runner is the cleanest landing point. For teams committing to GCP, Cloud Run is the equivalent. For Docker-standardized teams that want predictable monthly billing, Render is the closest match. For global edge .NET workloads, Fly.io is the natural fit. Upsun is the strongest fit for .NET teams whose mandate is genuine vendor diversification, particularly teams under EU Data Act pressure, with compliance requirements that travel across environments, or with multi-cloud as a long-term strategy.
Why are .NET teams leaving Azure App Service in 2026?
The most cited reasons are strategic vendor diversification (89% of enterprises now operate multi-cloud, with 42% citing lock-in prevention as the primary driver), EU Data Act compliance requires cloud providers to guarantee data portability, recurring Microsoft service retirements that consume platform-team capacity, and the technical reality that .NET 8 and 9 run cleanly on Linux without the historical Windows dependency.
Does the EU Data Act require leaving Azure?
No. The EU Data Act, in force since January 2024, requires cloud providers to guarantee data portability and interoperability. It does not mandate leaving any specific provider. What it does is give European teams regulatory cover for diversification decisions and create real pressure on architecture committees to demonstrate that workloads can move if needed.
Does Upsun support .NET natively, and which versions?
Yes. Upsun supports .NET as a first-class native runtime. You select major and minor versions in .upsun/config.yaml using type: 'dotnet:<version>', and patch updates are applied automatically. Build hooks use dotnet publish, with documented flags for clean integration with the .NET build system.
Can Upsun deploy across multiple clouds, including European sovereign options?
Yes. Upsun deploys across AWS, Azure, GCP, IBM, and OVHcloud. The OVHcloud option is particularly relevant for European teams under EU Data Act pressure, since it provides a European-headquartered sovereign hosting path that pure US-hyperscaler alternatives cannot match. Teams choose the cloud and region per application without changing application code or configuration syntax.
Does moving from Azure App Service to AWS App Runner or Google Cloud Run solve vendor lock-in?
No. Switching from one hyperscaler PaaS to another addresses the platform but not the structural concentration risk. If the strategic mandate behind your move is vendor diversification, only a multi-cloud platform, such as Upsun, or a bring-your-own-cloud approach, addresses the underlying concern. AWS App Runner and Google Cloud Run are strong choices if your strategy is committing to that specific cloud.
What happens to Cosmos DB or Azure SQL when I leave Azure?
Cosmos DB and Azure SQL are Azure-specific services with no direct equivalents on other platforms. Migrating off them typically involves replatforming to PostgreSQL, MariaDB, or another open-standard database, and that work should be scoped before any platform decision. Some teams move .NET applications to Upsun while keeping Cosmos DB on Azure during a transition, using Upsun's multi-cloud model to bridge the migration over time.
Which Azure App Service alternative is best for global .NET deployment?
For applications where low-latency multi-region delivery is a real product requirement, Fly.io offers the strongest edge-distributed model with more than 18 regions. For a multi-cloud global deployment that lets you pick different providers in different regions, Upsun is the better fit. For staying inside a single hyperscaler's global network, AWS App Runner and Google Cloud Run are both reasonable.