SlideShare a Scribd company logo
1 of 33
#azuresatpn
Azure Saturday 2019
Keep calm and "Lift&Shift" on
Azure
Lo Zen della migrazione su Azure di un data center on-premises
Daniele Scrivano
@Dan_Writer
#azuresatpn
La decisione: si va in cloud!!
Aaaaaaaaaaaaaaaaaa…….zure!! 😃
#azuresatpn
#azuresatpn
La consulenza
Il fai da te
#azuresatpn
Cinque step imprescindibili!!
ASSESSMENT MODEL DESIGN MIGRATE GOVERNANCE
#azuresatpn
Step 1 - Assessment
Raggruppare per
Isole Applicative i
server/macchine
virtuali
Verificare le
interdipendenze
Verificare il
consumo delle
risorse nel data
center
Verificare la
topologia di rete
#azuresatpn
STEP 1 – ASSESSMENT - OBIETTIVI
Dimensionamento servizi Requisiti di sicurezza
Requisiti di resilienza Consumi mensili
#azuresatpn
Assolve a due degli step del Lift&Shift: Analisi e migrazione (IaaS & PaaS)
Assessment virtual machine (Vmware e Hyper-v) e non solo
Sizing VM su Azure (maybe!)
Replica VM su Azure (ora agentless per Vmware)
Configurazione VM su Azure: Nome – Size – Network
Finalizzazione migrazione!!
Azure Migrate: Project
#azuresatpn
#azuresatpn
#azuresatpn
#azuresatpn
#azuresatpn
#azuresatpn
#azuresatpn
#azuresatpn
Agentless Azure Site Recovery
#azuresatpn
#azuresatpn
Step 2 -Scelta modalità servizi Cloud
IaaS, PaaS o SaaS?
RETIRE REPLACE RETAIN, WRAP,
AND EXPAND
REHOST REENVISION
Le 5 R del cambiamento
#azuresatpn
Step 2 – IaaS, PaaS o SaaS – Esempi
IaaS PaaS SaaSTipoApplicazioni
Legacy
Database
CloudReady
Modernize
#azuresatpn
Scegliere la modalità di erogazione in cloud: All-in-one subscription o Multi-subscription?
• Pros
• Contro
Scegliere tipo di connessione verso l’on-premises: VPN, ExpressRoute
Scegliere design di rete: All-in-one vNET o Hub-Spoke topology?
• Pros
• Contro
Inserimento o meno di NVA in Azure
Step 3 – Design
La rete in cloud non è come la rete on-premises: inutile tentare di copiarla fedelmente,
bisogna giungere a dei compromessi!!
#azuresatpn
Step 3 – Design - Subscription
Single
subscription
Production-and-
non-production
pattern
Workload
separation
pattern
Application
category pattern
Functional
pattern
Business unit
pattern
Geographyc
pattern
#azuresatpn
Step 3 – Design - Subscription
#azuresatpn
Step 3 – Design – Hub&Spoke
#azuresatpn
Step 3 – Design – Componenti
Basic
subnet
vnic
UDR
Service Endpoint
Balance
LB
Frontdoor
Traffice Manager
AGW
Connection
VNG
PIP
ExpressRoute
Storage
Storage Account
Azure Backup
Azure Netapp
Monitoring
Monitor
MonitorLogAnalytics
NPM
Activity Log
Automation
NVA
Security
Azure Firewall KeyVaultNSG+ASG Security Center SentinelDDOS Protection
vNet
#azuresatpn
Punti fondamentali design
SICUREZZA SLA (ALTA
DISPONIBILITÀ,
RESILIENZA)
DISASTER RECOVERY CONSUME
#azuresatpn
Step 4 – Migrazione - Pilot
ENVIRONMENT
DEV/TEST
EASY APPLICATION TEST
#azuresatpn
Step 4 – Migrazione - Full
PIANIFICAZIONE TEST LAB FULL DESIGN FULL MIGRATION
CYCLE
HYBRID
NETWORK
#azuresatpn
Step 5 – Governance
Ottimizzazione
consumi
Raccomandation
and compliance
Trasformazione
PaaS
Disaster
Recovery
#azuresatpn
Step 5 – Governance – Tools
Azure Monitor Azure Security
Center
Azure Advisor Azure Cost and
Management Billing
#azuresatpn
https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/
#azuresatpn
Link utili
• https://cafbaseline.com/
• http://aka.ms/fusionnavigator
• https://docs.microsoft.com/en-us/azure/architecture/patterns/
#azuresatpn
Enjoy and jump to cloud!
#azuresatpn
Azure Saturday 2019
GRAZIE!!
Q&A Time
Daniele Scrivano
daniele.scrivano@hotmail.it
@Dan_Writer

More Related Content

What's hot

Monitoring Applications in AKS
Monitoring Applications in AKSMonitoring Applications in AKS
Monitoring Applications in AKSGiuliano Latini
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...DotNetCampus
 
UI Composition - Prism
UI Composition - PrismUI Composition - Prism
UI Composition - PrismDotNetMarche
 
Async: scalabilità e responsiveness senza pari! @ CDays
Async: scalabilità e responsiveness senza pari! @ CDaysAsync: scalabilità e responsiveness senza pari! @ CDays
Async: scalabilità e responsiveness senza pari! @ CDaysMatteo Baglini
 
Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneGiuliano Latini
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-maxDotNetCampus
 
Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneGiuliano Latini
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campusDotNetCampus
 
Mob01 mobile services e webapi
Mob01   mobile services e webapiMob01   mobile services e webapi
Mob01 mobile services e webapiDotNetCampus
 
ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%DomusDotNet
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal WebtrendsStefano Iaboni
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automationAntonio Liccardi
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiAndrea Dottor
 
APPSTUDIO: DA ZERO ALLO STORE IN 50 MINUTI!
APPSTUDIO: DA ZERO ALLO STORE IN 50 MINUTI!APPSTUDIO: DA ZERO ALLO STORE IN 50 MINUTI!
APPSTUDIO: DA ZERO ALLO STORE IN 50 MINUTI!DotNetCampus
 
Azure Application Insights
Azure Application InsightsAzure Application Insights
Azure Application InsightsKlab
 
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...Andrea Balducci
 

What's hot (20)

Monitoring Applications in AKS
Monitoring Applications in AKSMonitoring Applications in AKS
Monitoring Applications in AKS
 
Akka.net & Actor Model
Akka.net & Actor ModelAkka.net & Actor Model
Akka.net & Actor Model
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
 
UI Composition - Prism
UI Composition - PrismUI Composition - Prism
UI Composition - Prism
 
Async: scalabilità e responsiveness senza pari! @ CDays
Async: scalabilità e responsiveness senza pari! @ CDaysAsync: scalabilità e responsiveness senza pari! @ CDays
Async: scalabilità e responsiveness senza pari! @ CDays
 
Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazione
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
 
Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazione
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campus
 
Mob01 mobile services e webapi
Mob01   mobile services e webapiMob01   mobile services e webapi
Mob01 mobile services e webapi
 
Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
 
ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%ASP.NET MVC: sfruttare la piattaforma al 100%
ASP.NET MVC: sfruttare la piattaforma al 100%
 
Microsoft Fast - Overview
Microsoft Fast - OverviewMicrosoft Fast - Overview
Microsoft Fast - Overview
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal Webtrends
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automation
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivati
 
APPSTUDIO: DA ZERO ALLO STORE IN 50 MINUTI!
APPSTUDIO: DA ZERO ALLO STORE IN 50 MINUTI!APPSTUDIO: DA ZERO ALLO STORE IN 50 MINUTI!
APPSTUDIO: DA ZERO ALLO STORE IN 50 MINUTI!
 
Azure Application Insights
Azure Application InsightsAzure Application Insights
Azure Application Insights
 
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
 

Similar to Azure Saturday 2019 - Keep Calm and "Lift&Shift" on Azure

Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloudRiccardo Zamana
 
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning ServiceDigital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning ServiceMarco Zamana
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...Marco Parenzan
 
Predictive Maintenance per le aziende del nord-est con Azure e IoT
Predictive Maintenance per le aziende del nord-est con Azure e IoTPredictive Maintenance per le aziende del nord-est con Azure e IoT
Predictive Maintenance per le aziende del nord-est con Azure e IoTMarco Parenzan
 
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...Amazon Web Services
 
Be02 portare la nostra applicazione su azure
Be02   portare la nostra applicazione su azureBe02   portare la nostra applicazione su azure
Be02 portare la nostra applicazione su azureDotNetCampus
 
Microsoft Azure - Passaggio al Cloud
Microsoft Azure - Passaggio al CloudMicrosoft Azure - Passaggio al Cloud
Microsoft Azure - Passaggio al CloudRoberto Stefanetti
 
[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source controlAlessandro Alpi
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSsparkfabrik
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralMarco Parenzan
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralMarco Parenzan
 
Team Netuse & IBM - Il Cloud Native rende agile il tuo business.
Team Netuse & IBM -  Il Cloud Native rende agile il tuo business.Team Netuse & IBM -  Il Cloud Native rende agile il tuo business.
Team Netuse & IBM - Il Cloud Native rende agile il tuo business.Team Netuse srl
 
01 azure well architected framework
01 azure well architected framework01 azure well architected framework
01 azure well architected frameworkRauno De Pasquale
 
Smau padova 2013 stefano dindo
Smau padova 2013 stefano dindoSmau padova 2013 stefano dindo
Smau padova 2013 stefano dindoSMAU
 
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...Jürgen Ambrosi
 
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source controlAlessandro Alpi
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 

Similar to Azure Saturday 2019 - Keep Calm and "Lift&Shift" on Azure (20)

Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning ServiceDigital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
 
Predictive Maintenance per le aziende del nord-est con Azure e IoT
Predictive Maintenance per le aziende del nord-est con Azure e IoTPredictive Maintenance per le aziende del nord-est con Azure e IoT
Predictive Maintenance per le aziende del nord-est con Azure e IoT
 
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...
 
Be02 portare la nostra applicazione su azure
Be02   portare la nostra applicazione su azureBe02   portare la nostra applicazione su azure
Be02 portare la nostra applicazione su azure
 
Microsoft Azure - Passaggio al Cloud
Microsoft Azure - Passaggio al CloudMicrosoft Azure - Passaggio al Cloud
Microsoft Azure - Passaggio al Cloud
 
[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWS
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT Central
 
Team Netuse & IBM - Il Cloud Native rende agile il tuo business.
Team Netuse & IBM -  Il Cloud Native rende agile il tuo business.Team Netuse & IBM -  Il Cloud Native rende agile il tuo business.
Team Netuse & IBM - Il Cloud Native rende agile il tuo business.
 
01 azure well architected framework
01 azure well architected framework01 azure well architected framework
01 azure well architected framework
 
Smau padova 2013 stefano dindo
Smau padova 2013 stefano dindoSmau padova 2013 stefano dindo
Smau padova 2013 stefano dindo
 
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
 
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppo
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 

Azure Saturday 2019 - Keep Calm and "Lift&Shift" on Azure

Editor's Notes

  1. • Retire Of course, if a legacy application is providing little value compared to its costs, the enterprise should consider it a candidate for retirement. When few people are using an application relative to its cost impact, the enterprise needs to run a cost–benefit analysis to determine if it is worth the expense. Additionally, some functionality provided by legacy systems can be rolled into a consolidated modern application running in the cloud, allowing some applications to be retired while others are replaced and modernized. • Replace Often, a legacy application is providing some value, but an off-the-shelf replacement with a lower total cost of ownership (TCO) is available. Many legacy applications were originally built because there was no alternative at that time. A modern, readily available application that is better suited to running in the cloud—most cost-effectively of all, a SaaS application—might now exist that you can use to replace the older one. Also, when a legacy application is replaced with a more comprehensive modern solution, there might be a chance to consolidate functionality from several older applications, thereby replacing multiple applications with a single system. Retain, wrap, and expand If a legacy application is providing good value and not incurring a high TCO, the best approach might be to retain it but put a modern “wrapper” around it in order to gain additional value and benefits. Examples of the “retain and wrap” approach include the following: • Using API management tools, such as Microsoft Azure API Management, add an API so that authorized external applications can exercise the functionality of the application. • Extend a legacy application with third-party tools; for example, by using a C# wrapper around older applications, or by making their data available through Extract, Transform, and Load (ETL) or other approaches, connect them to other software components, such as analytics applications, machine learning, or mobile access. • Rehost If a legacy application is providing good value but is expensive to run, it might be a candidate for rehosting. Rehosting involves keeping the same basic functionality, but moving it to the cloud where it is easier to manage and less expensive to run. This is also called “lift and shift.” In a rehosting situation, the legacy application might currently be located either on a local virtual machine (VM) or on local hardware. Some VMs might be eligible to move with a simple migration. Those on local hardware might be able to be converted with a physical-to-virtual migration and then hosting the VM in the cloud. Some VMs, especially older ones, might not relocate easily to the cloud without some significant work. In those cases, you might want to consider reenvisioning and building the application in the cloud. • Reenvision If a legacy application is providing good value but cannot be easily moved, the best solution might be to reenvision it and build it again in the cloud. Reenvisioning is a process of rebuilding the application in the cloud using modern technology, a new architecture, and best practices; it normally also involves adding more business value to core functionality, such as improving market differentiation. Reenvisioning an application might require rewriting the main logic using a modern development language and tools and making it service-oriented. Reenvisioning an application can be facilitated by starting with VMs in the cloud which can be instantiated in a matter of minutes.
  2. • Retire Of course, if a legacy application is providing little value compared to its costs, the enterprise should consider it a candidate for retirement. When few people are using an application relative to its cost impact, the enterprise needs to run a cost–benefit analysis to determine if it is worth the expense. Additionally, some functionality provided by legacy systems can be rolled into a consolidated modern application running in the cloud, allowing some applications to be retired while others are replaced and modernized. • Replace Often, a legacy application is providing some value, but an off-the-shelf replacement with a lower total cost of ownership (TCO) is available. Many legacy applications were originally built because there was no alternative at that time. A modern, readily available application that is better suited to running in the cloud—most cost-effectively of all, a SaaS application—might now exist that you can use to replace the older one. Also, when a legacy application is replaced with a more comprehensive modern solution, there might be a chance to consolidate functionality from several older applications, thereby replacing multiple applications with a single system. Retain, wrap, and expand If a legacy application is providing good value and not incurring a high TCO, the best approach might be to retain it but put a modern “wrapper” around it in order to gain additional value and benefits. Examples of the “retain and wrap” approach include the following: • Using API management tools, such as Microsoft Azure API Management, add an API so that authorized external applications can exercise the functionality of the application. • Extend a legacy application with third-party tools; for example, by using a C# wrapper around older applications, or by making their data available through Extract, Transform, and Load (ETL) or other approaches, connect them to other software components, such as analytics applications, machine learning, or mobile access. • Rehost If a legacy application is providing good value but is expensive to run, it might be a candidate for rehosting. Rehosting involves keeping the same basic functionality, but moving it to the cloud where it is easier to manage and less expensive to run. This is also called “lift and shift.” In a rehosting situation, the legacy application might currently be located either on a local virtual machine (VM) or on local hardware. Some VMs might be eligible to move with a simple migration. Those on local hardware might be able to be converted with a physical-to-virtual migration and then hosting the VM in the cloud. Some VMs, especially older ones, might not relocate easily to the cloud without some significant work. In those cases, you might want to consider reenvisioning and building the application in the cloud. • Reenvision If a legacy application is providing good value but cannot be easily moved, the best solution might be to reenvision it and build it again in the cloud. Reenvisioning is a process of rebuilding the application in the cloud using modern technology, a new architecture, and best practices; it normally also involves adding more business value to core functionality, such as improving market differentiation. Reenvisioning an application might require rewriting the main logic using a modern development language and tools and making it service-oriented. Reenvisioning an application can be facilitated by starting with VMs in the cloud which can be instantiated in a matter of minutes.