Jump to: navigation, search

Difference between revisions of "Senlin"

(Privilege management)
(OpenStack Clustering)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
  
= OpenStack Clustering =
+
== Overview ==
  
The mission of the OpenStack Clustering project is to create a service for managing the homogeneous objects exposed by other services in an OpenStack cloud.
+
The mission of the Senlin project is to provide a generic clustering service for an OpenStack cloud. Such a service is capable of managing the homogeneous objects exposed by other OpenStack components, such as Nova, Heat, Cinder etc.
 +
 
 +
=== Features Highlight ===
 +
 
 +
The primary features of the Senlin service are listed below:
 +
 
 +
* A generic clustering/collection service for managing groups of homogeneous cloud objects on OpenStack.
 +
* A set of APIs for managing cluster membership, e.g. add/remove nodes.
 +
* A plugin-based object profile management enabling the creation and management of any object pools.
 +
* A plugin-based policy enforcement framework featuring flexible policy customization for cluster management.
 +
* A asynchronous execution engine for ensuring the state consistency of clusters and nodes.
 +
* A open design for action execution that can be extended to accommodate complex application deployment.
 +
 
 +
=== Architecture ===
 +
 
 +
The following picture depicts the high-level system architecture of the Senlin service:
 +
 
 +
<gallery>
 +
overall.png|Senlin High-Level Architecture
 +
</gallery>
  
 
= Senlin =
 
= Senlin =

Revision as of 15:15, 29 June 2015


Overview

The mission of the Senlin project is to provide a generic clustering service for an OpenStack cloud. Such a service is capable of managing the homogeneous objects exposed by other OpenStack components, such as Nova, Heat, Cinder etc.

Features Highlight

The primary features of the Senlin service are listed below:

  • A generic clustering/collection service for managing groups of homogeneous cloud objects on OpenStack.
  • A set of APIs for managing cluster membership, e.g. add/remove nodes.
  • A plugin-based object profile management enabling the creation and management of any object pools.
  • A plugin-based policy enforcement framework featuring flexible policy customization for cluster management.
  • A asynchronous execution engine for ensuring the state consistency of clusters and nodes.
  • A open design for action execution that can be extended to accommodate complex application deployment.

Architecture

The following picture depicts the high-level system architecture of the Senlin service:

Senlin

Senlin provides a clustering service to create and manage objects of the same nature, e.g. Nova servers, Heat stacks, Cinder volumes, etc. The collection of these objects is referred to as a cluster. Senlin abstracts the physical objects as nodes, which can belong to any cluster of the same type. Senlin supports object creation, deletion and update via a concept called Profile. Each profile is in essential a driver to communicate with certain services for object manipulation.

With Senlin, user can attach a policy to a cluster and enforce it, or detach it from a cluster. Some built-in policies are provided to meet requirements such as auto-scaling, load-balancing, high-availability etc.

Senlin provides an OpenStack-native ReST API and a command line interface tool to other services and the users.

How it works

  • A Senlin profile describes the information needed to create a node (or a cluster). A user will create a profile via Senlin first. Different profile types talk to different backend drivers.
  • The profile then can be used to create a node or a cluster.
  • The cluster membership can be changed by explicit adding or removal of nodes, or by a scale-in/out operation.
  • User can instruct a node to join a cluster or leave its current cluster.
  • A Senlin policy describes certain rules that will be checked and enforced.
  • (TBC)

Architecture

Senlin comprises a number of Python applications:

senlin

The senlin tool is a CLI tool.

senlin-api

The senlin-api component provides an OpenStack-native ReST API.

senlin-engine

The senlin engine does the main work of managing clusters, nodes, profiles, policies, actions, events and webhooks.

Development

Webhook

Webhook

Get involved

IRC

The developers use IRC in #senlin on Freenode for development discussion.

Meetings

[TBD]

Mailing list

Discussions about Senlin happens on the openstack-dev mailing list. Please use the tag [Senlin] in the subject line for new threads.