Case study overview
Our Company: SuperAdmins
Client Industry: E-Commerce
Goal: To migrate an e-commerce business from a hybrid setup to a fully cloud-based infrastructure
Challenges: Code optimization for deploying an application on public cloud platforms. Implementation of the platform for the shared sessions.
Services Provided: Full cloud migration
Campaign Duration: ~ 20 days
Results: The horizontally scalable cloud infrastructure with the simplified deployment process
The client is a USA-based e-commerce business that operates and ships its products across the USA and Canada. The company grew quickly over a course of 12 months, which resulted in a drastic increase in website traffic and shop transactions. Reluctant to let servers put their business at risk, the client contacted us with a request to migrate to the cloud.
The webshop was set on shared hosting, with limited expansion possibilities. The nature of the product is not entirely seasonal but as it is a piece of equipment people usually utilize outdoors, the online store has the biggest profit and demand from March to August. At the time, the client reached out with the migration request. The webshop had a single server with an application and database layer located on the same server. The problem was that this kind of setup gives you the possibility of vertical scaling only, which is not ideal for a business that is in expansion.
Being a small business, the client emphasized the price sensitivity for the computing services and no wish for a long-term contract lockdown from a provider. Speaking of which, there were no preferences when it comes to the cloud provider; the client got a recommendation for Azure but was willing to consider any platform we found to be the most eligible.
Another important item from the brief was referring to the migration timeframe – the client needed to have it all up and running within a month, before the sales season in November.
We began with a thorough analysis of the client’s daily, weekly and monthly workload and the number of requests. The analysis also included a deeper insight into all the tools, apps and services which had any effect on server data streams – from e-commerce to payment platforms.
The analysis showed that the client’s daily website load at its peak goes up over a few time slots during the day, approximately up to 6 hours per day. This led to them having to pay for the instance that was larger (and therefore more expensive) than it was necessary, meaning they were overpaying for approximately 18 hours per day.
Due to the nature of business and website load, the client was encouraged to implement Azure App Service with Azure Database for MySQL. These PaaS-driven solutions, which are highly available and scalable by design, are chosen as the optimal solution for the client’s business and future growth.
Our Solution: Cloud Migration
The client had an application and database on the same server that needed to be broken down into a two-layer architecture. By this approach, future growth would be easier to manage as horizontal scaling can be implemented. The client’s application, that requires PHP framework, was an ideal candidate for the Azure App Service.
App Service / Web App is a PaaS service in Azure that provides hosting infrastructure for various types of applications. By using this service, the code deployment is simplified, as well as the testing of the new version of the application. The security of the application was also an important factor during the process of platform choosing. Both of the chosen services are members of the Azure PaaS family with a lot of implemented security features, that are managed by Microsoft, as well as the other functionalities. Also, this solution requires a dedicated platform for session states, that is implemented by using Azure Cache for Redis, which is also a part of the Azure PaaS family.
Results and Benefits of Azure Cloud Migration
Due to unusual spikes in traffic load, the client has monthly expenses of approximately $250, although most of the time resources weren’t being utilized. By implementing this solution, the client’s costs were increased up to $400 monthly, but the application layer became automatically scalable and able to handle more concurrent sessions than it was previously possible. A load balancing solution is a part of this implementation, so adding new application workers have no impact on the production system.
The new database layer is more robust than within the initial implementation because Azure Database for MySQL is by design a highly available service.
An additional benefit that the client got with this brand new implementation is a staging/development environment for testing new features and versions. App Service by default supports additional slots within the App Service plan, which is free of charge. This brings two direct benefits to the client’s development process:
- There are no additional costs for a staging/development environment
- The development infrastructure is the same as the production infrastructure, which reduces potential misconfiguration and problems between those environments
By implementing this solution, the client made a good foundation for future application development and incorporated DevOps processes that can help them to expand their business globally.