Skip to content

Commit 71e3fd8

Browse files
docs: add infrastructure sizing guidance and update related docs (#3016)
## Description - Introduced a new page for **Infrastructure and capacity planning** to provide guidance on CPU, memory, and disk capacity for self-hosted Appsmith deployments. - Updated existing documentation to reference the new infrastructure sizing page, including best practices, deployment architecture, and environment variables. - Enhanced the **best-practices.md** and **deployment-architecture.md** files to include capacity planning considerations and links to the new guidance. - Adjusted instance size recommendations across various installation guides to align with the new baseline. ## Pull request type Check the appropriate box: - [ ] Review Fixes - [ ] Documentation Overhaul - [ ] Feature/Story - Link one or more Engineering Tickets * - [ ] A-Force - [ ] Error in documentation - [x] Maintenance ## Documentation tickets Link to one or more documentation tickets: - ## Checklist From the below options, select the ones that are applicable: - [ ] Checked for Grammarly suggestions. - [ ] Adhered to the writing checklist. - [ ] Adhered to the media checklist. - [ ] Verified and updated cross-references or added redirect rules. - [ ] Tested the redirect rules on deploy preview. - [ ] Validated the modifications made to the content on the deploy preview. - [ ] Validated the CSS modifications on different screen sizes.
1 parent d9bd896 commit 71e3fd8

9 files changed

Lines changed: 97 additions & 6 deletions

File tree

website/docs/getting-started/setup/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ Appsmith works best on AMD and ARM architectures on AWS, Azure, GCP, and Digital
1515
- Two virtual CPUs
1616
- 8 GB of memory
1717

18+
These values are a baseline for getting started. Production sizing depends on application workload, concurrency, and whether supporting services run locally or externally. For the full planning workflow, see [Infrastructure and capacity planning](/getting-started/setup/infrastructure-sizing).
19+
1820
You can follow one of the below guides to deploy Appsmith on the platform you prefer:
1921

2022
- [Docker](/getting-started/setup/installation-guides/docker) (_Recommended_)

website/docs/getting-started/setup/best-practices.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ Selecting the right platform and deployment method is crucial for the scalabilit
1919
- The preferred method for production environments is **Kubernetes**, as it supports high availability and scalability, managing Appsmith's dependencies like MongoDB and Redis within Kubernetes pods without requiring external instances. For more information, see [Kubernetes Installation](/getting-started/setup/installation-guides/kubernetes) guide.
2020
- If using serverless platforms such as **AWS ECS**, external instances of MongoDB and Redis must be provisioned, with **MongoDB Atlas** and **Elasticache** recommended. For more information, see [AWS ECS Installation](/getting-started/setup/installation-guides/aws-ecs/aws-ecs-on-ec2) guide.
2121

22-
- **Instance recommendations**:
23-
- **Minimum instance size**: `t3.large` or equivalent (2 vCPU, 8 GB of memory). This should scale well for hundreds of users.
24-
- **For 500 concurrent users**, we recommend `t3.xlarge` or larger instances.
22+
- **Infrastructure and capacity planning**:
23+
- **Baseline**: Start with **2 vCPU** and **8 GB of memory** for standard deployments. On AWS, the [AWS AMI](/getting-started/setup/installation-guides/aws-ami) guide lists **`t3.large`** or **`t3a.large`** as the minimum instance size. These are entry-level baselines for testing, evaluation, or low-traffic workloads—not fixed production capacity for a given user count.
24+
- **Production sizing**: Capacity depends on application workload, concurrency, and whether MongoDB, Redis, and PostgreSQL run locally or as external services. For the full planning workflow, see [Infrastructure and capacity planning](/getting-started/setup/infrastructure-sizing).
2525
- **Free disk space**: Always ensure at least `10-15GB` of free space.
2626
- **Node separation**: For better data safety, keep separate node groups for **MongoDB**, **Redis**, **Postgres**, and the **Appsmith pod** in Kubernetes.
2727

@@ -85,5 +85,6 @@ Having a proper upgrade strategy ensures that your environment remains up-to-dat
8585

8686
## See also
8787

88+
- [Infrastructure and capacity planning](/getting-started/setup/infrastructure-sizing): Plan CPU, memory, and disk for your deployment.
8889
- [Manage Installation](/getting-started/setup/instance-configuration): Learn how to manage your Appsmith instance.
8990
- [Upgrade Installation Guides](/getting-started/setup/instance-management/): Learn how to upgrade your Appsmith installation.

website/docs/getting-started/setup/deployment-architecture.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@ description: The page provides information about the deployment architecture of
66

77
Appsmith can be deployed as a single Docker container with a single volume for storing persistent data. For **production environments**, Appsmith recommends deploying Appsmith on a Kubernetes platform. This page provides an overview of the deployment architecture for Self-hosted Appsmith, focusing on its key components and their interactions in a Kubernetes-based environment.
88

9+
## Capacity planning and supporting services
10+
11+
How you deploy MongoDB, Redis, and PostgreSQL affects infrastructure sizing:
12+
13+
- **Bundled in the same environment**: A single Docker container or an all-in-one compose stack runs embedded MongoDB, Redis, and PostgreSQL alongside Appsmith. Overall CPU, memory, and disk requirements are higher and can grow with workload, data, logging, and retention.
14+
- **External or managed services**: When these stores run outside the Appsmith runtime (for example, MongoDB Atlas, Amazon ElastiCache, or Amazon RDS), Appsmith application containers generally need fewer and more predictable resources.
15+
16+
For workload factors, baseline starting points, and a recommended sizing workflow, see [Infrastructure and capacity planning](/getting-started/setup/infrastructure-sizing).
17+
918
## Core components
1019
The Appsmith deployment architecture consists of several key components grouped by their purpose and functionality. These include the Appsmith server, customer data sources, Kubernetes pods, external managed services, and frontend architecture. The diagram below illustrates these key components, their interactions, and data flow when Appsmith is deployed on a Kubernetes platform:
1120

website/docs/getting-started/setup/environment-variables.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ If you prefer to host your Appsmith instance on a personalized domain, you can d
326326

327327
### Telemetry
328328

329-
Monitoring the performance of your Appsmith instance is crucial for making informed decisions about feature improvements and resource allocation.
329+
Monitoring the performance of your Appsmith instance is crucial for making informed decisions about feature improvements and resource allocation. For capacity planning guidance, see [Infrastructure and capacity planning](/getting-started/setup/infrastructure-sizing).
330330

331331
##### `APPSMITH_DISABLE_TELEMETRY`
332332

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
description: Guidance for planning CPU, memory, and disk capacity for self-hosted Appsmith deployments.
3+
---
4+
5+
# Infrastructure and capacity planning
6+
7+
Appsmith can provide baseline infrastructure guidance, but exact sizing depends heavily on the applications you build and how those applications are used. Appsmith is an application development platform, so two environments with the same number of users can have very different resource profiles.
8+
9+
## What affects resource requirements
10+
11+
When planning capacity, consider factors such as:
12+
13+
- Number and complexity of apps
14+
- Query and API volume
15+
- Page load frequency and concurrency
16+
- Size of datasets returned to the browser
17+
- Use of JavaScript transformations, workflows, and integrations
18+
- Authentication, Git, audit and logging, and other enterprise features
19+
- High availability requirements and backup or retention policies
20+
21+
## How deployment architecture affects sizing
22+
23+
Deployment architecture significantly impacts sizing requirements.
24+
25+
### Docker-based deployments
26+
27+
For Docker-based deployments, sizing depends on whether **MongoDB**, **Redis**, and **PostgreSQL** are externalized services or running locally within the deployment stack:
28+
29+
- **Externalized or managed services**: If MongoDB, Redis, and PostgreSQL run outside the Appsmith container (for example, MongoDB Atlas, Amazon ElastiCache, or Amazon RDS), Appsmith application containers generally require fewer and more predictable resources.
30+
- **Services in the same Docker environment**: If these services run inside the same container or compose stack as Appsmith, overall CPU, memory, and disk requirements are higher and can vary substantially depending on workload, data growth, logging, and retention policies.
31+
32+
For more information on externalizing data stores, see [Custom MongoDB](/getting-started/setup/instance-configuration/custom-mongodb-redis), [External Redis](/getting-started/setup/instance-configuration/external-redis), and [External PostgreSQL](/getting-started/setup/instance-configuration/external-postgresql-rds).
33+
34+
### Kubernetes and production deployments
35+
36+
For production environments where scalability and availability are important, **Kubernetes** is the recommended deployment model because it allows Appsmith services and dependencies to scale more cleanly. For more information, see the [Kubernetes installation](/getting-started/setup/installation-guides/kubernetes) guide and [Deployment Architecture](/getting-started/setup/deployment-architecture).
37+
38+
## Baseline starting points
39+
40+
Appsmith’s current self-hosting guidance recommends **2 vCPU** and **8 GB of memory** as a starting point for standard deployments. The [AWS AMI](/getting-started/setup/installation-guides/aws-ami) guide lists **`t3.large`** or **`t3a.large`** as the minimum instance size (2 vCPU, 8 GB memory).
41+
42+
These recommendations should generally be viewed as **entry-level baselines** suitable for:
43+
44+
- Testing and proof-of-concept environments
45+
- Evaluation environments
46+
- Low-traffic workloads
47+
48+
They are not a guarantee of capacity for production use with sustained activity or heavy application workloads.
49+
50+
For production environments with sustained activity or higher CPU utilization, consider newer-generation instance families with stronger CPU performance. **T3** instances use burstable CPU credits and can become a bottleneck under heavier or sustained workloads.
51+
52+
## Recommended approach
53+
54+
Follow this workflow when planning capacity for a self-hosted Appsmith deployment:
55+
56+
1. **Choose a deployment model**: Start with the documented baseline for a non-HA deployment (for example, Docker or a single VM), or use [Kubernetes](/getting-started/setup/installation-guides/kubernetes) for production and high availability requirements.
57+
2. **Decide on supporting services**: Determine whether MongoDB, Redis, and PostgreSQL will be externalized or hosted locally with Appsmith.
58+
3. **Run a pilot**: Deploy using representative applications, data sources, and expected concurrent usage patterns.
59+
4. **Monitor utilization**: Track CPU, memory, disk utilization, database growth, Redis usage, API latency, and application and page load times.
60+
5. **Scale on observed workload**: Adjust capacity based on measured usage rather than named user counts alone.
61+
6. **Load-test before production**: For larger or business-critical deployments, use a Kubernetes or HA architecture and conduct load testing before finalizing capacity.
62+
63+
:::caution User count is not a reliable sizing metric
64+
Avoid presenting a fixed VM or instance size as guaranteed for a given user count. User count alone does not predict resource needs. **Concurrent active usage** and **application workload** are more important indicators when sizing infrastructure.
65+
:::
66+
67+
## See also
68+
69+
- [Self-hosting Best Practices](/getting-started/setup/best-practices): Platform selection, HA, security, and operations
70+
- [Deployment Architecture](/getting-started/setup/deployment-architecture): Components and data flow
71+
- [Helm Chart: Planning your deployment](/getting-started/setup/instance-configuration/helm-chart#planning-your-deployment): Kubernetes architecture decisions before install
72+
- [In-Memory Git (Redis-backed)](/getting-started/setup/instance-configuration/in-memory-git): Additional memory and Redis sizing for Git workloads

website/docs/getting-started/setup/installation-guides/aws-ami.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ This page provides steps to install Appsmith using an Amazon Machine Image (AMI)
1717
- Ensure you have created the security group and the SSH key pair in the same region.
1818
- Whitelist `cs.appsmith.com` in your security group’s outbound rules to allow outbound HTTPS traffic. If using a custom firewall, ensure these domains are permitted.
1919

20+
:::info Capacity planning
21+
The minimum instance types listed below are entry-level baselines for evaluation and low-traffic workloads. Production sizing depends on application workload and usage patterns. See [Infrastructure and capacity planning](/getting-started/setup/infrastructure-sizing) before sizing for production.
22+
:::
23+
2024
## Install Appsmith
2125

2226
Follow these steps to install Appsmith using an Amazon Machine Image (AMI):
@@ -35,7 +39,7 @@ a. Configure the instance as below:
3539
| Attribute | Value |
3640
| ----------------- | ------------------------------------------------------------------------------- |
3741
| **Name** | Give a desired name. |
38-
| **Instance type** | A minimum `t3.large` or `t3a.large` is needed. |
42+
| **Instance type** | Minimum `t3.large` or `t3a.large` (2 vCPU, 8 GB memory) for evaluation and low-traffic workloads. For production sizing guidance, see [Infrastructure and capacity planning](/getting-started/setup/infrastructure-sizing). |
3943
| **Key pair** | Select the Key pair you created in the [Prerequisites](#prerequisites) section. |
4044

4145
b. Scroll down to the **Networking** section, and configure as below:
@@ -152,5 +156,6 @@ If you are facing issues during deployment, refer to the guide on [troubleshooti
152156

153157
## See also
154158

159+
- [Infrastructure and capacity planning](/getting-started/setup/infrastructure-sizing): Plan CPU, memory, and disk for your deployment.
155160
- [Manage Installation](/getting-started/setup/instance-configuration): Learn how to manage your Appsmith instance.
156161
- [Upgrade Installation Guides](/getting-started/setup/instance-management/): Learn how to upgrade your Appsmith installation.

website/docs/getting-started/setup/installation-guides/aws-ecs/aws-ecs-on-ec2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ To deploy Appsmith on the Amazon ECS cluster that has a single node, you need to
4343
* **Provisioning Model**: Choose **On-demand**
4444
* **Auto Scaling Group**: Keep default selection
4545
* **Operating system/Architecture**: Amazon Linux 2
46-
* **EC2 instance type**: Select at least a `t3.large` or a `t3a.large` instance type (2 vCPU, 8 GB of memory).
46+
* **EC2 instance type**: Select at least a `t3.large` or a `t3a.large` instance type (2 vCPU, 8 GB of memory) as an entry-level baseline for evaluation and low-traffic workloads. For production sizing guidance, see [Infrastructure and capacity planning](/getting-started/setup/infrastructure-sizing).
4747
* **Desired Capacity**: Give **Minimum** as 1 and **Maximum** as 2
4848
* **SSH Key pair**: Use the key pair created in the [Prerequisites](#prerequisites) section
4949
Keep default settings for other attributes.

website/docs/getting-started/setup/installation-guides/docker/README.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Before you begin, ensure you have the following prerequisites:
2020
- [Docker](https://docs.docker.com/get-docker/) (version 20.10.7 or later)
2121
- [Docker-Compose](https://docs.docker.com/compose/install/) (version 1.29.2 or later)
2222
- Whitelist `cs.appsmith.com` in your firewall or security group’s outbound rules to ensure Docker can pull required images and dependencies.
23+
- **Host memory**: The default Docker Compose setup runs MongoDB, Redis, and PostgreSQL inside the Appsmith container. Plan for at least **8 GB of RAM** on the host for this all-in-one deployment. If you externalize supporting services, the Appsmith container may need less host memory. See [Infrastructure and capacity planning](/getting-started/setup/infrastructure-sizing).
2324

2425
## Install Appsmith
2526

website/sidebars.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ const sidebars = {
261261
items:
262262
[
263263
`getting-started/setup/best-practices`,
264+
'getting-started/setup/infrastructure-sizing',
264265
'getting-started/setup/deployment-architecture',
265266
],
266267
}

0 commit comments

Comments
 (0)