David Watson
Cloud Solution Architect
App Service • Functions • Container Platforms
Challenges | |||
| Patching, Management, Deployment | Management (Container & Pod) | Limitations of Execution environment | Cold start, long running process |
What you get | |||
| Curated VM Hosting | Curated Orchestration | Curated Execution Environment | Scale to ‘zero’ |
Technology Decisions | |||
| IT / Infra focused Value Prop | Dev / App Admin focused Value Prop | ||
|
⬅ More Control of execution environment
Less Control of execution environment ➡
|
|||
|
⬅ Less Agile development & deployment
More Agile development & deployment ➡
|
|||
Source: Microsoft Learn — App Service networking features
| Tier | Use Case | Scale Out | Key Features |
|---|---|---|---|
| Free / Shared | Dev / test | — | Shared infrastructure, no SLA |
| Basic | Low-traffic apps | Up to 3 | Dedicated VMs, custom domains |
| Standard | Production | Up to 10 | Autoscale, slots, VNet, backups |
| Premium v3 | High-performance | Up to 30 | Faster CPUs, more memory, zone redundancy |
| Isolated v2 | Compliance / isolation | Up to 100 | Private ASE, single-tenant, network isolation |
Serverless compute — event-driven code at scale
Azure Functions features input and output bindings which provide a means of pulling data or pushing data to other services.
These bindings work for both Microsoft and third-party services without the need to hard-coding integrations.
| Plan | Scale | Pricing | Best For |
|---|---|---|---|
| Consumption | Auto (0 → 200) | Pay per execution | Sporadic / bursty workloads |
| Flex Consumption | Auto (0 → 1000) | Pay per execution | High-scale serverless, VNet |
| Premium (EP) | Event-driven (1 → 100) | Pre-warmed instances | No cold start, VNet, longer runs |
| Dedicated (ASP) | Manual / autoscale | App Service Plan | Existing ASP, predictable load |
| Container Apps | Event-driven (0 → 300) | Per usage | Containerized functions, microservices |
ACI • Azure Container Apps • AKS • AKS Automatic
Source: Microsoft Learn — AKS cluster architecture
| Capability | AKS Standard | AKS Automatic |
|---|---|---|
| Node pool management | Manual configuration | Auto-provisioned |
| Cluster upgrades | Manual or scheduled | Fully automated |
| Security defaults | Configurable | Preconfigured best practices |
| Monitoring | Opt-in setup | Built-in by default |
| Kubernetes API access | Full | Full |
| Feature | ACI | Container Apps | AKS |
|---|---|---|---|
| Scale to zero | ✓ | ✓ | With KEDA add-on |
| Orchestration | None | Managed (K8s) | Full Kubernetes |
| Service discovery | — | Built-in | CoreDNS |
| Ops complexity | Minimal | Low | High |
| K8s expertise needed | No | No | Yes |
| Service | Model | Scale | Best For |
|---|---|---|---|
| App Service | PaaS | Manual / Auto | Web apps & APIs |
| Functions | Serverless | Event-driven | Event processing, automation |
| ACI | Container | On-demand | Simple tasks, batch |
| Container Apps | Serverless container | Event-driven (0→N) | Microservices |
| AKS | Managed K8s | Cluster autoscaler | Complex orchestration |
Centralized secrets, keys, and certificate management
| Feature | Standard | Premium |
|---|---|---|
| Software-protected keys | ✓ | ✓ |
| HSM-protected keys | — | ✓ |
| Secrets & certificates | ✓ | ✓ |
| Managed HSM | — | Separate service |
| FIPS 140-2 Level | Level 1 | Level 2 (HSM) |
Azure SQL • Azure Cosmos DB
| Feature | SQL Database | Managed Instance | SQL on VMs |
|---|---|---|---|
| Management | Fully managed | Fully managed | Self-managed |
| SQL Server compat. | ~95% | ~99% | 100% |
| VNet native | Private endpoint | ✓ (injected) | ✓ |
| Cross-DB queries | Elastic query | ✓ | ✓ |
| Best for | New apps | Migrations | Full control |
| Tier | Use Case | Storage | SLA |
|---|---|---|---|
| General Purpose | Most workloads | Up to 16 TB | 99.99% |
| Business Critical | Low-latency, HA | Up to 16 TB | 99.995% |
| Hyperscale | Large / elastic scale | Up to 100 TB | 99.995% |
Globally distributed, multi-model database service
Strong → Bounded Staleness → Session → Consistent Prefix → Eventual
| Level | Guarantee | Latency | Use Case |
|---|---|---|---|
| Strong | Linearizable | Higher | Financial transactions |
| Bounded Staleness | Max lag (K, T) | Medium | Leaderboards, dashboards |
| Session | Read your writes | Low | User profiles, carts (default) |
| Consistent Prefix | No out-of-order | Low | Social updates, feeds |
| Eventual | Eventually converge | Lowest | Hit counters, telemetry |
| Mode | Scaling | Pricing | Best For |
|---|---|---|---|
| Provisioned | Manual or autoscale | Per RU/s provisioned | Predictable workloads |
| Autoscale | Auto (10% → 100% of max) | Per RU/s consumed | Variable but bounded load |
| Serverless | On-demand (0 → 5000 RU/s) | Per RU consumed | Dev/test, light workloads |
When to use which database service
| Dimension | Azure SQL | Cosmos DB |
|---|---|---|
| Data model | Relational (tables) | Document / Multi-model |
| Schema | Fixed, enforced | Flexible, schema-optional |
| Transactions | Cross-table ACID | Single-partition ACID |
| Global writes | Single primary | Multi-region writes |
| Latency (p99) | ~5-10ms | <10ms read, <15ms write |
Create & configure App Services, Container Apps, Key Vault & CosmosDB
Thank you!