Blog Post

Azure Database for MySQL Blog
2 MIN READ

New ARM template for automating Magento deployments to Azure!

Masashi_Narumoto's avatar
Feb 11, 2021

A few months ago, I published a blog post announcing the availability of guidance for deploying Magento in Azure Kubernetes Service (AKS). Today, I’m pleased to announce the release of an Azure Resource Manager (ARM) template, with variables for all scalability settings, designed to help deploy Azure resources for Magento. 

 

Note: For details about the solution architecture for running Magento on Azure, see this reference architecture. 

 

Important: This post and ARM template apply only to Azure Database for MySQL - Single Server.

 

 

Performance tuning 

Initially, our goal was to identify the parameter settings required to reach 300+ orders per minute. For performance testing, wleveraged the Magento Performance Toolkit, which uses Apache JMeter to simulate customer behaviors such as signing in, browsing products, and checking out. At the beginning of the process, we discovered a few bottlenecks, such as serving static files, storing user sessions, using full-text search, and some issues related to networking. These factors contributed to a starting point of about 140 orders per minute. After we resolved all bottlenecks, we were able to achieve 340 orders per minute by using a 10-node AKS cluster with 16 core MySQL

 

Template parameters 

To ensure a great starting point for all customers, the ARM template we’ve released uses default values for each variable. This ensures that you can avoid unnecessary initial costs when working on a proof of concept that requires deploying a performant architecture. In all likelihood, you’ll want to update these values to ensure that they address your specific scenario and scalability requirements. 

The following table lists parameters in the template that determine how much the cluster can scale. It provides detail about the default values included in the template, along with the parameters we used to achieve 340 orders per minute for comparison. 

 

Parameter 

Default value 

Value for 340 orders/min 

aksNodePoolSize 

3 

10 

aksNodePoolVMSize 

Standard_DS2_v2 

Standard_F8s_v2 

mySQLSkuName 

MO_Gen5_4 

MO_Gen5_16 

mySQLSkuTier 

MemoryOptimized 

MemoryOptimized 

mySQLSkuFamily 

Gen5 

Gen5 

mySQLSkuCapacity 

4 

16 

mySQLStorageSize 

128000 

512000 

fileShareQuota 

512 

16384 

 

Keep in mind that while higher values generally provide better performance, they also tend to result in increased costs.

 

Guidance 

If you have plans to deploy Magento on Azure, download the template, and review its contents. Use the Magento Performance Toolkit to help determine the most appropriate values based on your own cost and considerations. 

 

I hope you’ll find this template useful. If you have questions or feedback about the template, feel free to reach out to the Ask Azure DB for MySQL alias for additional assistance!

Updated Apr 05, 2022
Version 8.0
No CommentsBe the first to comment