Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
CMDB based on Neo4j
branch: repo-hooks

This branch is even with williewheeler:repo-hooks

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
client
domain
maven
service
.gitignore
README
pom.xml

README

========================================================================================================================
README

Willie Wheeler (willie.wheeler@gmail.com)

Copyright 2011-2012 the original author or authors.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
========================================================================================================================

From a high level, Skybase is an open source configuration management database, or CMDB. As such its goal is to support
runbook automation, especially deployment and operations use cases.

Technically Skybase explores the use of Neo4j in building a configuration management database. We're trying to address a
few challenges we've seen building another CM system (one that's based upon a relational backend):

1) When the CMDB's scope is large (e.g. spanning multiple global data centers), the underlying schema becomes complex
   and over time resists change. But we need to be able to change the schema as business requirements evolve (e.g., new
   customers, new vendor relationships, etc.).

2) Corresponding to the schema complexity, the UI becomes pretty complex too. We end up having to invent new terms, or
   assign very specific meanings to existing terms, like "application", "farm", "instance", "package", "environment",
   "logical environment", "physical environment", etc.

3) Defining, viewing and navigating relationships in the UI requires significant database, service and UI development.

The thought is that we can use a generic data representation--a graph--to address these issues. For example, instead of
building custom tables, services and UI for individual entities and for entity navigation, we can use generic graph
operations to establish these. Adding a person to a team, say, is the same sort of operation as adding an instance to a
farm.
Something went wrong with that request. Please try again.