Skip to content

Commit

Permalink
Add more documentation
Browse files Browse the repository at this point in the history
Add tutorials;
Add terminology;
Rewrite the dashboard operations;
Add more screenshots.

Change-Id: I8677d5a036f053ae30cf01695aefaac3c9f7467d
Signed-off-by: Baohua Yang <yangbaohua@gmail.com>
  • Loading branch information
yeasy committed Mar 16, 2017
1 parent d47ad57 commit 143912f
Show file tree
Hide file tree
Showing 13 changed files with 147 additions and 32 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@ You can also find more [scenarios](docs/scenario.md).
## Documentation

### Operational Docs
* [Installation & Deployment](docs/deployment.md)
* [Dashboard](docs/dashboard.md)
* [Installation & Deployment](docs/install.md)
* [Terminologies](docs/terminology.md)
* [Tutorial](docs/tutorial.md)
* [Scenarios](docs/scenario.md)
* [Production Configuration](docs/production_config.md)

Expand Down
6 changes: 1 addition & 5 deletions docs/arch.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@

Here we discuss the architecture design for the mangement services on the Master node.

## Terminology
* Cluster | Chain: A blockchain with unique access API address, including several peer nodes. May support Hyperledger Fabric, SawthoothLake and Iroha.
* Host: A resource server, usually it can be a naive Docker host or a Swarm cluster.
* Master Node: Running the cello platform, to manage the compute nodes.
* Compute | Worker Node: The servers to have blockchains running inside.


## Philosophy and principles
The architecture will follow the following principles:
Expand Down
81 changes: 56 additions & 25 deletions docs/dashboard.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,81 @@
# Dashboard

System operators can utilize dashboard service to check system status or change configurations.
By default, the dashboard will listen on port `8080` at the Master Node.

The left panel gives quick link to various functions, including `overview`, `system status`, `Hosts`, `Active Clusters`, `Inused Clusters`, `Release History` and `About`.

| Name | URL | Function |
| --- | --- | --- |
| Overview | `/index` | See a high-level overview on system status |
| System Status | `/stat` | See statistics on the system |
| Hosts | `/hosts` | Operate on the hosts managed by the system |
| Active Clusters | `/clusters?type=active` | Operate on existing running chains in the pool |
| Inused Clusters | `/clusters?type=inused` | Operate on user occupied chains in the system |
| Released History | `/clusters?type=released` | See cluster releasing history data |

The dashboard service will listen on port `8080`.

## Overview

URL: `/index`.
![Dashboard Overview](imgs/dashboard_overview.png)


The default overview page show the overall status of the system, e.g., how many hosts are deployed within the system, how many clusters are running on those hosts. And there are status numbers for both hosts and clusters.

See a high-level overview on system status.

## System Status
## System Status Page

URL: `/stat`.
![dashboard status](imgs/dashboard_status.png)

See statistics on the system.
The system status page shows the host and cluster statistics in terms of types and active/inactive in the system.

## Hosts

URL: `/hosts`.
![dashboard hosts](imgs/dashboard_hosts.png)

In Host page, you can manage all the existing hosts in the pool, and add new hosts. The host shows its `Type` (e.g., SINGLE for Native Docker, or SWARM for Docker Swarm), `Status` (active or not) , `Chains` (How many chains running in the host), `Cap` (Capacity) and `Log Config` (level, receiver). Those non-schedulable host will have a grey line

In the Action dropdown menu, you can

* Fillup: Fill a host with chains till it's full `capacity`.
* Clean: Clean all unused chains at the host.
* Config: Set configurations of the host, e.g., `name` or `capacity`.
* Reset: Reset everything on the host, useful when u meet problems of running chains on the host. Notice a host can be `reset` only when there's no inused chains on it.
* Delete: Remove the host from the pool, then the system will not care about it.

### Add Host

You can click the `Add Host` button to add more hosts into the pool.

![dashboard add-host](imgs/dashboard_add_host.png)


## Active Chains

The `Active Chains` page shows all existing running chains in the system, with their Name, Type, Status, Health, Size and Host. Those inused chains will have a grey line.


![dashboard clusters](imgs/dashboard_clusters.png)

Operate on the hosts managed by the system.
In the Action dropdown menu, you can

## Clusters_active
* Start: Start a chain that is not running.
* Stop: Stop a running chain to stopped status.
* Restart: Restart a chain.
* Delete: Delete the chain.
* Release: Release a user-occupuied chain back to the pool, which will be deleted later.

URL: `/clusters?type=active`.
You can click the `Add Chain` button to add more chains into the pool if there are non-full hosts.

Operate on existing running chains in the pool.
![dashboard add-cluster](imgs/dashboard_add_cluster.png)

## Clusters_inused

URL: `/clusters?type=inused`.
## Inused Chains

Operate on user occupied chains in the system.
Filter out those running chains that are occupied by users.

## Clusters_released
## Release History

URL: `/clusters?type=released`.
Record all the user releasing chain history.

See cluster releasing history data.

## Screenshots

![dashboard-main](imgs/dashboard_main.png)
![dashboard-status](imgs/dashboard_status.png)
![dashboard-hosts](imgs/dashboard_hosts.png)
![dashboard-clusters](imgs/dashboard_clusters.png)
![dashboard-add-host](imgs/dashboard_add_host.png)
![dashboard-add-cluster](imgs/dashboard_add_cluster.png)
Binary file modified docs/imgs/dashboard_clusters.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/imgs/dashboard_hosts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/imgs/dashboard_main.png
Binary file not shown.
Binary file added docs/imgs/dashboard_overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/imgs/dashboard_status.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/tutorial_add_chain.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/tutorial_add_host.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
32 changes: 32 additions & 0 deletions docs/terminology.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Terminology


## Overview
* Cluster | Chain: A blockchain with unique access API address, including several peer nodes. May support Hyperledger Fabric, SawthoothLake and Iroha.
* Host: A resource server, usually it can be a naive Docker host or a Swarm cluster.
* Master Node: Running the cello platform, to manage the compute nodes.
* Compute | Worker Node: The servers to have blockchains running inside.



## Hosts

A host is a worker node, which can be a native Docker Host or a Swarm Cluster currently. Usually a host has several properties:

* Name: Alias name for human read convenience.
* Daemon URL: The url for Docker/Swarm Access.
* Capacity: How many chains the host can have at most.
* Logging Level: The default logging level for the chains at this host.
* Logging Type: How to handle those logging messages.
* Schedulable: The chains on this hosts are available to be scheduled to users.
* Autofill: Always automatically fill the hosts full with chains.


## Chain

A chain is typically a blockchain cluster, e.g., a fabric network, with properties including:

* Name: Alias name for human readiness.
* Host: Which host the chain locates.
* Size: How number nodes does the chain have.
* Consensus: What kind of consensus does the chain adopts, depending on the blockchain technology.
55 changes: 55 additions & 0 deletions docs/tutorial.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Tutorial

**Notice: Please have a look at the [terminologies](docs/terminology.md) if you haven't yet.**

After the [installation](docs/install.md), operators can interact with Cello through dashboard.

By default, the dashboard will listen on port `8080` at the Master Node.

## Add a host to the pool

The first time you start Cello, there will be no hosts in the pool. There are two methods to add more hosts into the pool.

* Through the `Overview` page: Click the `+` button after the `Working Host` keyword;
* Through the `Hosts` page: Click the `Add Host` button at the top right corner.

Then you will see a jumped-out dialog to input the setup info.

![dashboard add host](imgs/tutorial_add_host.png)

Suppose it's a Native Docker server to import as a host, input those fields

* Name: docker_host
* Daemon URL: `192.168.7.220:2375` (replace this with ur docker host address)
* Capacity: 5

After successful adding, you can find the `docker_host` shown in the Host page, with 0 chains and Cap is 5.


## Create a chain in the pool

Now we have the free host in the pool, new chains can be create.

Open the Active Chain page, it should be empty now, click the `Add Chain` button on the top right corner, input those fields:

* Name: test_chain

And select the host with the `docker_host`.

![dashboard add chain](imgs/tutorial_add_chain.png)

Click the create button to add a new chain with name `test_chain` into the pool.

Then you can see it at the Active Chain page.

## Use auto-mode to provision chains

It will be difficult if you have numbers of chains to create manually. Cello provides automatic ways to save the time.

* Use the host action dropdown menu: The Fillup button will fill the host full with chains till its capacity, while the Clean button will clean all unused chains from the host.
* Use the Autofill checkbox: In the host configuration, you can find a `Autofill` checkbox, which will automatically watch the host and keep it's full with chains to the capacity.

Try these methods as you like.


If you want to know more advanced operational skills, please continue to the [Dashboard](docs/dashboard.md).

0 comments on commit 143912f

Please sign in to comment.