Nothing up my sleeve… Presto! RabbitMQ is now available in beta as Compose’s newest hosted service.
Many of you might be scratching your heads whilst adamantly crying out: “But that’s not a database!”. You’re right. We’re branching out to offer different kinds of services for real-world application development. Two weeks ago we announced hosted etcd for distributed server configuration management and now we're making it easy to do message queueing on the Compose platform as well.
RabbitMQ, currently offered in beta, can be used as a nervous system for your applications, reliably passing messages between your components. You can pair RabbitMQ with Compose databases in your applications and use etcd's configuration capabilities for managing the configuration. Compose puts it all at your fingertips with these complementary offerings.
RabbitMQ runs on a server cluster ensuring high availability. The 3 member nodes function as a single logical broker for application connections. RabbitMQ vhosts, exchanges and queues are mirrored across the nodes for consistency.
How RabbitMQ works
When a message comes into RabbitMQ from a "producer" application, the configured exchanges determine how to propagate it to the defined queues. A message may be routed to one or many queues depending on how the exchange is configured and the queues that are available. Once stored securely in the right queue(s), the message waits for a "consumer" application to come pick it up. Each queue may optionally have a time-to-live (TTL) extension by which messages will die if they exceed the defined lifespan. Consumer applications subscribe to relevant queues so they can be alerted when a message arrives for them. As soon as the message is picked up, it transfers out of the queue to the consumer application.
How we're using it
At Compose we use RabbitMQ as a message broker between our platform control center (called "gru") and each host server (the "minion") for deployments. Gru passes the deployment "recipe" (provision, deprovision, scale) and required operations (create, destroy, wait for state, verify state) to the minions through RabbitMQ. The minions do the grunt work on the server and report back to gru through RabbitMQ, then check back regularly to see if there are additional instructions. Gru and the minions can go about their business independently of each other, but still stay in the loop with each other, because RabbitMQ allows for asynchronous communication between them.
Rocco [stepping in]: And now, here's something we hope you'll really like...
What you get
We make sure your RabbitMQ deployment is highly available, reliable and secure. You'll have access to Compose’s administrative interface where you can monitor your deployment, manage users and configure the security options that make sense for you. Users you create with "configure" permissions will also have access to the RabbitMQ management console to configure exchanges, setup queues, and monitor messaging rates, among other things. The deployment consists of 3 clustered member servers plus 2 haproxy portals and includes automatic backups, mirroring and 24/7 support. Deployments start at $28.50/mo.
Try it out
If you don't have an account, it's easy to sign up. Simply provide some basic information and select the RabbitMQ deployment (and any others that interest you) to get started. If you've already got an account with Compose, you can go straight to the RabbitMQ deployment.
And, once you've got RabbitMQ up in your production environment, we'd love for you to share your use case to the rest of our readers through our Write Stuff program.