Skip to content

Commit 3d3f8cd

Browse files
authored
Merge pull request #7953 from ovh/feat-iaas-migration
Feat(iaas): new guide about IAAS migration
2 parents c382e7b + 683290c commit 3d3f8cd

File tree

12 files changed

+379
-0
lines changed

12 files changed

+379
-0
lines changed

pages/index-translations.de.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ public-cloud-cross-functional: Public Cloud - Allgemeine Informationen
179179
public-cloud-cross-functional-getting-started: Erste Schritte
180180
public-cloud-cross-functional-general-information: Allgemeine Informationen
181181
public-cloud-cross-functional-project-management: Public Cloud Projektverwaltung
182+
public-cloud-cross-functional-migration: Migration
182183
public-cloud-cross-functional-tutorials: Tutorials
183184
public-cloud-cross-functional-services-management: Verwaltung von Dienstleistungen
184185
public-cloud-cross-functional-horizon: Verwaltung über Horizon

pages/index-translations.es.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ public-cloud-cross-functional: Public Cloud - Información General
179179
public-cloud-cross-functional-getting-started: Primeros pasos
180180
public-cloud-cross-functional-general-information: Información General
181181
public-cloud-cross-functional-project-management: Gestión de proyectos Public Cloud
182+
public-cloud-cross-functional-migration: Migración
182183
public-cloud-cross-functional-tutorials: Tutoriales
183184
public-cloud-cross-functional-services-management: Gestión de servicios
184185
public-cloud-cross-functional-horizon: Gestión desde Horizon

pages/index-translations.fq.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ public-cloud-cross-functional: Public Cloud - Informations générales
179179
public-cloud-cross-functional-getting-started: Premiers pas
180180
public-cloud-cross-functional-general-information: Informations générales
181181
public-cloud-cross-functional-project-management: Gestion des projets Public Cloud
182+
public-cloud-cross-functional-migration: Migration
182183
public-cloud-cross-functional-tutorials: Tutoriels
183184
public-cloud-cross-functional-services-management: Gestion des services
184185
public-cloud-cross-functional-horizon: Gestion via Horizon

pages/index-translations.fr.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ public-cloud-cross-functional: Public Cloud - Informations générales
180180
public-cloud-cross-functional-getting-started: Premiers pas
181181
public-cloud-cross-functional-general-information: Informations générales
182182
public-cloud-cross-functional-project-management: Gestion des projets Public Cloud
183+
public-cloud-cross-functional-migration: Migration
183184
public-cloud-cross-functional-tutorials: Tutoriels
184185
public-cloud-cross-functional-services-management: Gestion des services
185186
public-cloud-cross-functional-horizon: Gestion via Horizon

pages/index-translations.it.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ public-cloud-cross-functional: Public Cloud - Informazioni generali
179179
public-cloud-cross-functional-getting-started: Per iniziare
180180
public-cloud-cross-functional-general-information: Informazioni generali
181181
public-cloud-cross-functional-project-management: Gestione dei progetti Public Cloud
182+
public-cloud-cross-functional-migration: Migrazione
182183
public-cloud-cross-functional-tutorials: Tutorials
183184
public-cloud-cross-functional-services-management: Gestione dei servizi
184185
public-cloud-cross-functional-horizon: Gestione via Horizon

pages/index-translations.pl.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ public-cloud-cross-functional: Public Cloud - Informacje ogólne
179179
public-cloud-cross-functional-getting-started: Pierwsze kroki
180180
public-cloud-cross-functional-general-information: Informacje ogólne
181181
public-cloud-cross-functional-project-management: Zarządzanie projektami Public Cloud
182+
public-cloud-cross-functional-migration: Migracja
182183
public-cloud-cross-functional-tutorials: Tutorials
183184
public-cloud-cross-functional-services-management: Zarządzanie usługami
184185
public-cloud-cross-functional-horizon: Zarządzanie w interfejsie Horizon

pages/index-translations.pt.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ public-cloud-cross-functional: Public Cloud - Informações gerais
179179
public-cloud-cross-functional-getting-started: Introdução
180180
public-cloud-cross-functional-general-information: Informações gerais
181181
public-cloud-cross-functional-project-management: Gestão de projectos Public Cloud
182+
public-cloud-cross-functional-migration: Migração
182183
public-cloud-cross-functional-tutorials: Tutoriais
183184
public-cloud-cross-functional-services-management: Gestão de serviços
184185
public-cloud-cross-functional-horizon: Gestão a partir do Horizon

pages/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,6 +597,8 @@
597597
+ [Delegating projects](public_cloud/public_cloud_cross_functional/delegate_projects)
598598
+ [Information regarding Public Cloud billing options](public_cloud/public_cloud_cross_functional/analyze_billing)
599599
+ [Healthcare (HDS) compliance activation](public_cloud/public_cloud_cross_functional/activate-hds-certification)
600+
+ [Migration](public-cloud-cross-functional-migration)
601+
+ [Public Cloud IaaS Migration - Steps and Best Practices](public_cloud/public_cloud_cross_functional/iaas-migration-steps)
600602
+ [Tutorials](public-cloud-cross-functional-tutorials)
601603
+ [How to use Terraform](public_cloud/public_cloud_cross_functional/how_to_use_terraform)
602604
+ [Services management](public-cloud-cross-functional-services-management)
Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
---
2+
title: "Public Cloud IaaS Migration - Steps and Best Practices"
3+
excerpt: "Learn how to migrate your infrastructure to OVHcloud Public Cloud using IaaS services, Terraform automation, and resilient network design."
4+
updated: 2025-06-16
5+
---
6+
7+
## Objective
8+
9+
This guide aims to educate and support customers in migrating their infrastructure to the OVHcloud Public Cloud using Infrastructure as a Service (IaaS).
10+
11+
It provides a step-by-step methodology for inventorying existing workloads, preparing a secure and scalable landing zone, and leveraging tools like Terraform/OpenTofu, Ansible, rclone, and rsync to automate deployment and data transfer.
12+
13+
The guide also outlines best practices for selecting compatible OVHcloud instance flavours, configuring networks, and ensuring service continuity during migration.
14+
15+
By following this guide, users can build a robust, cost-optimised, and cloud-native infrastructure aligned with OVHcloud’s IaaS ecosystem.
16+
17+
## Requirements
18+
19+
- Access to the [OVHcloud Control Panel](/links/manager).
20+
- [Setting OpenStack environment variables](/pages/public_cloud/public_cloud_cross_functional/loading_openstack_environment_variables).
21+
- Being familiar with [Terraform](/pages/public_cloud/public_cloud_cross_functional/how_to_use_terraform), if you intend using it.
22+
23+
## Instructions
24+
25+
Before going into detail on the major steps, the diagram below provides an overview of the main phases of a migration to OVHcloud Public Cloud.
26+
27+
![IAAS migration schema](images/schema_migration.png){.thumbnail}
28+
29+
### 1. Inventory your source VMs, storage and network configuration
30+
31+
Before starting your cloud migration, it’s crucial to create a detailed inventory of all your current resources:
32+
33+
- **Virtual Machines (VMs)**: List all your VMs, grouping those that belong to the same application (for example: a web server, an application server, and a database). This approach helps you migrate applications one at a time, minimizing service disruptions.
34+
- **Storage**: Identify your block storage volumes as well as your object storage buckets.
35+
- **Network resources**: Map out your entire network topology, including Layer 2 (L2) and Layer 3 (L3) network layouts, routers, load balancers, and firewalls.
36+
37+
Also, list your subnets and associated VLAN IDs. This information will be essential to correctly set up your target network within the OVHcloud Public Cloud environment.
38+
39+
> [!primary]
40+
>
41+
> With OVHcloud’s vRack feature, you can create over 4000 VLANs and keep your existing IP addressing plan. This greatly simplifies network migration and avoids potential conflicts or the need to renumber IPs.
42+
>
43+
44+
### 2. Check and prepare your Landing Zone
45+
46+
A Landing Zone is your foundational cloud environment where all your resources will run. Before migrating, it’s important to assess and configure this environment to ensure it meets best practices for scalability, security, and management.
47+
48+
This check involves reviewing key components such as:
49+
50+
- **Identity and Access Management (IAM)**: Ensure proper user roles and permissions are set up.
51+
- **Network architecture**: Verify your network segmentation, subnets, VPNs, and load balancers are configured correctly.
52+
- **Compliance and governance**: Confirm that policies are in place to meet your regulatory and organizational requirements.
53+
- **Resource organization**: Design a clear structure with multiple accounts or projects to separate workloads effectively.
54+
55+
Use the inventory data from your VMs, storage, networks and security devices to fine-tune your cloud zoning and segmentation. Fixing any issues at this stage results in a Landing Zone that is secure, compliant, easy to manage and cost-efficient.
56+
57+
Finally, integrate monitoring, logging and security tools right from the start to build agile and future-proof operations.
58+
59+
For more detailed guidance on building an OVHcloud Landing Zone, please refer to this link: (LINK-TO-LZ-ArchRef).
60+
61+
### 3. Adapt your Terraform/OpenTofu configuration
62+
63+
Although OVHcloud’s Public Cloud is based on OpenStack, it also offers proprietary services like Managed Kubernetes and Managed Databases. Because of this, you will need to use specific OpenTofu or Terraform providers tailored for OVHcloud’s infrastructure.
64+
65+
You can build your Terraform/OpenTofu stacks using providers for [OpenStack](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs){.external}, OVHcloud, or S3-compatible services, depending on the resources you want to manage.
66+
67+
You will find our guide "[Using Terraform with OVHcloud](/pages/manage_and_operate/terraform/terraform-at-ovhcloud)" some examples to help you get started with creating your Terraform/OpenTofu configurations for your landing zone and cloud infrastructure.
68+
69+
### 4. Configure cloud network architecture in your Terraform stacks
70+
71+
Once your Terraform/OpenTofu setup is ready, you should script the core network components needed for your cloud environment. This includes defining:
72+
73+
- Networks and subnets.
74+
- DHCP settings.
75+
- Routers.
76+
- Load balancers.
77+
78+
These components will connect and organize all your OVHcloud instances efficiently and securely. Proper network configuration is essential to ensure that your cloud resources communicate correctly and perform optimally.
79+
80+
### 5. Select corresponding OVHcloud instance flavours and services
81+
82+
Before deploying your workloads in the OVHcloud Public Cloud, you need to choose the instance types ("flavours") that best match your existing virtual machines (VMs). This ensures that your migrated applications will perform as expected.
83+
84+
To do this:
85+
86+
- Review your source VM configurations (CPU, RAM, storage, etc.).
87+
- Choose the corresponding OVHcloud Public Cloud instances that meet those requirements.
88+
- Select the availability type that suits your needs (1-AZ, 3-AZ, or Local Zone) depending on your desired level of resilience and latency
89+
90+
Once selected, note the technical identifiers of the instances (for example: b3-64, c3-128) so you can use them directly in your Terraform/OpenTofu configuration.
91+
92+
Don’t forget to do the same for:
93+
94+
- Gateways (for example: size M, L, XL).
95+
- Load balancers, based on expected traffic and redundancy requirements.
96+
97+
This step ensures consistency between your existing environment and your future OVHcloud infrastructure.
98+
99+
### 6. Choose and execute your VM migration strategy
100+
101+
#### 6a. Perform a Lift and Shift migration
102+
103+
The Lift and Shift method allows you to migrate your existing virtual machines (VMs) without making significant changes to their configuration or architecture. It’s a fast way to move workloads to the OVHcloud Public Cloud with minimal reengineering.
104+
105+
To begin, export your source VMs from your current infrastructure. OVHcloud supports several image formats, including: ami, ari, aki, vhd, vmdk, raw, qcow2, vhdx, vdi, iso, and ploop.
106+
107+
Once exported, you need to upload the VM image to your OVHcloud project. To do this, make sure you have a local Python environment ready and install the OpenStack CLI (to do this, follow this [installation guide](https://docs.openstack.org/newton/user-guide/common/cli-install-openstack-command-line-clients.html){.external}). You’ll also need your API credentials to authenticate.
108+
109+
After uploading the image, you can deploy a new instance from it using the OVHcloud Control Panel, OpenStack CLI, or via Terraform/OpenTofu. You’ll find step-by-step instructions on how to import a VM image in our guide "[Uploading your own image](/pages/public_cloud/compute/upload_own_image)".
110+
111+
You can then connect the instance to your defined private network, attach block storage, and configure any required load balancers.
112+
113+
If you’re migrating several VMs, consider automating the process using scripts or infrastructure-as-code tools. You can also contact our [Professional Services team](/links/professional-services) to get support or delegate the migration process entirely.
114+
115+
#### 6b. Perform a replatforming with clean deployments
116+
117+
The replatform method involves creating new virtual machines in your OVHcloud Public Cloud environment and reinstalling your applications from scratch. This is ideal if you want a cleaner setup, or to take advantage of modern automation and infrastructure tools.
118+
119+
You can provision new instances using your Terraform/OpenTofu stacks or directly through the OVHcloud Control Panel, selecting the appropriate regions, availability zones and instance flavours.
120+
121+
Once your infrastructure is deployed, two possibilities:
122+
123+
- Use Ansible playbooks to automatically install and configure your applications.
124+
- Set up your services manually on each instance.
125+
126+
Be sure to use the same applications versions as in your source environment to ensure compatibility with your existing data.
127+
128+
Once configuration is complete, migrate your data using tools like rsync, scp, or database utilities, and validate that everything is working as expected.
129+
130+
### 7. Migrate block storage using rsync (or a similar tool)
131+
132+
To move your block storage to OVHcloud, start by configuring your target storage volumes. You can do this either [manually on the instance](/pages/public_cloud/compute/create_and_configure_an_additional_disk_on_an_instance) or automatically using tools like Ansible.
133+
134+
Once your volumes are ready, use a tool such as [rsync](/pages/bare_metal_cloud/dedicated_servers/how-to-copy-data-from-one-dedicated-server-to-another-using-rsync) to copy data from your source infrastructure to the new OVHcloud environment. rsync ensures that files are transferred efficiently and can resume if interrupted.
135+
136+
This method allows you to migrate data progressively and validate it as you go.
137+
138+
If you need help setting up this process or automating it across multiple instances, you can contact the OVHcloud [Professional Services](/links/professional-services) team.
139+
140+
### 8. Migrate object storage using rclone (or a similar tool)
141+
142+
To transfer your object storage to OVHcloud, use a tool like rclone, which supports most S3-compatible services.
143+
144+
Start by ensuring you have the correct permissions to access both the source and destination buckets. Then:
145+
146+
- Install rclone on your local machine or a cloud instance.
147+
- Configure access credentials for both environments (source and OVHcloud).
148+
- Use rclone sync or rclone copy to migrate your data.
149+
150+
This method ensures reliable and resumable transfers for large datasets. Follow our guide [Object Storage - Use Object Storage with Rclone](/pages/storage_and_backup/object_storage/s3_rclone) for the necessary steps.
151+
152+
If your setup includes versioning, lifecycle rules, or other advanced features, or if you require automation, the OVHcloud [Professional Services](/links/professional-services) team can help you design a tailored migration process.
153+
154+
### 9. Re-link endpoints and validate applications
155+
156+
After migrating, update all your applications to use the new endpoints, including those for S3-compatible object storage.
157+
158+
Make sure every connection points to the correct OVHcloud resources.
159+
160+
Then, thoroughly test your entire workflow and run all integration tests to verify that your applications works correctly in the new environment.
161+
162+
### 10. Update DNS records
163+
164+
Once you have confirmed that your applications are running smoothly, update your DNS records to point to the IP address of your new OVHcloud load balancer.
165+
166+
After making the DNS change, rerun your tests to ensure all services are fully functional and accessible.
167+
168+
### 11. Decommission legacy infrastructure
169+
170+
After verifying that your new OVHcloud environment is fully operational, you can safely shut down and decommission your old infrastructure.
171+
172+
Ensure all data and services have been successfully migrated and backed up before powering off legacy systems.
173+
174+
### 12. Optimise with Savings Plans
175+
176+
To manage and reduce your cloud expenses, leverage FinOps best practices. OVHcloud offers various cost optimization solutions and [Savings Plans](/links/public-cloud/savings-plan) tailored to your usage patterns.
177+
178+
Explore our guide "[How do Savings Plans work?](/pages/public_cloud/public_cloud_cross_functional/savings_plans)" for detailed guidance on how to control and optimize your cloud spending effectively.
179+
180+
## Go Further
181+
182+
If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case.
183+
184+
Join our [community of users](/links/community) and visit our [Discord channel](https://discord.gg/ovhcloud).

0 commit comments

Comments
 (0)