Skip to content

Commit

Permalink
Update README file and add other files.
Browse files Browse the repository at this point in the history
The README file was cleaned up and restructured in order to improve readability.
The previous file was clutterred with too much information.
  • Loading branch information
afkham committed Jul 1, 2019
1 parent efb9563 commit d58d669
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 22 deletions.
48 changes: 30 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
Build, run, and manage code-first composites on Kubernetes.

- For in-depth information about how to use Cellery, visit [https://wso2-cellery.github.io/](https://wso2-cellery.github.io/)
- To ask questions and get assistance from our community, visit [wso2-cellery.github.io/discuss](https://wso2-cellery.github.io/discuss)
- To learn how to participate in our overall community, visit [our community page](https://wso2-cellery.github.io/about/community)
- To ask questions and get assistance from our community, visit [our community page](docs/community.md)
- To learn how to participate in our overall community, visit [our community page](docs/community.md)

In this README:

Expand Down Expand Up @@ -49,19 +49,36 @@ You can read more about this approach [here](https://wso2-cellery.github.io/phil

![Cellery intro](docs/images/cellery-intro.png)

TODO: Need to explain the diagram
Cellery provides a developer tooling, runtime and a management plane. This allows you to develop,
run and manage your composite microservice applications on Kubernetes.

Cellery is composed of these components:
- Cellery SDK

The SDK allows developers to write cells, build them, run them & manage them.
A cell description file is written using the [Ballerina](https://ballerina.io) programming language.
In a nutshell, this file declares the microservice components that have to be included in the cell,
the relationship between those components, dependencies to other cells, and it also declares the API
that need to be exposed.

A CLI is also part of this SDK, which allows you to build, run, test and manage your cells.

- Cellery Mesh

The mesh provides the wiring & communications medium between cells. Components in a cell cannot invoke
components in other cells directly. Only APIs exposed by the cells are invokable. These interactions are
strictly governed by security policies.

- **CLI** - TODO:
- **Mesh** - TODO:
- **Observability** - TODO:
- Cellery Management

This consists of a management plane, which allows you to observe your cells in the runtime, as well
as other runtime aspects, and it also allows you to manage security and other policies.

---

## Quickstart Guide

The easiest way to setup Cellery is using the 'local' mode which installs a VirtualBox image. For other installation approaches including GCP and Docker for Desktop see [here](docs/installation-options.md)
The easiest way to setup Cellery is using the 'local' mode which installs a VirtualBox image.
For other installation approaches including GCP and Docker for Desktop see [here](docs/installation-options.md)

### Prerequisites
1. kubectl v1.11.x (Execute `kubectl version` command and make sure kubectl client is v1.11.
Expand Down Expand Up @@ -116,7 +133,8 @@ Let's quickly run a sample hello world cell as shown in the diagram below.

![Hello world cell](docs/images/hello-world-architecture.jpg)

The `hello-world-cell` contains one component `hello`. The `hello` component is defined by a container image which is written in Node.js and it is a simple webapp. In the quick start we will be deploying the `hello-world-cell`.
The `hello-world-cell` contains one component `hello`. The `hello` component is defined by a container image which
is written in Node.js and it is a simple webapp. In the quick start we will be deploying the `hello-world-cell`.

Now let's look at the steps required to run this cell.

Expand All @@ -127,7 +145,7 @@ the all 'cellery' commands in any directory other than the home directory.
organization in [docker hub](https://hub.docker.com/u/wso2cellery) and run the cell.

```
$ cellery run wso2cellery/hello-world-cell:0.2.1 -n hello-world-cell
$ cellery run wso2cellery/hello-world-cell:0.2.1 -n hello-world-cell -y
```

You should see the following output:
Expand Down Expand Up @@ -156,12 +174,6 @@ the all 'cellery' commands in any directory other than the home directory.
Dependency Tree to be Used:
No Dependencies
```

Type 'Y' at the following prompt:

```
? Do you wish to continue with starting above Cell instances (Y/n)?
✔ Starting main instance hello-world-cell
✔ Successfully deployed cell image: wso2cellery/hello-world-cell:0.2.1
Expand All @@ -175,7 +187,7 @@ the all 'cellery' commands in any directory other than the home directory.

Please allow a few minutes for completion.

2. Execute `cellery list instances` to check the status of your cell
2. Execute `cellery list instances` to check the status of your cell.

```
$ cellery list instances
Expand All @@ -184,7 +196,7 @@ the all 'cellery' commands in any directory other than the home directory.
hello-world wso2cellery/hello-world-cell:0.2.1 Ready hello--gateway-service 1 30 minutes 48 seconds
```

3. Add the following line to the /etc/hosts file
3. Add the following line to the /etc/hosts file.

```
192.168.56.10 hello-world.com
Expand Down
1 change: 0 additions & 1 deletion docs/cba.md

This file was deleted.

7 changes: 6 additions & 1 deletion docs/community.md
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
TODO
### Cellery community

You can engage with the Cellery community using these channels:

1. [Cellery dev mailing list](mailto:celler-dev@googlegroup.com) - ask questions about Cellery
2. [Report issues](https://github.com/wso2-cellery/sdk/issues) - report issues in Cellery
Binary file modified docs/images/cellery-intro.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions docs/installation-options.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Cellery runtime installation options

### Basic vs. complete installations
When it comes to installing Cellery, you could choose between the basic or complete installation options.
When you run the `cellery setup` command, you can choose to either install the basic or complete version.
The basic installation would require less resources in comparison to the complete installation.
The following table offers a comparison between what you would get.

| Packages | Components | Supported Functionality |
|----------|------------|-------------------------|
| Basic | <ul><li>Cell controller</li><li>Light weight Identity Provider</li></ul>|<ul><li>HTTP(S) cells with local APIs</li><li>Full support for web cells</li><li>Inbuilt security for inter cell and intra cell communication</li></ul> |
| Complete | <ul><li>Cell controller</li><li>Global API manager</li><li>Observability portal and components</li></ul>| <ul><li>Full HTTP(S) cells with local/global APIs</li><li>Full support for web cells</li><li>Inbuilt security for inter cell and intra cell communication</li><li>API management functionality</li><li>observability of cells with rich UIs</li></ul> |

### Local, existing Kubernetes cluster and GCP based installations

You could opt to install Cellery either in local mode, on to an existing Kubernetes cluster or on Google Cloud.
Note that you could combine either the basic or complete installations along with these options.

When you run `cellery setup` in interactive mode, and select `Create`, you can select one of the following options:

* `Local` -> to install locally via a pre-built VM
* `Existing cluster` -> to install into an existing K8s cluster (e.g. Docker for Desktop)
* `GCP` -> to install on Google Cloud

The following links explain in detail the setup options for different environments.

* [1. Local setup](docs/setup/local-setup.md)
* [2. Existing Cluster](docs/setup/existing-cluster.md)
* [3. GCP setup](docs/setup/gcp-setup.md)
2 changes: 1 addition & 1 deletion docs/setup/existing-cluster.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Existing kubernetes setup
Existing Kubernetes cluster
---
Cellery runtime can be installed onto an existing k8s clusters. Cellery runtime requires MySQL server to store the control plane state, and MySQL server can be started within kubernetes with persistent volume mounted or not.

Expand Down
2 changes: 1 addition & 1 deletion docs/writing-a-cell.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
### Developing & running your first cell
## Developing & running your first cell

In this section let's focus on initialize, build, run and push the same hello world cell explained above.
Follow the instructions listed below to create your first cell.
Expand Down

0 comments on commit d58d669

Please sign in to comment.