One of our long-time customers requested that we help to maintain a 10-year-old e-commerce platform based on the original NopCommerce. They also requested that we research and develop a solution for migrating the same store to a newer NopCommerce platform and also powering it by Microsoft Azure.
The older store turned out to be rather challenging to maintain. There was a large number of shared stores all using the same code, servers, databases and storage mediums. There was also fulfillment and accounting within the company using the same store resources to process orders and report on accounting and purchase habits. This often created traffic ranging from 80 million to 120 million requests a month. Without any horizontal scalability, and with an aging server infrastructure, the systems started to crack. These issues created an unstable environment no matter how hard you would try to fine-tune the system. Additionally, it could only be repaired long enough to see an increase in usage causing gains made to be lost.
Over time, we architected a new store platform based on microservices, PaaS (Platform as a Service), and code injection concepts. We also leveraged Azure Websites, Azure API Services, Azure SQL, Azure Redis, Application Insights and Azure Load Balancing. This allowed us to break apart each store giving them their own isolated island with access to scalable resources, with both horizontal, and vertical control of costs as each store grew. This also allowed us to establish a continuous integration policy which has led to a cleaner distribution of changes across the multiple stores with the least impact on all stores the company serviced. We also decided to work with Cloudflare to help secure the stores helping with DDoS mitigation, TLS security, and filtering access to some stores by country.
Collectively the new PaaS platform has quickly reached between 300 - 333 million requests a month and growing as recorded by both Cloudflare Analytics, and Application Insights.