My thoughts on tech.
14 January 2018
Last summer a good friend of mine challenged me to help him move his Magento webshop from an on-premises server to the cloud. Also, to upgrade the webshop to the newest version (Magento 2).
The webshop is the online spot for a small streetwear Portuguese shop. The crew supporting the shop is 3 persons, and the online channel is extremely important to the growth.
Ryan Beyer, The Image Bank, Getty Images
The cloud provider offer is huge. We’ve put some effort into the investigation of the right cloud provider for us. The key points are:
We chose AWS, since it ticks all the boxes, having a good offer for the price tag. The community support is excellent, and we can find useful open source resources from the AWS folks (one of them is described in the next section).
Also, AWS offers a range of services that allow the webshop to grow sustainably. An example is the AWS Simple Email Service (SES), where it can be used as e-mail service to support the marketing campaigns.
Playmobil Playground
In order to do a smooth migration, we’ve created a playground in AWS. We used the Magento 2 Quick Start provided by AWS, to build the Magento 2 infrastructure. It allows us to reduce the time to market, and we were able to focus on the webshop content, rather than the infrastructure.
In our playground, we tested all the variations, namely themes, modules, and integrations. To name a few:
Testing code in Production
We created a migration plan, to mitigate potential issues when we triggered the migration. We planned to do a hot migration, e. g., put the old webshop in read-only mode until all traffic is redirected to the new webshop.
To develop this migration plan we read the official documentation, where Magento states the steps to migrate a webshop. Our migration plan was based on the official documentation, adding the possibility to recover the old webshop from backups, minimizing the data loss. We did the dry run 3 times before the final move, testing the backup recovering strategy. We wanted to be sure that we covered all the bases, and we were able to recover from backups.
Cycle to reach success: try, fail, try again, success
From the migration we learned a few good lessons:
This was the start of our journey. In the upcoming weeks we will post more implementation details, such as monitoring & logging, security measures, build & deployment pipelines, amongst others.