Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add docs for istio integration #720

Merged
merged 12 commits into from
Jul 14, 2022
49 changes: 24 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,55 +16,60 @@

Layotto(/leɪˈɒtəʊ/) is an application runtime developed using Golang, which provides various distributed capabilities for applications, such as state management, configuration management, and event pub/sub capabilities to simplify application development.

Layotto is built on the open source data plane [MOSN](https://github.com/mosn/mosn). In addition to providing distributed building blocks, Layotto can also serve as the data plane of Service Mesh and has the ability to control traffic.
Layotto is built on the open source data plane [MOSN](https://github.com/mosn/mosn) .In addition to providing distributed building blocks, Layotto can also serve as the data plane of Service Mesh and has the ability to control traffic.

## Motivation

Layotto aims to combine [Multi-Runtime](https://www.infoq.com/articles/multi-runtime-microservice-architecture/) with Service Mesh into one sidecar. No matter which product you are using as the Service Mesh data plane (e.g. MOSN,Envoy or any other product), you can always attach Layotto to it and add Multi-Runtime capabilities without adding new sidecars.

For example, by adding Runtime capabilities to MOSN, a Layotto process can both [serve as the data plane of istio](https://mosn.io/layotto/#/en/start/istio/start.md) and provide various Runtime APIs (such as Configuration API, Pub/Sub API, etc.)
For example, by adding Runtime capabilities to MOSN, a Layotto process can both [serve as the data plane of istio](https://mosn.io/layotto/#/en/start/istio/) and provide various Runtime APIs (such as Configuration API, Pub/Sub API, etc.)

In addition, we were surprised to find that a sidecar can do much more than that. We are trying to make Layotto even the runtime container of FaaS (Function as a service) and [reloadable sdk](https://github.com/mosn/layotto/issues/166) with the magic power of [WebAssembly](https://en.wikipedia.org/wiki/WebAssembly).
In addition, we were surprised to find that a sidecar can do much more than that. We are trying to make Layotto even the runtime container of FaaS (Function as a service) with the magic power of [WebAssembly](https://en.wikipedia.org/wiki/WebAssembly) .

## Features

- Service Communication
- Service Governance.Such as traffic hijacking and observation, service rate limiting, etc
- [As the data plane of istio](https://mosn.io/layotto/#/en/start/istio/start)
- [As the data plane of istio](https://mosn.io/layotto/#/en/start/istio/)
- Configuration management
- State management
- Event publish and subscribe
- Health check, query runtime metadata
- [FaaS model based on WASM and Runtime](docs/en/start/faas/start.md)
- [FaaS model based on WASM and Runtime](https://mosn.io/layotto/#/en/start/faas/start.md)

## Project Architecture

As shown in the architecture diagram below, Layotto uses the open source MOSN as the base to provide network layer management capabilities while providing distributed capabilities. The business logic can directly interact with Layotto through a lightweight SDK without paying attention to the specific back-end infrastructure.

Layotto provides sdks in various languages. The sdk interacts with Layotto through grpc. Application developers only need to specify their own infrastructure type through the configuration file [configure file](./configs/runtime_config.json) provided by Layotto. No coding changes are required, which greatly improves the portability of the program.
Layotto provides SDKs in various languages. The sdk interacts with Layotto through grpc. Application developers only need to specify their own infrastructure type through the configuration file [configure file](./configs/runtime_config.json) provided by Layotto. No coding changes are required, which greatly improves the portability of the program.

![Architecture](https://raw.githubusercontent.com/mosn/layotto/main/docs/img/runtime-architecture.png)

## Quickstarts

### Get started with Layotto

You can try the [configuration demo with apollo](https://mosn.io/layotto/#/en/start/configuration/start-apollo.md) to get started with Layotto.

For other features,see the demos below:
You can try the quickstart demos below to get started with Layotto. In addition, you can experience the [online laboratory](https://mosn.io/layotto/#/en/start/lab)

### API

| API | status | quick start | components | desc |
| -------------- | :----: | :-------------------------------------------------------------------: | :-----------------------------------------------------------------------: | -------------------------------------------------------------- |
| State | ✅ | [demo](https://mosn.io/layotto/#/en/start/state/start) | [list](https://mosn.io/layotto/#/en/component_specs/state/common) | Write/Query the data of the Key/Value model |
| Pub/Sub | ✅ | [demo](https://mosn.io/layotto/#/en/start/pubsub/start) | [list](https://mosn.io/layotto/#/en/component_specs/pubsub/redis) | Publish/Subscribe message through various Message Queue |
| Service Invoke | ✅ | [demo](https://mosn.io/layotto/#/en/start/rpc/helloworld) | [list](https://mosn.io/layotto/#/en/start/rpc/helloworld) | Call Service through MOSN (another istio data plane) |
| Config | ✅ | [demo](https://mosn.io/layotto/#/en/start/configuration/start-apollo) | [list](https://mosn.io/layotto/#/en/component_specs/configuration/apollo) | Write/Query/Subscribe the config through various Config Center |
| Lock | ✅ | [demo](https://mosn.io/layotto/#/en/start/lock/start) | [list](https://mosn.io/layotto/#/en/component_specs/lock/common) | Distribute lock implementation |
| Sequencer | ✅ | [demo](https://mosn.io/layotto/#/en/start/sequencer/start) | [list](https://mosn.io/layotto/#/en/component_specs/sequencer/common) | Distribube auto increment ID generator |
| File | ✅ | TODO | [list](https://mosn.io/layotto/#/en/component_specs/file/oss) | File API implementation |
| Binding | ✅ | TODO | TODO | Transparent data transmission API |
| API | status | quick start | desc |
| -------------- | :----: | :-------------------------------------------------------------------: | -------------------------------------------------------------- |
| State | ✅ | [demo](https://mosn.io/layotto/#/en/start/state/start) | Write/Query the data of the Key/Value model |
| Pub/Sub | ✅ | [demo](https://mosn.io/layotto/#/en/start/pubsub/start) | Publish/Subscribe message through various Message Queue |
| Service Invoke | ✅ | [demo](https://mosn.io/layotto/#/en/start/rpc/helloworld) | Call Service through MOSN (another istio data plane) |
| Config | ✅ | [demo](https://mosn.io/layotto/#/en/start/configuration/start-apollo) | Write/Query/Subscribe the config through various Config Center |
| Lock | ✅ | [demo](https://mosn.io/layotto/#/en/start/lock/start) | Distributed lock API |
| Sequencer | ✅ | [demo](https://mosn.io/layotto/#/en/start/sequencer/start) | Generate distributed unique and incremental ID |
| File | ✅ | TODO | File API implementation |
| Binding | ✅ | TODO | Transparent data transmission API |


### Service Mesh

| feature | status | quick start | desc |
| ------- | :----: | :----------------------------------------------------: | -------------------------- |
| istio | ✅ | [demo](https://mosn.io/layotto/#/en/start/istio/) | As the data plane of istio |

### Extendability

Expand Down Expand Up @@ -102,12 +107,6 @@ For other features,see the demos below:
| Rust | TODO | TODO | Compile Code written by Rust to \*.wasm and run in Layotto And Scheduled by k8s. |
| AssemblyScript | TODO | TODO | Compile Code written by AssemblyScript to \*.wasm and run in Layotto And Scheduled by k8s. |

### Service Mesh

| feature | status | quick start | desc |
| ------- | :----: | :----------------------------------------------------: | -------------------------- |
| istio | ✅ | [demo](https://mosn.io/layotto/#/en/start/istio/start) | As the data plane of istio |

## Presentations

- [Layotto - A new chapter of Service Mesh and Application Runtime](https://www.youtube.com/watch?v=5v8gTrFUDk8)
Expand Down
6 changes: 4 additions & 2 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@
- [Hello World](en/start/rpc/helloworld.md)
- [Dubbo JSON RPC](en/start/rpc/dubbo_json_rpc.md)
- [API plugin: register your own API](en/start/api_plugin/helloworld.md)
- Integrate with istio
- [As a data plane in istio](en/start/istio/start.md)
- As the data plane of istio
- [Integrate with istio 1.10.6](en/start/istio/)
- [Integrate with istio 1.5.x](en/start/istio/start.md)
- Traffic intervention on the 4th layer network
- [Dump TCP Traffic](en/start/network_filter/tcpcopy.md)
- Flow Control on the 7th layer network
Expand All @@ -27,6 +28,7 @@
- [Health check and metadata query](en/start/actuator/start.md)
- [Run business logic in Layotto using WASM](en/start/wasm/start.md)
- [FaaS model based on WASM and Runtime](en/start/faas/start.md)
- [Online lab](en/start/lab.md)
- Developer guide
- Building blocks
- [File API](en/building_blocks/file/file.md)
Expand Down
43 changes: 21 additions & 22 deletions docs/en/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ Layotto is built on the open source data plane [MOSN](https://github.com/mosn/mo

Layotto aims to combine [Multi-Runtime](https://www.infoq.com/articles/multi-runtime-microservice-architecture/) with Service Mesh into one sidecar. No matter which product you are using as the Service Mesh data plane (e.g. MOSN,Envoy or any other product), you can always attach Layotto to it and add Multi-Runtime capabilities without adding new sidecars.

For example, by adding Runtime capabilities to MOSN, a Layotto process can both [serve as the data plane of istio](https://mosn.io/layotto/#/en/start/istio/start.md) and provide various Runtime APIs (such as Configuration API, Pub/Sub API, etc.)
For example, by adding Runtime capabilities to MOSN, a Layotto process can both [serve as the data plane of istio](en/start/istio/) and provide various Runtime APIs (such as Configuration API, Pub/Sub API, etc.)

In addition, we were surprised to find that a sidecar can do much more than that. We are trying to make Layotto even the runtime container of FaaS (Function as a service) and [reloadable sdk](https://github.com/mosn/layotto/issues/166) with the magic power of [WebAssembly](https://en.wikipedia.org/wiki/WebAssembly) .
In addition, we were surprised to find that a sidecar can do much more than that. We are trying to make Layotto even the runtime container of FaaS (Function as a service) with the magic power of [WebAssembly](https://en.wikipedia.org/wiki/WebAssembly) .

## Features

- Service Communication
- Service Governance.Such as traffic hijacking and observation, service rate limiting, etc
- [As the data plane of istio](en/start/istio/start)
- [As the data plane of istio](en/start/istio/)
- Configuration management
- State management
- Event publish and subscribe
Expand All @@ -47,22 +47,27 @@ Layotto provides sdk in various languages. The sdk interacts with Layotto throug

### Get started with Layotto

You can try the [configuration demo with apollo](en/start/configuration/start-apollo.md) to get started with Layotto.

For other features,see the demos below:
You can try the quickstart demos below to get started with Layotto. In addition, you can experience the [online laboratory](en/start/lab)

### API

| API | status | quick start | components | desc |
| -------------- | :----: | :-------------------------------------------------------------------: | :-----------------------------------------------------------------------: | -------------------------------------------------------------- |
| State | ✅ | [demo](https://mosn.io/layotto/#/en/start/state/start) | [list](https://mosn.io/layotto/#/en/component_specs/state/common) | Write/Query the data of the Key/Value model |
| Pub/Sub | ✅ | [demo](https://mosn.io/layotto/#/en/start/pubsub/start) | [list](https://mosn.io/layotto/#/en/component_specs/pubsub/redis) | Publish/Subscribe message through various Message Queue |
| Service Invoke | ✅ | [demo](https://mosn.io/layotto/#/en/start/rpc/helloworld) | [list](https://mosn.io/layotto/#/en/start/rpc/helloworld) | Call Service through MOSN (another istio data plane) |
| Config | ✅ | [demo](https://mosn.io/layotto/#/en/start/configuration/start-apollo) | [list](https://mosn.io/layotto/#/en/component_specs/configuration/apollo) | Write/Query/Subscribe the config through various Config Center |
| Lock | ✅ | [demo](https://mosn.io/layotto/#/en/start/lock/start) | [list](https://mosn.io/layotto/#/en/component_specs/lock/common) | Distribute lock implementation |
| Sequencer | ✅ | [demo](https://mosn.io/layotto/#/en/start/sequencer/start) | [list](https://mosn.io/layotto/#/en/component_specs/sequencer/common) | Distribube auto increment ID generator |
| File | ✅ | TODO | [list](https://mosn.io/layotto/#/en/component_specs/file/oss) | File API implementation |
| Binding | ✅ | TODO | TODO | Transparent data transmission API |
| API | status | quick start | desc |
| -------------- | :----: | :-------------------------------------------------------------------: | -------------------------------------------------------------- |
| State | ✅ | [demo](https://mosn.io/layotto/#/en/start/state/start) | Write/Query the data of the Key/Value model |
| Pub/Sub | ✅ | [demo](https://mosn.io/layotto/#/en/start/pubsub/start) | Publish/Subscribe message through various Message Queue |
| Service Invoke | ✅ | [demo](https://mosn.io/layotto/#/en/start/rpc/helloworld) | Call Service through MOSN (another istio data plane) |
| Config | ✅ | [demo](https://mosn.io/layotto/#/en/start/configuration/start-apollo) | Write/Query/Subscribe the config through various Config Center |
| Lock | ✅ | [demo](https://mosn.io/layotto/#/en/start/lock/start) | Distributed lock API |
| Sequencer | ✅ | [demo](https://mosn.io/layotto/#/en/start/sequencer/start) | Generate distributed unique and incremental ID |
| File | ✅ | TODO | File API implementation |
| Binding | ✅ | TODO | Transparent data transmission API |


### Service Mesh

| feature | status | quick start | desc |
| ------- | :----: | :----------------------------------------------------: | -------------------------- |
| istio | ✅ | [demo](en/start/istio/) | As the data plane of istio |

### Extendability

Expand Down Expand Up @@ -100,12 +105,6 @@ For other features,see the demos below:
| Rust | TODO | TODO | Compile Code written by Rust to \*.wasm and run in Layotto And Scheduled by k8s. |
| AssemblyScript | TODO | TODO | Compile Code written by AssemblyScript to \*.wasm and run in Layotto And Scheduled by k8s. |

### Service Mesh

| feature | status | quick start | desc |
| ------- | :----: | :----------------------------------------------------: | -------------------------- |
| istio | ✅ | [demo](https://mosn.io/layotto/#/en/start/istio/start) | As the data plane of istio |

## Presentations

- [Layotto - A new chapter of Service Mesh and Application Runtime](https://www.youtube.com/watch?v=5v8gTrFUDk8)
Expand Down
Loading