Magento 2 migration includes four components: data, extensions and custom code, themes, and customizations.
Step 1: Create a migration plan. The more details you write down, the more time you’ll save on development and post-deployment. I recommend you to split up planning into three stages: migration details for data — products, categories, customers, orders, and content (articles, pages); project specifications - you should describe how the project will be developed, including all pertinent processes. This means that every page, every tab, button, and block has to be described; project planning — a step-by-step list of milestones with deadlines and definitions of done.
Step 2: Prepare the testing environment. It is highly recommended to perform each step of migration and develop all related projects in a separate environment. Prepare a test development environment and install the default Magento 2 platform. Moreover, make sure everything is ready to run the project.
Step 3: Install extensions and custom development. Install the corresponding Magento 2 extensions or develop custom extensions, or additional features for Magento 2.
Step 4: Magento Data migration. A very important step in the process. But Magento includes an automated tool for transferring only the data existing in Magento by default: (everything except files, layouts, media, custom code, and control access configurations).
Step 5: Create a design for Magento 2. It is possible to copy your current theme for Magento 1.x to Magento 2, but this will require some elbow grease, and it is highly recommended updating the design because so many more features are available in Magento 2.
Step 6: Launch plan and additional database synchronization. After finalizing and testing the design, set up the hosting server according to the new system requirements for Magento 2. Once you optimize the server for Magento, you can perform a final database synchronization so no orders or customers get left behind in migration. Once you’ve tested the final version and ensured everything works, the store is ready to launch.
Step 7: Magento 2 store launch on a live server. This is the last step of migration — launch day. If everything was done correctly and according to the plan, your engineering team will perform a smooth transition to the new store so you can start selling and shipping products right away.
For more details on what can go wrong during the migration or how long will it take to migrate, read this Magento 1 to Magento 2 migration guide.