Jump to: navigation, search

Compass

Revision as of 04:44, 1 November 2013 by Rockyg (talk | contribs) (Compass Overview)

What is Compass?

Compass is an open source project d esignedto provide "deployment as a service" to a set of bare metal machines.

It can provide a Restful API service for operators to pragmatically deploy an OpenStack system on to the raw physical resources. From the 10,000 foot view, it can be considered as a Live CD to a set of physical machines to the end users (staff deploying OpenStack system).

Why Compass?

  • Deployment System Extensibility: Compass is not limited to OpenStack cluster, it provides a data-driven framework for deployment.
    • Example: Providing capability to create a Ceph cluster by extending the data fields in Compass system
  • Hardware Support Extensibility: Like Cinder's support for multiple storage vendors' system controlled by an OpenStack API through plug-in framework, Compass supports topology-aware resource discovery to multiple networking vendor's equipment through its plug-in framework.
    • Example: Compass originally supported Huawei switches for topology-aware resource discovery, and we added support to HP switches with less than a couple of hundred lines of plug-in code.
  • Host OS/Hypervisor Extensibility:
    • Example: we first streamlined the process for CentOS. Ubuntu support is being supported at this moment. We imagine we can repeat the similar easy effort to systems like ESXi.
  • Configuration Management System Extensibility:
    • Compass provides the concept of adapter. Current we have implemented Chef based deployment, and we believe other CM tools can be easily included in this framework. We believe this helps enterprises that have purchased supported licenses from other CM tools vendors.
  • Small Code Base, DRY:
    • The total code base is around 5,000 line of Python code.


Compass Overview

Compass is a Restful API driven deployment platform that performs discovery of the physical machines attached to a specified set of switches. It then customizes configurations for machines you identify and installs the systems and networks to your configuration specs. Compass is:

  • A Restful API server works in place
  • A demo UI frontend consuming our Restful API (as we provide Restful API, a third-party UI can be easily pluggable)
  • An adapter interface for automatic resource discovery with topology awareness (Huawei switch plug-in and HP switch plug-in have been tested, and it should be a matter of thin plug-ins for other network vendors’ device*)
  • An adapter interface for configuration management tools and we have implemented the Chef plug-in (we are willing to work with other CM tools, and it should be a matter of thin plug-ins**)
  • A Cobbler interface for OS provisioning
  • An interface for policy driven service deployment


Compass Modules

Compass Use Cases

We believe Compass may provide values to other OpenStack projects other than our original envisioned scenario. Here are some of our thoughts (and we would like to think of it and discuss it if needed)