Skip to content

Transform Platforms

Transform is the deeper modernization path. Applications are re-architected for the cloud. Databases move to fully managed PaaS services. The result is a modern, elastic, DevOps-ready platform that can evolve as fast as the business needs it to. In the underlying Horizons model, this path maps to Horizon 2.

What Changes

On-Premises / StabilizeTransform TargetBenefit
.NET Framework on IIS/VMs.NET (Core) on Azure Container AppsElastic scale, portable, CI/CD-ready
SQL Server / SQL MIAzure SQL DatabaseServerless scale, built-in intelligence
Manual deploymentGitHub Actions / Azure DevOps pipelinesAutomated, repeatable, auditable
Monolithic architectureContainer-based servicesIndependent scaling and deployment

The Architecture

%%{init: {'theme':'neutral'}}%%
graph TB
  classDef azure  fill:#0078d4,stroke:#005a9e,color:#fff
  classDef db     fill:#038387,stroke:#025356,color:#fff
  classDef devops fill:#107c10,stroke:#0a5e0a,color:#fff
  classDef ops    fill:#deecf9,stroke:#0078d4,color:#003459
  subgraph aca["Container Apps Environment"]
    CA(["Azure Container Apps<br/>.NET Core Services"]):::azure
  end
  subgraph data["Data & Secrets"]
    SQLDB[("Azure SQL Database<br/>Serverless")]:::db
    KV["Azure Key Vault"]:::ops
  end
  subgraph obs["Observability"]
    MON["Azure Monitor"]:::ops
    ACR["Container Registry"]:::ops
  end
  subgraph cicd["DevOps"]
    GH(["GitHub Actions<br/>CI/CD Pipeline"]):::devops
  end
  GH -->|"Push image"| ACR
  ACR -->|"Pull image"| CA
  CA -->|"Queries"| SQLDB
  CA -.->|"Secrets"| KV
  CA -.->|"Telemetry"| MON
  style aca  fill:#e6f3ff,stroke:#0078d4
  style data fill:#e6fafa,stroke:#038387
  style obs  fill:#f0f7ff,stroke:#0078d4
  style cicd fill:#f0f9f0,stroke:#107c10

The .NET Modernization Path

Moving from .NET Framework to modern .NET is the core application change in the Transform path. The approach depends on the application’s complexity:

  1. Upgrade in place — For well-structured applications, use the .NET Upgrade Assistant (or the newer GitHub Copilot modernization agent in Visual Studio) to migrate from .NET Framework to .NET 8+ (or the latest LTS release)
  2. Strangler fig pattern — For large monoliths, extract services incrementally while the legacy application continues to run
  3. Rewrite critical paths — For deeply coupled code, rewrite the highest-value components as modern services

The containerized application runs on Azure Container Apps — a serverless container platform that handles scaling, load balancing, and ingress without managing Kubernetes directly.

Why Azure SQL Database

Azure SQL Database is a different service from SQL Managed Instance. Where SQL MI maximizes compatibility with on-premises SQL Server, Azure SQL Database is designed for cloud-native workloads:

  • Serverless compute — Scales to zero during idle periods (General Purpose tier), scales up automatically under load
  • Built-in intelligence — Automatic tuning, threat detection, and performance recommendations
  • Elastic pools — Share resources across multiple databases for cost efficiency
  • Hyperscale tier — Scale to 128 TB with near-instant backups

Before and After

DimensionBefore (Stabilize or on-prem)After (Transform)
Application.NET Framework on IIS / VMs.NET 8+ on Azure Container Apps
DatabaseSQL Server or SQL MIAzure SQL Database (serverless)
DeploymentManual or scriptedCI/CD via GitHub Actions
ScalingVertical (resize VM)Horizontal autoscale, scale-to-zero
Cost modelFixed VM costsPay-per-use, serverless
AnalyticsLimited or batchReal-time via Fabric mirroring
Typical timeline3–6 months

What Comes Next

With a containerized application and Azure SQL Database, you are ready to add Fabric integration via Azure SQL DB mirroring for a fully unified, AI-ready data platform.

← Back to Stabilize + Fabric · Next: Transform + Fabric →