Magento Multi Store shop designed for high load
The owner of the Magento multi store shop wanted to be ready for big volumes of traffic coming after his marketing campaigns and on Black Friday particularly. The solution of our DevOps engineers was designed in a way that will allow manually scale up and down.
Goals, needs and wants
The goal of the solution was to create redundant, stable and light-weight infrastructure for a magento multi store shop at the same time. Client had a development team working on shop’s updates and functionality improvement, so we suggested to implement Continuous Integration and Continuous Deployment into their workflow to ease the development process and prevent various errors and issues, that may arise during direct deployment to production.
Containerized and automated solution
We divided the whole infrastructure into independent parts, which were packed with Docker. For container’s orchestration we used Rancher. For deployment automation Jenkins was chosen. Ansible playbooks were used to automate the environment’s configuration infrastructure components interaction. Jenkins interacted with client’s GitHub, where the application’s code was stored.
Tests showed that infrastructure successfully handled ~86000 visitors at one time. Load balancing was implemented with HAproxy which distributed the load between 2 production environments. CI & CD allows to deploy the code to Development env and test new functionality there. After successful review the code goes to Staging env, where it’s kept until the final review of QA responsible. After his final approval, he pushes the changes to Production env.
Results and more
The result of our work can be seen on the right. The goals, needs and wants of our client were fully covered by the provided solution. Besides Dockerization we also performed backend’s optimization and provided comprehensive information to the development team regarding application’s performance bottlenecks and security leaks, as the most qualitative product should be tuned and secured from all sides.