ciao

module
v0.0.0-...-53c686c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2016 License: Apache-2.0

README

#Ciao Project

Go Report Card Build Status Coverage Status GoDoc Stories in Ready

Ciao is the "Cloud Integrated Advanced Orchestrator". Its goal is to provide an easy to deploy, secure, scalable cloud orchestration system which handles virtual machines, containers, and bare metal apps agnostically as generic workloads. Implemented in the Go language, it separates logic into "controller", "scheduler" and "launcher" components which communicate over the "Simple and Secure Node Transfer Protocol (SSNTP)".

Controller is responsible for policy choices around tenant workloads.

Scheduler implements a "push/pull" scheduling algorithm. In response to a controller approved workload instance arriving at the scheduler, it finds a first fit among cluster compute nodes currently requesting work.

Launcher abstracts the specific launching details for the different workload types (eg: virtual machine, container, bare metal). Launcher reports compute node statistics to the scheduler and controller. It also reports per-instance statistics up to controller.

An additional set of componentry provides ciao network connectivity for workload instances and insures tenant isolation. Workloads (whether container or VM) are automatically placed in a unified L2 network, one such network per tenant.

A cli and webui are available.

All ciao components communicate with each other via SSNTP using a set of payloads.

This GitHub repository contains documentation on the various sub-components of ciao in their respective subdirectories. A comprehensive ciao cluster setup document is also available.

If you would like to contribute to ciao, check our Contributing guide. The wiki page ilustrates how to easily setup a development environment without needing a cluster. We also recommend taking a look at the 'janitorial' bugs in our list of open issues as these bugs can be solved without an extensive knowledge of ciao. We would love to help you start contributing!

The ciao development team can be reached via our mailing list and on IRC in channel #ciao-project on Freenode.

Directories

Path Synopsis
_release
internal/datastore
Package datastore retrieves stores data for the ciao controller.
Package datastore retrieves stores data for the ciao controller.
ciao-launcher is an ssntp agent that runs on compute and network nodes.
ciao-launcher is an ssntp agent that runs on compute and network nodes.
Ciao scheduler is the SSNTP server that runs in the control plane to broker a ciao based cloud.
Ciao scheduler is the SSNTP server that runs in the control plane to broker a ciao based cloud.
networking
openstack
Package osprepare is the Operating System Preparation facility of Ciao, enabling very simple automated configuration of dependencies between various Linux distributions in a sane fashion.
Package osprepare is the Operating System Preparation facility of Ciao, enabling very simple automated configuration of dependencies between various Linux distributions in a sane fashion.
Package qemu provides methods and types for launching and managing QEMU instances.
Package qemu provides methods and types for launching and managing QEMU instances.
uuid
Package uuid can be used to generate 128 bit UUIDs compatible with rfc4122.
Package uuid can be used to generate 128 bit UUIDs compatible with rfc4122.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL