# Sizing Model For Virto Commerce Solutions

**URL:** <https://www.virtocommerce.org/t/sizing-model-for-virto-commerce-solutions/79>\
**Category:** dev\
**Tags:** great-solutions, azure\
**Created:** [October 30, 2019, 8:25pm UTC](https://www.virtocommerce.org/t/sizing-model-for-virto-commerce-solutions/79 "2019-10-30T20:25:58Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![OlegoO](https://yyz2.discourse-cdn.com/flex032/user_avatar/www.virtocommerce.org/olegoo/32/27_2.png) [@OlegoO](https://www.virtocommerce.org/u/OlegoO)\
**Post date:** [October 30, 2019, 8:25pm UTC](https://www.virtocommerce.org/t/sizing-model-for-virto-commerce-solutions/79/1 "2019-10-30T20:25:59Z")

</div>

## Overview

Virto Commerce is a scalable e-commerce solution and designed to build large and complex digital commerce solutions for B2B, B2C or B2B2C business, marketplaces and derived SaaS commerce platforms.

This topic shows the scalability of Virto Commerce Solutions from Smal to Extra Large and helps you choose the right Azure services and price plans.

## Architecture

> **[Virto Commerce Architecture Reference in Azure](https://www.virtocommerce.org/t/virto-commerce-architecture-reference-in-azure/37)**
>
> Virto Commerce Architecture Reference in Azure Overview Virto Commerce is a scalable e-commerce solution and designed to build large and complex digital commerce solutions for B2B, B2C or B2B2C business, marketplaces and derived SaaS commerce...

## Scalability

This section describes how to scale solution based on Virto Commerce platform and Virto Commerce Storefront Kit.

### S: Small

The small environment is good for simple projects, proof of concept, etc.

 ![image](https://canada1.discourse-cdn.com/flex032/uploads/virtocommerce/original/1X/7e24de8c07e8f74269923e059af9a7b61cfe042b.png)

Key elements:

1. 1x Storefront Instance
2. 1x Backend Instance

### M: Medium

Ready for production and scalability. You can go live with MVP.

 ![image](https://canada1.discourse-cdn.com/flex032/uploads/virtocommerce/original/1X/ab3b2030df0d9ee988d7fb13ab869e3638f93788.png)

Key elements:

1. Multiple Storefront Instances
2. Multiple Backend Instances
3. Redis Cache as Distributed Cache Storage

### L: Large

Good for the complex solution and provides ability use benefits of modern Azure service and Virto Commerce.

 ![image](https://canada1.discourse-cdn.com/flex032/uploads/virtocommerce/original/1X/7200f66922273c27f23a07a37a97211d5b850e00.png)

Key elements:

1. SQL Database Elastic Pool (Split modules by different DB: Cart, Order, Catalog, Customers, etc.)
2. AzureSearch or Elasticsearch cluster

### XL: Extra Large

You can decrease resource utilization and cost by splitting admin by functional elements. Minimize performance degradations from different processes (Ex: Background Jobs to Storefront and Content Managers).

**Note:** The environment is very close to multiple regions solutions and helps to achieve high availability and high performance.

 ![image](https://canada1.discourse-cdn.com/flex032/uploads/virtocommerce/original/1X/186c8a79f3099e08c70c33404041fed4ea8cce54.png)

1. VC backend environment for Storefront App (no Background Jobs)
2. VC backend environment for Content Managers (no Background Jobs)
3. VC backend environment for Background Jobs (focus on high CPU utilization)

## Sizing and Cost calculator

This section helps you to calculate the cost are required resources.

### Sizing Model

This data based on best practices and feedback from multiple custom e-commerce solutions. The actual result can depend on custom implementation, data and configuration.

| **Size** | **Frontend Requests/sec** | **Cart Changes peak/sec** | **Orders per day** |
| --- | --- | --- | --- |
| **S** | 10 | 1 | 200 |
| **M** | 100 | 5 | 1500 |
| **L** | 300 | 50 | 15000 |
| **XL** | | | |

| **Size** | **Azure Web Site Price Plane** | **Frontend Azure Web Site Instance Count** | **Backend Azure Web Site Instance Count** | **Azure SQL Price Plane** | **Azure SQL Count** | **Azure Virtual Machine (Elastic Search)** | **ES Cluster** |
| --- | --- | --- | --- | --- | --- | --- | --- |
| **S** | **S2** | **1** | **1** | **S2** | **50 DTU** | **A2** | **No** |
| **M** | **S2** | **2** | **2** | **S3** | **100 DTU** | **A3** | **Yes** |
| **L** | **S3** | **3** | **5** | **P1** | **Several DB /Elastic Pool** | **A4** | **Yes** |
| **XL** | **?** | **?** | **?** | **P2** | **Several DB /Elastic Pool** | **A4** | **Yes** |

## Benchmark

Actual benchmark:

> **[GitHub - VirtoCommerce/vc-benchmark: Platform API and Storefront performance benchmark](https://github.com/VirtoCommerce/vc-benchmark)**
>
> Platform API and Storefront performance benchmark

## Azure Price Calculator

You configure and estimate the costs for Azure products in [Azure Price Calculator](https://azure.microsoft.com/en-us/pricing/calculator/).

## How to improve security

There are several general approaches to improve the security of the application:

- Add Azure Application Gateway
- Add Azure Web Application Firewall before App Web Services.
- Use HTTPS connections
- Limit direct access to services.

> **[What is Azure Application Gateway](https://learn.microsoft.com/en-us/azure/application-gateway/overview)**
>
> Learn how you can use an Azure application gateway to manage web traffic to your application.

> **[Azure Web Application Firewall (WAF) Generally Available | Microsoft Azure Blog](https://azure.microsoft.com/en-us/blog/azure-web-application-firewall-waf-generally-available/)**
>
> Last September at Ignite we announced plans for better web application security by adding Web Application Firewall to our layer 7 Azure Application Gateway service. We are now announcing the General…

## How to improve performance

There are several general approaches to achieving high availability and improve performance:

- Increase count of instances with a load balancer (included in Azure)
- Use several databases: one for static content (catalog, etc.), second for dynamic content (customers, shopping carts, orders)
- Use Azure SQL Database Elastic pool [Manage Multiple Databases with Elastic Pools - Azure SQL Database | Microsoft Learn](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool)
- For XL applications, recommend using Azure Premium plans, isolated environment and look towards Azure Cosmos DB

## How to monitor

> **[Application Insights OpenTelemetry observability overview - Azure Monitor](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview)**
>
> Learn how Azure Monitor Application Insights integrates with OpenTelemetry (OTel) for comprehensive application observability.
