chore(make):
make license
to add licnese headers for all code files. (#572)
- make license
Signed-off-by: seeflood zhou.qunli@foxmail.com
- add doc
Signed-off-by: seeflood zhou.qunli@foxmail.com
Layotto(/leɪˈɒtəʊ/) 是一款使用 Golang 开发的应用运行时, 旨在帮助开发人员快速构建云原生应用,帮助应用和基础设施解耦。它为应用提供了各种分布式能力,比如状态管理,配置管理,事件发布订阅等能力,以简化应用的开发。 Layotto 以开源的 MOSN 为底座,在提供分布式能力以外,提供了 Service Mesh 对于流量的管控能力。
Layotto (L8): To be the next layer of OSI layer 7
查看中文版本
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. 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 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 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 with the magic power of WebAssembly.
Features
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 provided by Layotto. No coding changes are required, which greatly improves the portability of the program.
Quickstarts
Get started with Layotto
You can try the configuration demo with apollo to get started with Layotto.
For other features,see the demos below:
API
Extendability
Actuator
Traffic Control
Write your bussiness logic using WASM
As a FaaS(Serverless) runtime (Layotto + WebAssembly + k8s)
Service Mesh
Presentations
Landscapes
Layotto enriches the CNCF CLOUD NATIVE Landscape.
Community
Contact Us
[comment]: //mosn/layotto/tree/main/<>(|💬[Wechat](https:/www.wechat.com/en/)|ScantheQRcodebelowandshewillinviteyouintothewechatgroup
)
<imgsrc=”https://www.gitlink.org.cn/api/mosn/layotto/raw/img/wechat-group.jpg?ref=main"height="200px">)(| 💬 [Wechat](https://www.wechat.com/en/) | Scan the QR code below and she will invite you into the wechat group
How to contribute
Where to start? Check “Community tasks” list!
As a programming enthusiast , have you ever felt that you want to participate in the development of an open source project, but don’t know where to start? In order to help everyone better participate in open source projects, our community will regularly publish community tasks to help everyone learn by doing!
Document Contribution Guide
Component Development Guide
Layotto Github Workflows
Layotto Commands Guide
Layotto Contributor Guide
Contributors
Thank y’all!
Design Documents
Actuator Design Doc
Configuration API with Apollo
Pubsub API and Compability with Dapr Component
RPC Design Doc
Distributed Lock API Design
FaaS Design
FAQ
Difference with dapr?
dapr is an excellent Runtime product, but it lacks the ability of Service Mesh, which is necessary for the Runtime product used in production environment, so we hope to combine Runtime with Service Mesh into one sidecar to meet more complex production requirements.