Skip to main content
Version: Develop

a9s Messaging

This documentation describes the a9s Messaging service. a9s Messaging enables on-demand provisioning of VM-based, dedicated RabbitMQ servers and clusters. Developers can create instances of a RabbitMQ server or cluster using Apps Manager or the Cloud Foundry Command Line Interface (cf CLI) and bind these instances to an app. Depending on your service plan, a service instance may be associated with a single, dedicated VM or a set of VMs consisting of multiple VMs containing a RabbitMQ cluster.

a9s-rabbitmq.png

Overview

When you run the cf CLI cf create-service a9s-messaging command, BOSH creates dedicated VMs for this service instance. This provides protection from bad neighbors.

RabbitMQ service instance provisioning, including VM orchestration, is entirely automated. This enables service instances to be highly isolated and shielded by infrastructure virtualization mechanisms.

Due to the on-demand provisioning on VMs, only existing service instances allocate infrastructure resources. These resources are released when service instances are destroyed. Using on-demand, provisioning the number of service instances is not limited by design.

Distributed across multiple infrastructure availability zones, clustered data service plans enable short failover times and are resilient against failures of individual infrastructure hosts or entire availability zones.

Current Features

a9s Messaging includes the following key features:

FeatureDescription
On­-demand service instance provisioninga9s Messaging deploys RabbitMQ instances automatically. Developers can provision a single-VM RabbitMQ server or a multi-VM RabbitMQ replica set using one command.
Service instance isolationEach RabbitMQ server runs on a dedicated VM to ensure bad-neighborhood protection and align with enterprise security requirements.

a9s Messaging uses Cloud Foundry application security groups (ASGs) to prevent network connections from unauthorized apps.
High availabilitya9s Messaging ensures high availability using RabbitMQ replication.

The Consul-based internal DNS system ensures that the bound application always connects to a working node.
Smoke testsA post-deployment, smoke-test errand runs basic tests against your installation to ensure that it is configured properly.
Service instance capacity upgradeBy updating your service plan, you can upgrade the RAM, CPU, and storage capacity for your RabbitMQ instances.
Logging and monitoringEach RabbitMQ service instance provides log messages and RabbitMQ-specific metrics to one or more syslog/graphite endpoints. You can configure the syslog/graphite endpoint to receive logging and monitoring information.
Deployment updaterAn updater errand updates the stemcell and all provisioned a9s Messaging service instances to their latest version.
Backup ManagerThe Backup Manager does regular backups of your instances, and offers endpoints to backup instantly and restore backups.
CF Service GuardThe CF Service Guard creates Cloud Foundry App Security Groups for your service instance VMs.

When the IP address of a service instance changes, the CF Service Guard updates the ASG.