diff --git a/menu/navigation.ts b/menu/navigation.ts index dea05d6a45..91ca7c2f96 100644 --- a/menu/navigation.ts +++ b/menu/navigation.ts @@ -52,6 +52,7 @@ import { organizationsAndProjectsMenu } from '../pages/organizations-and-project import { partnerSpaceMenu } from "../pages/partner-space/menu" import { publicGatewaysMenu } from "../pages/public-gateways/menu" import { queuesMenu } from "../pages/queues/menu" +import { rabbitmqMenu } from "../pages/rabbitmq/menu" import { scalewayCliMenu } from "../pages/scaleway-cli/menu" import { scalewaySdkMenu } from "../pages/scaleway-sdk/menu" import { secretManagerMenu } from "../pages/secret-manager/menu" @@ -191,6 +192,7 @@ export default [ iotHubMenu, topicsAndEventsMenu, queuesMenu, + rabbitmqMenu, ], label: 'Integration Services', category: 'integration-services', diff --git a/pages/rabbitmq/concepts.mdx b/pages/rabbitmq/concepts.mdx new file mode 100644 index 0000000000..914307357e --- /dev/null +++ b/pages/rabbitmq/concepts.mdx @@ -0,0 +1,111 @@ +--- +title: Cloud Essentials for RabbitMQ - Concepts +description: Understand key concepts behind Scaleway Cloud Essentials for RabbitMQ. +tags: cloud essentials rabbitmq concepts glossary terms definitions +dates: + published: 2026-05-07 + validation: 2026-05-07 +categories: + - rabbitmq +--- + +## Cloud Essentials + +Cloud Essentials aims to provide a vast range of technologies, with a focus on easy deployment and a minimal feature set while offering production-ready stability and scalability. + +## RabbitMQ + +RabbitMQ is an enterprise-grade, open‑source message broker that implements the Advanced Message Queuing Protocol (AMQP) to reliably route, queue, and deliver messages between distributed applications, enabling asynchronous communication and service decoupling. + +For more details on the AMQP protocol supported by RabbitMQ, see the [AMQP 0-9-1 Model Explained](https://www.rabbitmq.com/tutorials/amqp-concepts) document by RabbitMQ. + +## Acknowledgment + +A confirmation sent by a consumer to RabbitMQ that a message has been processed. + +## Binding + +A link between an exchange and a queue, defining how messages are routed. + +## Channel + +A lightweight connection multiplexed over a TCP connection for performing operations. + +## Connection + +A TCP connection between an application and the RabbitMQ broker. + +## Consumer + +An application that receives messages from a RabbitMQ queue. + +## Durability + +A property of queues/exchanges that ensures that they survive broker restarts. + +## Exchange + +An Advanced Message Queuing Protocol (AMQP) 0-9-1 entity that receives messages from producers and routes them to zero or more queues based on rules (bindings). + +The routing algorithm used depends on the exchange type and the bindings. AMQP 0-9-1 brokers provide four exchange types: + +| Exchange type | Default pre-declared names | +|----------------|-----------------------------| +| Direct exchange | (empty string) and `amq.direct` | +| Fanout exchange | `amq.fanout` | +| Topic exchange | `amq.topic` | +| Headers exchange | `amq.match` (and `amq.headers` in RabbitMQ) | + +Besides the exchange type, exchanges are declared with a number of attributes. The most important attributes are: +- Name +- Durability: the exchanges survive broker restarts +- Auto-delete: the exchange is deleted when the last queue is unbound from it +- Arguments: optional, used by plugins and broker-specific features + +Exchanges can be durable or transient. Durable exchanges survive broker restarts whereas transient exchanges do not (they have to be redeclared when the broker comes back online). Not all scenarios and use cases require exchanges to be durable. + +## Message + +Data sent by a producer to an exchange, containing a payload and optional metadata. + +## Payload + +In RabbitMQ (and messaging systems in general), a payload refers to the actual data or content of a message that is sent from a producer to a consumer. It is the "body" of the message, distinct from any metadata or headers that might be attached. + +Example: + +```json +{ + "order_id": "12345", + "customer_name": "John Doe", + "items": [ + {"product_id": "A100", "quantity": 2}, + {"product_id": "B200", "quantity": 1} + ], + "timestamp": "2026-04-10T12:34:56Z" +} +``` + +## Persistence + +A property of messages that ensures they are saved to disk and survive restarts. + +## Prefetch Count + +Limits the number of unacknowledged messages sent to a consumer at once. + +## Producer + +An application that sends messages to a RabbitMQ exchange. + +## Queue + +A buffer that stores messages until they are consumed by an application. + +## Routing Key + +A key specified by the producer to determine which queue(s) a message should be delivered to. + +## Virtual Host + +A logical grouping of exchanges, queues, and permissions, acting like a mini RabbitMQ server. \ No newline at end of file diff --git a/pages/rabbitmq/faq.mdx b/pages/rabbitmq/faq.mdx new file mode 100644 index 0000000000..0bf7a6a51b --- /dev/null +++ b/pages/rabbitmq/faq.mdx @@ -0,0 +1,15 @@ +--- +title: Cloud Essentials for RabbitMQ FAQ +description: Discover Scaleway Cloud Essentials for RabbitMQ and find answers to general questions. +dates: + validation: 2026-05-06 +productIcon: CloudEssentialsProductIcon +--- + +## Overview + +### What is Cloud Essentials for RabbitMQ? + +Cloud Essentials for RabbitMQ is a managed solution to quickly deploy a RabbitMQ message broker that can be distributed across several nodes for enhanced performance and high availability. + +Refer to the [quickstart documentation](/rabbitmq/quickstart/) to get started. \ No newline at end of file diff --git a/pages/rabbitmq/how-to/connect-to-rabbitmq-deployment.mdx b/pages/rabbitmq/how-to/connect-to-rabbitmq-deployment.mdx new file mode 100644 index 0000000000..e7b5ce3e08 --- /dev/null +++ b/pages/rabbitmq/how-to/connect-to-rabbitmq-deployment.mdx @@ -0,0 +1,93 @@ +--- +title: How to connect to a Cloud Essentials for RabbitMQ deployment +description: This page provides a guide on how to connect to a Cloud Essentials for RabbitMQ deployment using the Scaleway console. +tags: +dates: + validation: 2025-05-06 + posted: 2025-05-06 +--- + +import Requirements from '@macros/iam/requirements.mdx' + +This page explains how to connect to a RabbitMQ deployment using the Scaleway console, using the REST API, or the Advanced Message Queuing Protocol (AMQP). + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- [Created a RabbitMQ deployment](/rabbitmq/how-to/create-rabbitmq-deployment/) + +## How to connect to a Cloud Essentials for RabbitMQ deployment + +### How to connect to a RabbitMQ dashboard + +1. Click **RabbitMQ** in the **Integration Services** section of the console. The list of your RabbitMQ deployments displays. + +2. Click the name of the RabbitMQ deployment you want to connect to. Its **Overview** page displays. + +3. In the **Deployment information** section, click the **RabbitMQ dashboard** button. A new tab opens in your browser. + +4. Enter the credentials set up during deployment creation, then click **Log in**. + +You are now connected to your Cloud Essentials for RabbitMQ deployment. Refer to the [RabbitMQ documentation](https://www.rabbitmq.com/docs/management) for comprehensive information on the RabbitMQ management dashboard. + +### How to communicate with a deployment using the Management REST API + +1. Click **RabbitMQ** in the **Integration Services** section of the console. The list of your RabbitMQ deployments displays. + +2. From the **Network** section of the **Overview** tab of your deployment, copy the **API** endpoint. + +3. In a terminal, run the following command to check RabbitMQ server health using the Management REST API. + + Remember to replace the placeholders with the appropriate values: + - ``: the username set up when the deployment was created + - ``: the password set up when the deployment was created + - ``: the API endpoint value you have just copied, the string between `amqps://` and `:` + + ```bash + curl -u : http://:15672/api/healthchecks/node + ``` + + An output similar to the following displays: + + ```json + { + status: ok, + checks: [ + { check: virtual_hosts, status: ok }, + { check: listeners, status: ok }, + { check: certificate_expiry, status: ok } + ] + } + ``` + +You can now interact with your deployment using the Management REST API. + +{/* Refer to the [Scaleway Developer reference documentation](placeholder) for comprehensive information on how to communicate with your RabbitMQ deployment using the API. */} + +### How to communicate with a deployment using the AMQP protocol + +1. Click **RabbitMQ** in the **Integration Services** section of the console. The list of your RabbitMQ deployments displays. + +2. From the **Network** section of the **Overview** tab of your deployment, copy the **API** endpoint. + +3. In a terminal, run the following command to test connectivity using the AMQP protocol. + + Remember to replace the placeholders with the appropriate values: + - ``: the username set up when the deployment was created + - ``: the password set up when the deployment was created + - ``: the API endpoint value you have just copied, the string between `amqps://` and `:` + + ```bash + python3 -c "import pika; conn = pika.BlockingConnection(pika.URLParameters('amqp://:@:5672')); print('Connection successful'); conn.close()" + ``` + + An output similar to the following displays: + + ```bash + Connection successful + ``` + +You can now interact with your deployment using the AMQP protocol. + +{/* Refer to the [Scaleway Developer reference documentation](placeholder) for comprehensive information on how to communicate with your RabbitMQ deployment using the API. */} diff --git a/pages/rabbitmq/how-to/create-rabbitmq-deployment.mdx b/pages/rabbitmq/how-to/create-rabbitmq-deployment.mdx new file mode 100644 index 0000000000..b1c9fdb7f8 --- /dev/null +++ b/pages/rabbitmq/how-to/create-rabbitmq-deployment.mdx @@ -0,0 +1,54 @@ +--- +title: How to create a Cloud Essentials for RabbitMQ deployment +description: This page provides a guide on how to set up a Cloud Essentials for RabbitMQ deployment using the Scaleway console. +tags: rabbitmq message broker manage create deploy dashboard api +dates: + validation: 2025-05-06 + posted: 2025-05-06 +--- + +import Requirements from '@macros/iam/requirements.mdx' + +This page explains how to create a RabbitMQ deployment using the Scaleway console. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization + +## How to create a Cloud Essentials for RabbitMQ deployment + +1. Click **RabbitMQ** in the **Integration Services** section of the console. The Cloud Essentials for RabbitMQ dashboard displays. + +2. Click **+ Create deployment**. A creation form displays. + +3. Select a RabbitMQ version for your deployment. + +4. Select a region where your resource will be deployed. + +5. Select a deployment configuration. You can choose between: + + - **High availability**: Ensures fault tolerance in case of node failure, workload distribution across all nodes for improved performance, and service continuity during rolling updates. + - **Standalone**: General Purpose single-node deployment for testing environments and non-critical, small-scale applications, without redundancy. + +6. Choose a node type for your deployment. For more information, refer to the [documentation about choosing between shared and dedicated compute resources](/rabbitmq/reference-content/shared-vs-dedicated-resources/). + +7. Define a storage capacity for each node. The total storage size for your deployment depends on the number of nodes provisioned. + +8. Configure at least one type of network connectivity for your deployment: + - Attach an existing Private Network, or create a new one, to securely communicate with other resources within this Private Network. + + - Set up public connectivity to access your deployment over the public internet. + + +9. Create credentials to log in to your RabbitMQ deployment. These credentials will grant `admin` access to the user. + +10. Enter a name for your deployment, or keep the automatically generated one. + +11. Review the estimated cost for your cluster, then click **Create deployment** to finish. + +You are directed to the **Overview** tab of your deployment. + + +The creation of a Cloud Essentials for RabbitMQ deployment can take several minutes to complete. + diff --git a/pages/rabbitmq/how-to/delete-rabbitmq-deployment.mdx b/pages/rabbitmq/how-to/delete-rabbitmq-deployment.mdx new file mode 100644 index 0000000000..4c4ae33ee1 --- /dev/null +++ b/pages/rabbitmq/how-to/delete-rabbitmq-deployment.mdx @@ -0,0 +1,36 @@ +--- +title: How to delete a Cloud Essentials for RabbitMQ deployment +description: This page provides a guide on how to delete a Cloud Essentials for RabbitMQ deployment using the Scaleway console. +tags: rabbitmq message broker manage remove drop destroy delete +dates: + validation: 2026-05-06 + posted: 2026-05-06 +--- + +import Requirements from '@macros/iam/requirements.mdx' + +This page explains how to delete a RabbitMQ deployment using the Scaleway console. + + +Deleting a RabbitMQ deployment is irreversible, and all its associated data will be lost. + + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- [Created a RabbitMQ deployment](/rabbitmq/how-to/create-rabbitmq-deployment/) + +## How to delete a Cloud Essentials for RabbitMQ deployment + +1. Click **RabbitMQ** in the **Integration Services** section of the console. The list of your RabbitMQ deployments displays. + +2. Click next to the name of the deployment you want to delete. A confirmation pop-up displays. + +3. Type **DELETE** in the field, then click **Delete deployment** to confirm your action. + +Your deployment is now deleted. + + +You can also delete a RabbitMQ deployment from its **Settings** tab. + \ No newline at end of file diff --git a/pages/rabbitmq/how-to/index.mdx b/pages/rabbitmq/how-to/index.mdx new file mode 100644 index 0000000000..9f210f3a97 --- /dev/null +++ b/pages/rabbitmq/how-to/index.mdx @@ -0,0 +1,4 @@ +--- +title: Cloud Essentials for RabbitMQ - How Tos +description: Practical guides for using Scaleway Cloud Essentials for RabbitMQ. +--- \ No newline at end of file diff --git a/pages/rabbitmq/how-to/manage-rabbitmq-deployment.mdx b/pages/rabbitmq/how-to/manage-rabbitmq-deployment.mdx new file mode 100644 index 0000000000..777d280330 --- /dev/null +++ b/pages/rabbitmq/how-to/manage-rabbitmq-deployment.mdx @@ -0,0 +1,30 @@ +--- +title: How to manage a Cloud Essentials for RabbitMQ deployment +description: This page provides a guide on how to manage a Cloud Essentials for RabbitMQ deployment using the Scaleway console. +tags: +dates: + validation: 2026-05-06 + posted: 2026-05-06 +--- + +import Requirements from '@macros/iam/requirements.mdx' + +This page explains how to manage a RabbitMQ deployment using the Scaleway console. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- [Created a RabbitMQ deployment](/rabbitmq/how-to/create-rabbitmq-deployment/) + +## How to manage a Cloud Essentials for RabbitMQ deployment + +1. Click **RabbitMQ** in the **Integration Services** section of the console. The list of your RabbitMQ deployments displays. + +2. Click the name of the RabbitMQ deployment you want to manage. Its **Overview** page displays. + +3. From the Overview and using the other tabs, you can: + + - Access the dashboard of your deployment + - [View and manage the users of your deployment](/rabbitmq/how-to/manage-users-rabbitmq-deployment/) + - [Delete your deployment](/rabbitmq/how-to/delete-rabbitmq-deployment/) diff --git a/pages/rabbitmq/how-to/manage-users-rabbitmq-deployment.mdx b/pages/rabbitmq/how-to/manage-users-rabbitmq-deployment.mdx new file mode 100644 index 0000000000..086b6eead6 --- /dev/null +++ b/pages/rabbitmq/how-to/manage-users-rabbitmq-deployment.mdx @@ -0,0 +1,32 @@ +--- +title: How to manage the users of a Cloud Essentials for RabbitMQ deployment +description: This page provides detailed information on how to manage the users of a Cloud Essentials for RabbitMQ deployment using the Scaleway console. +tags: +dates: + validation: 2026-05-06 + posted: 2026-05-06 +--- + +import Requirements from '@macros/iam/requirements.mdx' + +This page explains how to manage the users of a RabbitMQ deployment using the Scaleway console. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- [Created a RabbitMQ deployment](/rabbitmq/how-to/create-rabbitmq-deployment/) + +## How to change a user's password + +1. Click **RabbitMQ** in the **Integration Services** section of the console. The list of your RabbitMQ deployments displays. + +2. Click the name of the RabbitMQ deployment in which you want to update a user's password. The deployment's **Overview** page displays. + +3. Click the **Users** tab. The list of users within your deployment displays. + +4. Click **Change password** next to the appropriate user. A pop-up displays. + +5. Enter a new password, or automatically generate one, then click **Update password**. + +You can now [connect to your deployment](/rabbitmq/how-to/connect-to-rabbitmq-deployment/) using the new credentials. \ No newline at end of file diff --git a/pages/rabbitmq/index.mdx b/pages/rabbitmq/index.mdx new file mode 100644 index 0000000000..b67ccbbb4f --- /dev/null +++ b/pages/rabbitmq/index.mdx @@ -0,0 +1,52 @@ +--- +title: Cloud Essentials for RabbitMQ Documentation +description: Dive into Scaleway Cloud Essentials for RabbitMQ with our quickstart guides, how-tos, tutorials, and more. +--- + + + +## Getting Started + + + + + + + + +## Changelog + + diff --git a/pages/rabbitmq/menu.ts b/pages/rabbitmq/menu.ts new file mode 100644 index 0000000000..30f4679c8c --- /dev/null +++ b/pages/rabbitmq/menu.ts @@ -0,0 +1,58 @@ +export const rabbitmqMenu = { + items: [ + { + label: 'Overview', + slug: '../rabbitmq', + }, + { + label: 'Concepts', + slug: 'concepts', + }, + { + label: 'Quickstart', + slug: 'quickstart', + }, + { + label: 'FAQ', + slug: 'faq', + }, + { + items: [ + { + label: 'Create a deployment', + slug: 'create-rabbitmq-deployment', + }, + { + label: 'Connect to a deployment', + slug: 'connect-to-rabbitmq-deployment', + }, + { + label: 'Manage a deployment', + slug: 'manage-rabbitmq-deployment', + }, + { + label: 'Manage the users of a deployment', + slug: 'manage-users-rabbitmq-deployment', + }, + { + label: 'Delete a deployment', + slug: 'delete-rabbitmq-deployment', + }, + ], + label: 'How to', + slug: 'how-to', + }, + { + items: [ + { + label: 'Choosing between shared and dedicated resources', + slug: 'shared-vs-dedicated-resources', + }, + ], + label: 'Additional Content', + slug: 'reference-content', + }, + ], + label: 'Cloud Essentials for RabbitMQ', + slug: 'rabbitmq', +} diff --git a/pages/rabbitmq/quickstart.mdx b/pages/rabbitmq/quickstart.mdx new file mode 100644 index 0000000000..182bcd4364 --- /dev/null +++ b/pages/rabbitmq/quickstart.mdx @@ -0,0 +1,143 @@ +--- +title: Cloud Essentials for RabbitMQ - Quickstart +description: This page shows you how to get started with Scaleway Cloud Essentials for RabbitMQ. +tags: rabbitmq quickstart example guide step guide +dates: + validation: 2026-05-06 + posted: 2026-05-06 +--- + +import Requirements from '@macros/iam/requirements.mdx' + +RabbitMQ is an open‑source message broker that implements the Advanced Message Queuing Protocol (AMQP) to reliably route, queue, and deliver messages between distributed applications, enabling asynchronous communication and service decoupling. + +Cloud Essentials for RabbitMQ is a managed solution to quickly deploy a message broker that allows you to: + +- Distribute time-consuming tasks (e.g., image resizing, PDF generation) across multiple workers to avoid overloading a single server +- Send real-time alerts (e.g., order confirmations, password reset emails) to users or systems +- Decouple services so that microservices can communicate asynchronously (one service can process data without waiting for another) +- Aggregate logs from multiple sources (e.g., web servers, APIs) and forward them to a central system for analysis +- Enable real-time messaging between users by routing messages through queues + +This guide covers the basic steps to set up, log in to, manage, and delete a Cloud Essentials for RabbitMQ deployment. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization + +## How to create a Cloud Essentials for RabbitMQ deployment + +1. Click **RabbitMQ** in the **Integration Services** section of the console. The Cloud Essentials for RabbitMQ dashboard displays. + +2. Click **+ Create deployment**. A creation form displays. + +3. Select the **Standalone** deployment configuration. Standalone deployments are General Purpose single-node deployments for testing environments and non-critical, small-scale applications, without redundancy. + +4. Select the **MESSAGEQ-DEDICATED-2C-8G** node type. + +5. Define a storage capacity. + +6. Keep the default **network connectivity**. + +7. Create credentials to log in to your RabbitMQ deployment. These credentials will grant `admin` access to the user. + +8. Enter a name for your deployment, or keep the automatically generated one. + +9. Review the estimated cost for your deployment, then click **Create deployment** to finish. + +You are directed to the **Overview** tab of your deployment. + + +The creation of a Cloud Essentials for RabbitMQ deployment can take several minutes to complete. + + +## How to connect to a Cloud Essentials for RabbitMQ deployment + +### How to connect to a RabbitMQ dashboard + +1. In the **Overview** tab of the deployment you just created, click the **RabbitMQ dashboard** button. A new tab opens in your browser. + +2. Enter the credentials you set up when you created the deployment, then click **Login**. + +You are now connected to your Cloud Essentials for RabbitMQ deployment. + +### How to communicate with a deployment using the RabbitMQ REST API + +1. From the **Network** section of the **Overview** tab of the deployment you just created, copy the **API** endpoint. + +2. In a terminal, run the following command to check RabbitMQ server health using the Management REST API. + + Remember to replace the placeholders with the appropriate values: + - ``: the username set up when the deployment was created + - ``: the password set up when the deployment was created + - ``: the API endpoint value you have just copied, the string between `amqps://` and `:` + + ```bash + curl -u : http://:15672/api/healthchecks/node + ``` + + An output similar to the following displays: + + ```json + { + status: ok, + checks: [ + { check: virtual_hosts, status: ok }, + { check: listeners, status: ok }, + { check: certificate_expiry, status: ok } + ] + } + ``` + +You can now interact with your deployment using the RabbitMQ REST API. + +### How to communicate with a deployment using the AMQP protocol + +1. From the **Network** section of the **Overview** tab of the deployment you just created, copy the **API** endpoint. + +2. In a terminal, run the following command to test connectivity using the AMQP protocol. + + Remember to replace the placeholders with the appropriate values: + - ``: the username set up when the deployment was created + - ``: the password set up when the deployment was created + - ``: the API endpoint value you have just copied, the string between `amqps://` and `:` + + ```bash + python3 -c "import pika; conn = pika.BlockingConnection(pika.URLParameters('amqp://:@:5672')); print('Connection successful'); conn.close()" + ``` + + An output similar to the following displays: + + ```bash + Connection successful + ``` + +You can now interact with your deployment using the AMQP protocol. + + +## How to manage a Cloud Essentials for RabbitMQ deployment + +1. Click **RabbitMQ** in the **Integration Services** section of the console. The list of your RabbitMQ deployments displays. + +2. Click the name of the RabbitMQ deployment you want to manage. Its **Overview** page displays. + +3. From here, you can: + + - Access the dashboard of your deployment + - View and manage the users of your deployment + - Delete your deployment + +## How to delete a Cloud Essentials for RabbitMQ deployment + +1. Click **RabbitMQ** in the **Integration Services** section of the console. The list of your RabbitMQ deployments displays. + +2. Click next to the name of the deployment you want to delete. A confirmation pop-up displays. + +3. Type **DELETE**, then click **Delete deployment** to confirm your action. + +Your deployment is now deleted. + + +You can also delete a RabbitMQ deployment from its **Settings** tab. + \ No newline at end of file diff --git a/pages/rabbitmq/reference-content/index.mdx b/pages/rabbitmq/reference-content/index.mdx new file mode 100644 index 0000000000..b1d8db6112 --- /dev/null +++ b/pages/rabbitmq/reference-content/index.mdx @@ -0,0 +1,4 @@ +--- +title: Cloud Essentials for RabbitMQ - Additional Content +description: Cloud Essentials for RabbitMQ additional content. +--- \ No newline at end of file diff --git a/pages/rabbitmq/reference-content/shared-vs-dedicated-resources.mdx b/pages/rabbitmq/reference-content/shared-vs-dedicated-resources.mdx new file mode 100644 index 0000000000..a033c8a65a --- /dev/null +++ b/pages/rabbitmq/reference-content/shared-vs-dedicated-resources.mdx @@ -0,0 +1,77 @@ +--- +title: Choosing between shared and dedicated resources +description: This page provides information on the shared and dedicated node options available for Cloud Essentials for RabbitMQ deployments. +tags: rabbitmq message broker node type shared dedicated compute resource +dates: + posted: 2026-05-06 +--- + +When creating a Cloud Essentials for RabbitMQ deployment, selecting the appropriate node type is crucial for optimizing performance and cost. Two types of CPU provisioning are available: **shared** and **dedicated** vCPUs. + +Understanding the difference between these two techniques is the key to creating a deployment adapted to your needs. + +## Comparison of shared and dedicated offers + +| Feature | Shared vCPU | Dedicated vCPU | +|---------------------------------|------------------------------------------------------------|----------------------------------------------------------------| +| CPU access | Physical cores shared across multiple deployments | Exclusive access to physical CPU cores | +| Isolation | Strong virtual isolation, no data sharing between deployments | Full physical resource isolation | +| Performance consistency | Variable – depends on other workloads on the host | High – consistent and predictable performance | +| Resource contention risk | Possible during peak usage | None | +| Latency sensitivity | Not suitable for latency-sensitive apps | Ideal for latency-critical applications | +| Cost | Lower | Higher | +| Use case | Dev/staging, personal projects, blogs, low-traffic sites | Production apps, eCommerce, CI/CD, ML, real-time processing | +| Best for | Non-critical or experimental workloads | Business-critical, latency-sensitive or high-performance workloads | + + +## Shared offers + +Nodes with shared vCPU are cost-effective computational units in which CPU resources are shared among multiple deployments. This means that while each deployment gets its own vCPUs, these vCPUs are scheduled on physical cores that are shared across multiple deployments. + +As a result, deployments share physical CPU time, and during peak demand from other resources on the same host machine, your workloads might temporarily slow down due to CPU contention (also known as "CPU steal"). + +While physical CPU threads are shared between deployments, vCPUs are dedicated to each deployment, and no data can be shared or accessed between resources through this setup. + +### Typical use cases + +- Development and staging environments +- Small and non-critical production environments +- Applications tolerant to occasional performance variability +- Experimental or proof-of-concept projects +- Small-scale applications with limited traffic + +### Summary + +- Shared offers provide an affordable solution for non-critical workloads. +- CPU performance is less predictable and may fluctuate depending on neighboring workloads ("noisy neighbors"). +- During peak usage, your workloads might experience temporary slowdowns due to CPU steal. + +## Dedicated offers + +Nodes with dedicated vCPU, provide exclusive access to physical CPU cores. +This ensures consistent and predictable performance at all times. Dedicated offers are perfect for applications that require high CPU utilization and low latency. + +### Typical use cases + +- Production applications with high CPU demands +- Machine learning and scientific computing +- Real-time data processing and analytics +- High-traffic/utilization environments + +### Summary + +- Dedicated vCPU allocation ensures consistent and predictable performance. +- No risk of performance degradation due to neighboring workloads. +- Dedicated offers are more expensive than shared vCPU deployments, but offer guaranteed CPU performance. + +## Choosing the right configuration + +Choose a **shared vCPU** offer if: +- You are running non-critical or experimental workloads +- Budget is a priority over performance consistency + +Choose a **dedicated vCPU** offer if: +- Your application requires stable, predictable CPU performance +- You are in a production environment with strict performance requirements + +Consider your needs and workload requirements to choose the best vCPU provisioning option for your Cloud Essentials for RabbitMQ deployment.