Sizing a Cluster

    +
    Couchbase Cloud provides multiple features that can help you appropriately size your cluster to fit your needs.

    Correctly sizing a cluster is critical to its overall stability and performance. Couchbase Cloud simplifies (and in some cases, eliminates) most of the traditional complexities of sizing a Couchbase Server deployment, making it much easier to get started with a properly sized cluster.

    Cluster sizing is configured during the cluster creation process (though you can always scale a cluster after it’s created).

    Deployment Configuration

    A cluster’s deployment configuration is made up of the following:

    • Couchbase services — type and quantity of nodes

    • Compute instance types

    • Storage capacities

    A cluster deployment configuration created using the Custom Deployment Mode.

    Each row represents a specific service configuration. Each service configuration includes the Couchbase services that will be deployed on the node, as well as the system resources (such as compute and storage) of the cloud VM that the node will be deployed with. Each service configuration will also have a node quantity, which represents the number of nodes in the cluster that will have that configuration.

    Couchbase Services

    Sizing a cluster fundamentally depends on the services that you choose for the cluster. Each Couchbase service utilizes resources differently, so it’s important to know which resources are most important for each service as you go about sizing your cluster.

    The following topics can be helpful in understanding Couchbase services and how to size them:

    Compute — CPU and RAM

    CPU sizing is measured in:

    • Clock speed of vCPUs

    • Number of vCPUs

    RAM sizing is measured in:

    • Capacity (GB)

    CPU sizing (both clock speed and number of vCPUs), as well as RAM sizing, are both determined by the instance types available from your cloud provider. Couchbase Cloud curates these instance types and only exposes the ones that are optimal for running Couchbase.

    The amount of RAM and vCPUs in your deployment can only be sized in multiples, rather than arbitrary amounts. This is because the amount of RAM and vCPUs will always be a multiple of the RAM and vCPUs of the instance types in your configuration.

    Storage

    Storage sizing is measured in:

    • Capacity (GB)

    Storage sizing is determined by the capacity you specify in GB.

    Couchbase Cloud automatically chooses the optimal storage type available from your cloud provider to meet the I/O requirements of your configuration.

    Templates

    Cluster templates provide pre-defined cluster configurations that are based on common workloads. Each template has a variety of different sizes, and selecting one will populate the entire cluster configuration for you.

    The template sizing screen with the 'Query Optimized' template selected.

    When using template sizing, the Deployment Configuration will display the services and resources that make up the template. Individual details of the configuration can’t be edited, but a toggle is available to switch between different sizes of the template.

    Templates are a good place to start when it comes to sizing your first cluster in Couchbase Cloud. You can always deploy a cluster using a template, and then modify it later if it’s not meeting your needs. Though, keep in mind the following restrictions:

    • Clusters deployed with template sizing can only be scaled by adding or removing a node of the same instance type.

    • Clusters deployed with the Quick Start template cannot be scaled.

    Only clusters deployed using the Custom Deployment Mode can be scaled in any dimension (both nodes and instances).

    Custom Deployment Mode

    The Custom Deployment mode allows you the most granular control over sizing and configuring your cluster. This option works well if you already have experience with Couchbase Server and/or want to re-create an existing Couchbase deployment using Couchbase Cloud.

    When using the Custom Deployment mode, you’ll use the '+' icon to add different node configurations. Each node configuration represents a single row in the Deployment Configuration, and is made up of the following configurable specifications:

    • The individual services that will run on the node

    • The quantity of nodes (e.g. the number of instances of the node configuration)

    • The type of compute instance that the node configuration will run on

    • The storage capacity available on each node

    The Custom Deployment mode screen.