Skip to content
This repository has been archived by the owner on Sep 6, 2022. It is now read-only.

Latest commit

 

History

History
88 lines (53 loc) · 4.41 KB

overview.md

File metadata and controls

88 lines (53 loc) · 4.41 KB

Onix Configuration Manager

From CMDB to Configuration Manager

Onix started its first release as a configuration management database (CMDB) recording application / infrastructure configuration changes for compliance and management purposes using Ansible©.

Shortly after that, it became apparent that integrating the database with Terraform© was also useful if deployment of infrastructure was driven from Terraform©.

With the emergence of container platforms, and in particular Kubernetes©, there was an increasing interest in recording application configuration changes automatically, by reactively listening for changes in the platform and recording them in the database. This approach meant that no automation client would be needed to record changes of workloads configuration operating in the container platform.

Furthermore, it should also be possible to drive changes in system configuration from changes in the configuration database (the reverse flow as compared to the previous case).

At this point, Onix becomes more than a database (CMDB), but at reactive configuration manager.

Overview

The Configuration Manager follows a microservices architecture, allowing for suites of independently deployable services and components to be, incrementally or selectively, added to the solution to fulfill particular use case scenarios.

This modular design is comprised of bundles, which address the requirements of different users.

A core bundle is supplemented by additional bundles as shown in the diagram of the current solution below:

overview

An explanation of each bundle's components follows.


Core Bundle

The core bundle is the smallest possible configuration of the solution. It is comprised of a Web Console, the transactional Web API and database.

Service Description
Onix Web Console Users can log in the web console to see and modify configuration information stored in the database.
Onix WAPI The Web API provides RESTful endpoints for performing operations in the Onix Database.
Onix Database The PostgreSQL database containing the Onix information schemas.

Ansible© Bundle

The Ansible© bundle is comprised of a set of Python web client scripts that facilitate the integration between Onix and Ansible©.

Service Description
Inventory Plugin Allows Ansible to read inventory information stored in Onix.
Modules Allows to create, update and delete configuration information in Onix via its WAPI.

Terraform© Bundle

The Terraform© bundle is comprised of a provider and a WAPI extension to allow Onix to be used as a Terraform© HTTP backend.

Service Description
Onix Provider A Terraform© provider for Onix exposing Onix objects as Terraform© resources.
OxTerra An extension to the Onix WAPI to support storing Terraform© state in Onix implementing the Terraform© HTTP backend API.

Kubernetes© Bundle

The Kubernetes© bundle is comprised of a set of microservices which support automated recording of application configuration information for compliance and management across Kubernetes clusters.

Additionally, an application federation function is planned to replicate applications across clusters following federation policies stored in Onix.

Service Description
OxKube An extension of the Onix WAPI for Kubernetes, responsible for consuming application configuration changes and updating Onix.
Sentinel A microservice which publishes configuration changes in a Kubernetes cluster.
Unity A planned microservice which replicate application deployments across Kubernetes clusters for federation purposes.

NOTE: Unity is currently not available but planned for future releases.


Analytics Bundle

The Analytics bundle is a future set of components that will aggregate configuration information in a centralised data warehouse for reporting and analytics.

Other Bundles

Other bundles could be implemented to extend the automatic recording and federation capabilities to other platform and or cloud providers.

Feedback

If you would like to send feedback about the software, its components or any suggestions for new features or updates to existing features, please email me at onix@gatblau.org