Understanding the Flowchart
We start by determining whether you are migrating an existing application or building a new one. For the purpose of this discussion, assume you are migrating an existing application.Step 1: Migration Type
The first decision focuses on whether you want to perform a lift-and-shift migration. A lift-and-shift migration moves your on-premises application to the cloud with minimal changes. The next consideration is whether your application can be containerized.-
If the application can be containerized:
- Without the need for orchestration:
Choose Container Instances when you are managing a single container. - With the need for orchestration:
Opt for Azure Kubernetes Service (AKS) to efficiently manage containers at scale.
- Without the need for orchestration:
-
If the application cannot be containerized:
You have two primary options:- Virtual Machines: Select this option if you require granular control over the operating system and dependencies.
- App Service: Choose this managed service if you prefer not to manage the underlying infrastructure.
Step 2: Cloud-Optimized Migration
For organizations looking to optimize their application for the cloud—by leveraging Azure’s Platform as a Service (PaaS) offerings—the decision process involves additional key questions:-
Is your workload High Performance Compute (HPC) oriented?
- For tasks such as video rendering, select Azure Batch.
-
Does your application use a microservices architecture?
- If not:
Host the workload on Azure App Service. - If yes:
Determine whether your architecture is event-driven:- Event-driven architecture:
You have two choices—Azure Functions or Logic Apps. Each has its specific use cases, which we will explore in upcoming chapters. - Not event-driven:
Reassess containerization:- If container orchestration is required:
Use Azure Kubernetes Service (AKS). - Otherwise:
Opt for Container Instances.
- If container orchestration is required:
- Event-driven architecture:
- If not:
The flowchart below is designed to visually represent these decision points, simplifying the process of choosing the right compute solution based on application needs.

Next Steps
In the upcoming sections, we will dive deeper into designing solutions tailored to the compute service you choose. For example:- App Service: We will discuss best practices and design considerations to ensure optimal performance and scalability.
- Kubernetes: Detailed guidelines will be provided on designing and managing Azure Kubernetes Service (AKS).