Jump to: navigation, search

Difference between revisions of "Cue"

(Cue)
Line 35: Line 35:
 
# .. others?
 
# .. others?
  
== V1 API ==  
+
== Design ==  
The v1 API is still a work in progress. We are working on coming up with much more detailed API design, an easy version looks like this.
+
Design documentation is located here: [[https://wiki.openstack.org/wiki/Cue/api|Cue Design Documentation]]
 
 
'''Create a Cluster'''
 
<pre>
 
POST /v1/clusters
 
</pre>
 
'''List Clusters'''
 
<pre>
 
GET /v1/clusters
 
</pre>
 
'''Show Cluster'''
 
<pre>
 
GET /v1/clusters/{cluster_id}
 
</pre>
 
'''Delete Cluster'''
 
<pre>
 
GET /v1/clusters/{cluster_id}
 
</pre>
 
'''Add Node to Cluster (scale up)'''
 
<pre>
 
POST /v1/clusters/{cluster_id}/node/
 
</pre>
 
'''Delete Node from Cluster (scale down)'''
 
<pre>
 
DELETE /v1/clusters/{cluster_id}/node/{node_id}
 
</pre>
 
  
 
== Code ==
 
== Code ==

Revision as of 23:00, 14 November 2014

Cue

Mission Statement

The OpenStack Message Broker Provisioning as a Service Mission: To provide scalable and reliable Message Broker provisioning functionality for off the shelf messaging technologies, as well as to provide advanced management, tuning, and administration of underlying message brokers.

Description

Cue is a Message Broker provisioning service for Openstack. Its goal is to simplify and automate the complex tasks of provisioning, management, and administration of message brokers. Users of the service can create and manage multiple clusters of Message brokers, of various types as needed. The service will provide resource isolation at the VM level, and does not attempt to implement multi-tenancy at the message broker layer.

Why

Messaging is a common development pattern for building loosely coupled distributed systems. Messaging systems also act as glue between independent applications. Several off-the-shelf products exist that implement messaging and queuing semantics.

Provisioning and supporting Messaging systems for an individual application can be a time consuming and painful experience. This product aims to simplify the provisioning and management of messaging systems, providing High Availability and auto-healing capabilities to the end user, while providing tenant-level isolation.

The main goal of this service is to simplify the end user Application development lifecycle and allow the developer to focus on their application, instead of the backend middleware services.

Goals

  1. Produce a Message Broker Provisioning Service for Openstack
  2. Protocol Agnostic
  3. Support multiple Broker backends
  4. Provide HA and Fault Tolerance by leveraging underlying Broker Cluster capabilities
  5. Provide tuned and properly configured Message Brokers on-demand
  6. Support Broker management operations such as Backup of Configuration, Scale Up, Scale Down

Non-Goals

  1. Data plane API
  2. Multi-tenancy at the Message Broker layer

Brokers

Cue will support the following brokers (in order of priority):

  1. RabbitMQ
  2. qpid
  3. Kafka
  4. .. others?

Design

Design documentation is located here: [Design Documentation]

Code

We've started building the project, it now lives on Stackforge.

https://github.com/stackforge/cue