Challenges

The client is a UK-based e-commerce business that operates and ships its products across the United Kingdom. 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.

Key Challenges

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.

Our Approach

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 MSSQL. 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. We also done some cost analysis for selective services to give customer some idea.

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 .Net framework, was an ideal candidate for the Azure App Service.

We proposed below architecture to run application in secured App Service Environment.

azure migration,  custom azure solutions

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.

Result

Microsoft Azure, ASP.net MVC 5.0, SQL Azure.

  • 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.
  • 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.
  • No additional costs for a staging/development environment.
  • Development infrastructure is the same as the production infrastructure, which reduces potential misconfiguration and problems between those environments.