Migrating to the cloud is rarely a single "lift and shift" moment — it is a sequence of small, reversible steps. This checklist walks Saudi businesses through a safe migration to Skyline Cloud, with particular attention to data residency and the compliance expectations that come with operating in the Kingdom. The same workflow applies whether you are moving a WordPress site, a business-email tenant, or a full application stack to a VPS.
1. Discovery: inventory what you actually run
You cannot migrate what you have not measured. Before touching anything, build a single inventory sheet.
- Domains and DNS records — list every A, AAAA, CNAME, MX, TXT (SPF/DKIM/DMARC), and SRV record.
- Workloads — sites, databases, mailboxes, cron jobs, background workers.
- Data volumes — note the size of each database and document store so you can size the target correctly.
- Dependencies — third-party APIs, payment gateways, and any hard-coded IP allowlists.
Pull DNS quickly from the command line:
dig alskyline.com ANY +noall +answer
dig MX alskyline.com +short
dig TXT alskyline.com +short
2. Data residency and compliance
For Saudi organisations, where the data lives is a first-class requirement, not an afterthought. Saudi Arabia's Personal Data Protection Law (PDPL), enforced by SDAIA, restricts the cross-border transfer of personal data, and the National Cybersecurity Authority (NCA) Essential Cybersecurity Controls expect sensitive workloads to be hosted with appropriate safeguards.
Hosting on in-Kingdom infrastructure removes the hardest part of that conversation. Skyline Cloud keeps data in-Kingdom by default, which simplifies your PDPL data-transfer assessment and keeps latency low for Saudi users. Document, for each workload:
- Classification of the data (public, internal, confidential, personal).
- The hosting region and the processor (your hosting agreement covers this).
- Retention and backup location.
Review the cloud hosting service overview to map each workload to the right product tier.
3. Choose the target architecture
Match each workload to the simplest product that fits:
| Workload | Recommended target |
|---|---|
| Brochure / WordPress site | Managed WordPress or cPanel web hosting |
| Custom app + database | VPS / cloud server |
| High, steady compute | Dedicated server |
| Company mailboxes | Business email hosting |
| Files, media, backups | Object storage + cloud backup |
Right-size rather than over-provision. A VPS is easy to vertically scale later, so start with what your discovery numbers justify.
4. Provision and stage — before you cut over
Create the target environment and migrate data while the old system stays live. This staging step is what makes the migration reversible.
For a typical site + database move to a VPS:
# On the source: export the database
mysqldump -u dbuser -p --single-transaction --quick mydb > mydb.sql
# Copy database and files to the new server
scp mydb.sql user@new-server-ip:/tmp/
rsync -avz --progress /var/www/mysite/ user@new-server-ip:/var/www/mysite/
# On the target: import
mysql -u dbuser -p mydb < /tmp/mydb.sql
Then point a test hostname or your local hosts file at the new server's IP and confirm the application loads, logs in, and writes to the database correctly — all before any public DNS change.
5. Lower DNS TTL ahead of cutover
DNS changes propagate based on TTL (time to live). Reduce the TTL on the records you will change to 300 seconds (5 minutes) at least 24-48 hours before the planned cutover. Existing resolvers will then forget the old answer quickly when you switch.
# Verify the current TTL on your A record
dig A www.alskyline.com +nocomments +ttlid
Manage these changes cleanly with Skyline managed DNS so the lowered TTL and the cutover happen in one console.
6. Migrate email carefully
Email is the workload that breaks most painfully if rushed. Provision mailboxes on the target first, then sync existing mail with imapsync so nothing is lost:
imapsync \
--host1 old-mail.example.com --user1 ahmed@alskyline.com --password1 'OLD' \
--host2 mail.alskyline.com --user2 ahmed@alskyline.com --password2 'NEW' \
--ssl1 --ssl2
Keep the old server accepting mail for a transition window. When you move the MX record, also update SPF, DKIM, and DMARC so outbound mail keeps passing authentication. See the business email hosting guidance for the exact records to publish.
7. Cut over and verify
On cutover day, work in order: do a final delta sync of data and mail, then update the DNS records (A/AAAA first, MX last). Because TTL is low, propagation is fast. Verify immediately:
# Confirm the new IP is being served
dig A www.alskyline.com +short
curl -sI https://www.alskyline.com | head -n 1
# Confirm mail is routing to the new host
dig MX alskyline.com +short
Walk the full checklist: site loads over HTTPS with a valid certificate, logins work, a test transaction completes, scheduled jobs fire, and a test email sends and receives in both directions.
8. Decommission — but keep the rollback open
Do not delete the old environment immediately. Keep it running, frozen, for at least one to two weeks. If anything regresses, raising the old server's records back up (TTL is still low) is your instant rollback. Only after a clean monitoring window should you take a final backup of the old system and decommission it.
Quick reference checklist
- [ ] Full inventory of domains, workloads, data sizes, dependencies
- [ ] Data classification + residency documented for PDPL/NCA
- [ ] Target architecture sized from real numbers
- [ ] Data and mail staged and tested on the target
- [ ] DNS TTL lowered to 300s, 24-48h ahead
- [ ] Email synced; SPF/DKIM/DMARC updated
- [ ] Cutover verified end to end
- [ ] Old environment frozen for rollback, then decommissioned
A migration done this way has no scary "big bang" — every step is testable and reversible, and your data never leaves the Kingdom.
Ready to start? Create your Skyline Cloud account and provision your target environment today — with in-Kingdom data residency and local Arabic support from day one.
Comments
0 total · 0 threads