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.
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.
The following picture depicts the high-level system architecture of the Senlin service:
The main components in the picture are:
- The senlinclient component provides the command line interface (CLI) for users to interact with the Senlin service;
- The senlin-api service provides the RESTful APIs for the senlinclient component or other services;
- The senlin-engine service sits behind the senlin-api service and operates on the clusters/nodes, using profiles and policies that are loaded as plugins.
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 profile 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.
- Enhancing high availability in the context of OpenStack, Atlanta Summit, 2014
- A taxonomy of architecting high-availability into an OpenStack cloud. - The then current status of OpenStack support to HA. - A proposed service (HAaaS) which layed the foundation for Senlin's cluster design.
- Suning cloud and Heat, Paris Summit, 2014
- Experience sharing on using OpenStack for an online retailer - Requirements on orchestrating enterprise applications: clustering, scaling, HA ... - Gaps identified in the then current status of OpenStack services
- VM HA and cross-region autoscaling, Paris Summit, 2014
- How VM HA can be achieved by integrating OpenStack services. - How to scale a VM cluster across multiple regions.
- Senlin design discussion, Vancouver Design Summit, 2015
- A discussion on Heat design summit about senlin service design - How the service is architected, the terminology behind it - How auto-scaling can be achieved in this design
- Integration Magnum and Senlin for container autoscaling, Tokyo Summit, 2015
- Experience sharing on integrating Magnum and Senlin - Magnum provisions the container orchestration engines (COEs) - Senlin is responsible to scale the container clusters and the underlying VM clusters.
- Senlin deep dive for v1.0.0 release, Austin Summit, 2016
- An overview of the Senlin service design as of the 1.0.0 release. - A summary of progress made during Mitaka cycle. - An overlook of features planned for Newton cycle.
- OpenStack native container clustering, Austin Summit, 2016
- A technology preview of the container clustering support in Senlin - The discussion focuses on the on-going effort that builds and manages a docker cluster on OpenStack
- Elastic, resilient and load-balanced cluster in 5 mins, Austin Summit, 2016
- Experiences sharing how elasticity, resiliency and load-balancing can be achieved using Senlin - The demo shows how the above requirements are met using a Heat template consisting of Senlin resource types.
|Launchpad Projects||Senlin SenlinClient SenlinDashboard|
|Code Repositories||Senlin SenlinClient SenlinDashboard|
|Code Review||Senlin SenlinClient SenlinDashboard|
|Bug Tracking||Senlin SenlinClient|
|IRC Channel|| |
|Mailinglist|| Drop emails to openstack-dev with tag |
|Weekly Meetings|| 1300UTC every Tuesday on #openstack-meeting channel. |