Server migration is always a big deal and requires extra attention on each part of the system. According to International Data Corporation statistics: more than 53% of small businesses have already moved to the cloud. Companies migrate to cloud to improve the efficiency of using their IT infrastructure and reduce costs required for its maintenance. But do they always succeed? Unfortunately no.

The most common mistakes during migration

Absence of a migration plan

You did not plan which systems, in what order, and how you will be transferring your infrastructure to the cloud.
Without an accurate plan of migration, this action can only make a hole in your pocket. Sometimes really deep and wide ones.)

Absence of an application dependencies scheme

You are transferring applications to the cloud that are directly connected to some external services or even other servers/clouds.
Moreover, when you perform server migration you expect that your website/application will work the same or even better on a new server. But how can you make it work if you don’t have a scheme of dependencies? The thing is that besides just regular movement of the data and services you have to do some re-configuration of the services involved in the work of your app/website. Without that all you’ll receive after the transfer - a huge and volumed crackle which your project will go down with.

Absence of a recovery plan

You do not have a Disaster Recovery plan with clearly defined actions in case of a failure.
With any force majeure, you risk losing important / business information. That’s why we do backups as a first thing and consider this action as one of the most important for any project.

Ignorance of security policies

You are transferring your old infrastructure to a brand new environment, but do not change the security configurations. The interesting thing here is that hacking never sleeps.
Such carelessness increases the possibility of unauthorized interference to your system. This will cause only pain to you and your system. You can read more about our security approaches and how to secure your server in our recent article.

Migration without testing

You take applications, developed on specific environments with specific configs, software versions, dependencies, packages, etc., and try to deploy them in the cloud immediately.
The chance of a successful launch in such a case is very low. Most likely they will not work correctly or will not run at all. The important thing is you need to check and test if everything works correctly on a new server before switching DNS. Error at this stage may cause unexpected and really harmful downtime.

Wrong choice of the provider

You think that all companies are the same and entrust the work to the first googled executor. How then can you be sure of the proper quality of the services? And how can you know for sure what kind of server/cloud do you need without testing?
Such mistakes make the process of server migration longer, draw out unnecessary resources and sometimes make the migration itself inexpedient. I am describing a good example of how to do it in a few lines below.

What steps should you perform to complete the server migration successfully?

Above all, most of the migrations are going with the same algorithm:
1) Do a fresh backup of the domains and databases: just because there shouldn't be a problem doesn't mean that something unexpected isn't going to happen. The most important thing in each IT project is backup. Do not take any actions with your server until you are 100% sure that you have a backup and a rollback plan of the changes that messed up your server.
2) Migrate files to the new server: that’s a pretty straightforward task even for L1 / L2 sysadmin so there should not be any problems that may cause downtime or something bad, because it is just file transfer.
3) Restore backups: that’s simple too ;)
4) Check and test if everything is in its proper place: and here we come to a critical and the most important step of the migration, because if you don’t check everything accurately and go to the next step - it will cause painful and unexpected downtime.
5) Switch DNS to new server: finally, if all of the above steps were performed correctly - then your migration passed successfully.
ITsyndicate DevOps team have performed dozen of various server migrations, including complex infrastructure moves. For some particular cases, we use special and custom approaches. To complete the migration successfully - we need to analyze your backend first :)

Afterword

In conclusion, to be 100% sure that everything is set up, configured, and working properly on a new infrastructure after the server migration - a good idea would be to give your website or application to a person or a group of people for a few days to test it. This will be live and honest testing that will not only show errors made during transfer but may also display bugs that were not caught before.