Jump to: navigation, search

Difference between revisions of "Cue"

(Why)
(Why)
Line 10: Line 10:
 
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, many of which implement open protocols such as AMQP 0.9 and 1.0.  
 
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, many of which implement open protocols such as AMQP 0.9 and 1.0.  
 
    
 
    
Provisioning and supporting Messaging systems for an individual application can be a time consuming and painful experience. Cue aims to simplify the provisioning and management of messaging systems, providing High Availability and auto-healing capabilities to both the operator and end user, while providing secure tenant-level isolation.
+
Provisioning and supporting messaging systems for an individual application can be a time consuming and painful experience. Cue aims to simplify the provisioning and management of messaging systems, providing high availability and auto-healing capabilities for both the cloud operator and end user, while providing secure tenant-level isolation.
 
    
 
    
 
The main goal of this service is to simplify the end user application development lifecycle for both legacy and "cloud native" applications, allowing the developer to focus on their application, instead of the underlying middleware services.
 
The main goal of this service is to simplify the end user application development lifecycle for both legacy and "cloud native" applications, allowing the developer to focus on their application, instead of the underlying middleware services.

Revision as of 17:26, 5 January 2015

Cue

Mission Statement

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, many of which implement open protocols such as AMQP 0.9 and 1.0.

Provisioning and supporting messaging systems for an individual application can be a time consuming and painful experience. Cue aims to simplify the provisioning and management of messaging systems, providing high availability and auto-healing capabilities for both the cloud operator and end user, while providing secure tenant-level isolation.

The main goal of this service is to simplify the end user application development lifecycle for both legacy and "cloud native" applications, allowing the developer to focus on their application, instead of the underlying middleware services.

Use Cases (in-work)

Macro

  1. IT teams providing managed, highly available message brokers to their app development teams, on private clouds they own and operate.
  2. OpenStack service providers seeking to provide a managed, highly available messaging service with multiple backends such as RabbitMQ and Kafka to their end users.

Micro

  1. Distributing work between micro-services deployed on top of OpenStack via PaaS offerings like Cloud Foundry.
  2. Sending messages between legacy systems and cloud native applications.

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?

API

API documentation is located here:

Cue API Approach 1

Cue API Approach 2

Comparison

Code

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

https://github.com/stackforge/cue

Code Reviews:

https://review.openstack.org/#/q/project:stackforge/cue,n,z

Find Us

Come talk to us on #openstack-cue on Freenode.