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.
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:
Feature | Description |
---|---|
On-demand service instance provisioning | a9s 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 isolation | Each 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 availability | a9s 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 tests | A post-deployment, smoke-test errand runs basic tests against your installation to ensure that it is configured properly. |
Service instance capacity upgrade | By updating your service plan, you can upgrade the RAM, CPU, and storage capacity for your RabbitMQ instances. |
Logging and monitoring | Each 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 updater | An updater errand updates the stemcell and all provisioned a9s Messaging Service Instances to their latest version. |
Backup Manager | The Backup Manager does regular backups of your instances, and offers endpoints to backup instantly and restore backups. |
CF Service Guard | The 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. |