Existing platform
- Two AWS Lambda workloads for user and batch processing
- Amazon API Gateway as the public API layer
- Amazon RDS for PostgreSQL
- Existing consumers that could not be moved in a single cutover
Case study / Cloud migration
A business-critical serverless API was moved from AWS to Azure while preserving service continuity, tightening network boundaries and keeping the legacy endpoint available during migration.
Context
The existing service used AWS-managed serverless components. The target had to fit an Azure platform model with private ingress, private database connectivity, managed identities and enterprise security controls.
Constraints
The application code was only one part of the migration. The platform had to be deployable by CI/CD, reachable through the approved ingress path and isolated from unnecessary public access.
API Management operated internally behind Application Gateway WAF rather than as an unrestricted public endpoint.
PostgreSQL and supporting services used private connectivity, which changed how workloads and deployment tooling reached dependencies.
The interactive Function was packaged directly while the batch workload used a container image pulled from Azure Container Registry.
Build and deployment runners needed explicit network paths to private services instead of relying on public management endpoints.
The target endpoint had to pass security testing before it could be treated as production-ready.
The legacy endpoint remained available while consumers and pipelines moved to the Azure endpoint incrementally.
Approach
The migration sequence reduced the number of simultaneous changes and made failures easier to isolate.
Separate API behavior, batch processing, persistence and deployment requirements before designing the Azure equivalent.
Provision networking, internal APIM, WAF ingress, private PostgreSQL, identity and secret-management dependencies.
Use the appropriate Function deployment model for the interactive and batch execution paths.
Exercise health endpoints, application paths and security controls before directing production consumers to the new platform.
Bring the Azure endpoint live, retain the legacy endpoint temporarily and migrate deployment pipelines and consumers progressively.
Outcome
No synthetic performance or cost claims are used here. The outcome is described only in terms of delivered platform state and rollout capability.
The new API endpoint was made available on the target Azure platform and validated through production health paths.
The target architecture passed the required security validation before wider rollout.
Application workloads connected to Azure PostgreSQL through the intended private network design.
Interactive and batch workloads were deployed using packaging appropriate to each workload.
The previous endpoint remained available during transition rather than being removed at the moment the Azure endpoint went live.
Deployment workflows could be moved independently after the target runtime was proven operational.
Technology
The engagement required more than mapping AWS product names to Azure product names. Runtime packaging, identity, network reachability and deployment architecture all changed.
Describe the existing platform, target environment and the risk you need to control.