Migrating to Azure
Migrating to Azure can take different paths depending on whether you’re moving to Virtual Machines (VMs), App Service, or Azure Functions. Here’s a detailed comparison to help you understand the differences and choose the best option for your workload.
1. Migration to Azure Virtual Machines (VMs)
Best for:
- Legacy applications requiring full control over the OS, middleware, or hardware dependencies.
- Applications that can’t easily be modified to fit modern cloud paradigms.
- Workloads requiring custom configurations or specific software.
Key Characteristics:
- Lift-and-Shift Approach: Minimal application changes required.
- Full control over OS, middleware, and runtime.
- Offers similar functionality to on-premises servers.
- Supports Windows, Linux, and other OS configurations.
Challenges:
- Management overhead: Patching, scaling, backups, and OS updates are your responsibility.
- Higher cost compared to PaaS (e.g., App Service) due to running full VMs.
Tools for Migration:
- Azure Migrate: Assesses workloads and provides VM migration paths.
- Disk2VHD: Converts on-premises workloads into VM images.
- Azure Site Recovery: Provides seamless VM replication and failover.
2. Migration to Azure App Service
Best for:
- Web applications (e.g., ASP.NET, Java, Node.js, PHP) and APIs that align with a PaaS model.
- Modernizing apps to reduce infrastructure management.
Key Characteristics:
- Focuses on modern applications with less control over the OS.
- Requires adjustments for compatibility with App Service runtime environments.
- Managed service with automatic scaling, updates, and patching.
- Offers deployment slots for A/B testing and staging environments.
Challenges:
- Code and Configuration Updates: May require changes in deployment scripts, configurations, or libraries to meet App Service requirements.
- Dependencies: Applications using local file storage or specific OS features need refactoring.
Tools for Migration:
- Azure App Service Migration Assistant:
- Assesses compatibility for web apps.
- Automates migration for supported frameworks like .NET and PHP.
- Azure DevOps: Automates deployment pipelines post-migration.
3. Migration to Azure Functions
Best for:
- Event-driven, stateless applications or microservices.
- Lightweight applications like scheduled jobs, APIs, or real-time data processing.
- Use cases where scaling and cost efficiency are paramount.
Key Characteristics:
- Focuses on serverless computing with pay-per-use pricing.
- Requires code refactoring to adopt a Function-as-a-Service (FaaS) model.
- Highly scalable for handling sporadic or unpredictable workloads.
- Integrates seamlessly with Azure services (e.g., Storage, Service Bus, Event Grid).
Challenges:
- Stateless Architecture: Functions must be designed to store state externally (e.g., Azure Blob Storage or Cosmos DB).
- Cold Start Delays: Functions might experience latency when starting after being idle.
- Timeout Limits: Functions have maximum execution time, requiring rearchitecting for long-running processes.
Tools for Migration:
- Azure Functions Tools: Converts REST APIs or services into function-based workflows.
- Azure Durable Functions: Adds stateful workflow capabilities for long-running tasks.
When to Choose Each Option
- VMs:
- Legacy apps or workloads that are difficult to refactor.
- Applications needing specific OS-level access.
- Databases or other custom environments.
- App Service:
- Modern web apps or APIs that fit into a PaaS paradigm.
- Reduce management overhead while retaining application control.
- When ease of scaling and staging environments is important.
- Functions:
- Event-driven workloads (e.g., triggers from file uploads or HTTP requests).
- Applications requiring minimal operational overhead and cost-efficiency.
- Building microservices or workflows in serverless architecture.
Azure Trusted Advisor Score
An Azure Trusted Advisor analyzes your configurations and usage telemetry and offers personalized, actionable recommendations to help you optimize your Azure resources for reliability, security, operational excellence, performance, and cost.
Optimize your deployments with personalized recommendations, an Advisor provides relevant best practices to help you improve reliability, security, and performance, achieve operational excellence, and reduce costs. Configure Advisor to target specific subscriptions and resource groups, to focus on critical optimizations.
You can Access an automated Advisor through the Azure portal, the Azure Command Line Interface (CLI), or the Advisor API. Or configure alerts to notify you automatically about new recommendations.
Understand how well your Azure workloads are following best practices, assess how much you stand to gain by remediating issues, and prioritize the most impactful recommendations you can take to optimize your deployments with the new Azure Advisor Score. Advisor Score enables you to get the most out of your Azure investment using a centralized dashboard to monitor, work on, and track your progress toward optimizing the cost, security, reliability, operational excellence, and performance of your Azure resources.
How is an Advisor score calculated?
Advisor displays your category scores and your overall Advisor score as percentages. A score of 100% in any category means all your resources, assessed by Advisor, follow the best practices that Advisor recommends. On the other end of the spectrum, a score of 0% means that none of your resources, assessed by Advisor, follows Advisor recommendations.
Each of the five categories has a highest potential score of 100. Your overall Advisor score is calculated as a sum of each applicable category score, divided by the sum of the highest potential score from all applicable categories. For most subscriptions, that means Advisor adds up the score from each category and divides by 500. But each category score is calculated only if you use resources that are assessed by Advisor.
Advisor score calculation example
- Single subscription score: This example is the simple mean of all Advisor category scores for your subscription. If the Advisor category scores are – Cost = 73, Reliability = 85, Operational excellence = 77, and Performance = 100, the Advisor score would be (73 + 85 + 77 + 100)/(4×100) = 0.84% or 84%.
- Multiple subscriptions score: When multiple subscriptions are selected, the overall Advisor scores generated are weighted aggregate category scores. Here, each Advisor category score is aggregated based on resources consumed by subscriptions. After Advisor has the weighted aggregated category scores, Advisor does a simple mean calculation to give you an overall score for subscriptions.
Scoring methodology
The calculation of the Advisor score can be summarized in four steps:
- Advisor calculates the retail cost of impacted resources. These resources are the ones in your subscriptions that have at least one recommendation in Advisor.
- Advisor calculates the retail cost of assessed resources. These resources are the ones monitored by Advisor, whether they have any recommendations or not.
- For each recommendation type, Advisor calculates the healthy resource ratio. This ratio is the retail cost of impacted resources divided by the retail cost of assessed resources.
- Advisor applies three additional weights to the healthy resource ratio in each category:
- Recommendations with greater impact are weighted heavier than recommendations with lower impact.
- Resources with long-standing recommendations will count more against your score.
- Resources that you postpone or dismiss in Advisor are removed from your score calculation entirely.
Advisor applies this model at an Advisor category level to give an Advisor score for each category. Security uses a secure score model. A simple average produces the final Advisor score.