History and context
IaaS, PaaS and SaaS
IaaS
Maximum infrastructure control. More patching and runtime responsibility.
PaaS
Application control with a managed hosting environment. Often a strong fit for business APIs.
SaaS
Finished application consumed by users. Lowest infrastructure ownership.
Our preference
Use PaaS where it removes undifferentiated operations without blocking required application control.
Reference Azure architecture
Why App Service is often enough
ASP.NET Core applications do not need to become container-orchestration projects simply because they run in the cloud. App Service can be a pragmatic default for many APIs and web workloads. Containers or Kubernetes should appear when they solve a concrete packaging, scheduling or operational problem.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddHealthChecks();
var app = builder.Build();
app.MapControllers();
app.MapHealthChecks("/health");
app.Run();CI/CD and controlled releases
A production deployment should be reproducible from source control.
trigger:
branches:
include:
- release/uat
pool:
vmImage: ubuntu-latest
steps:
- task: UseDotNet@2
inputs:
packageType: sdk
version: '10.x'
- script: dotnet restore
- script: dotnet test --configuration Release
- script: dotnet publish --configuration Release --output outSecrets and managed identity
Passwords and signing keys should not be committed to repositories. Key Vault and managed identity patterns reduce dependence on long-lived credentials embedded in application configuration.
Observability is an architectural capability
logger.LogWarning(
"Payment failed for OrderId {OrderId}. ProviderCode {ProviderCode}",
orderId,
providerCode);Useful telemetry includes request latency, dependency duration, database time, payment error rate, cache hit ratio, queue backlog, CPU, memory and business-level success measures.
Five quality dimensions
Microsoft's Azure Well-Architected Framework evaluates workload design through reliability, security, cost optimisation, operational excellence and performance efficiency. These pillars are useful because cloud architecture is never only a scaling exercise.
Business value and practical considerations
Why we use it
- Strong .NET ecosystem
- Managed data services
- Integrated monitoring
- Identity and secret tooling
- Mature CI/CD options
Considerations
- Cost governance
- Service sprawl
- Database design
- Release safety
- Application-level security
References
Primary documentation used for terminology and current platform guidance: