The Stratus Stack
Stratus is built on top of a micro-services architecture powered by Kubernetes. Through micro-services, we can assign resources dynamically and provide your store exactly what it needs. And this saves money compared to traditional dedicated hosting solutions – where you pay for a limited amount of resources and you either use them or you don’t. With the Stratus stack and our unique billing by Google Analytics sessions, you pay for what you use.
Where Does A Request Go
When a user visits your site on Mojo Stratus, their traffic is directed to a CloudFront distribution. All traffic passes through CloudFront. Along with CloudFront are custom WAF rules that limit traffic to protect sites from DDoS attacks and other malicious traffic. Cacheable static assets like your media, JS and CSS files, are stored at CloudFront edge nodes.
After CloudFront, load balancers send traffic direct to your Stratus services, starting with Varnish, if enabled, then passed to the Nginx backend. Nginx sends request to PHP-FPM. PHP-FPM does the rest of the heavy lifting working with any auxillary services (Redis, Elasticsearch, Memcache, Sphinx and so on) before sending back everything the client needs to render your website.
I Heard This Thing Scales
Unless you have selected one of our Resource Based Pricing plans, all Stratus plans have access to Autoscaling. It requires some configuration, and once configured your store has near limitless resources available to PHP-FPM. We’ve found the biggest limiting factor in scaling a Magento site is the amount of CPU/Memory available to PHP when page requests are processed, especially compared to MySQL. When Autoscaling is enabled, your code and other needed files are copied across to additional PHP-FPM containers.
If a high traffic event occurs, more containers come into existence automatically to handle the load.
What About MySQL
MySQL does not scale and resources are limited depending on the plan you’ve chosen. Starter having the least and our Enterprise/custom plans having the most. MySQL will be a bottleneck if your store experiences table locks or suffers from poor query design. The majority of Magento stores utilize query cache effectively in MySQL and other caching regardless of plan level to sustain high traffic. We recommend talking with your developer about potential database bottlenecks and performance.