-
Notifications
You must be signed in to change notification settings - Fork 173
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
[Proposal]Dynamic mecha:Let business logic sink to sidecar #166
Comments
Dynamic mecha:让业务逻辑也能下沉到sidecar这是一个需求讨论帖,发出来看看大家觉得这件事值不值得做。 1. 解决什么问题,价值是什么1.1. Reloadable SDK业务系统也有自己的sdk,也会有推动升级难、版本碎片的问题: 比如某中台系统以jar包形式开发了sdk,供上层业务系统使用。他们的feature不算全公司通用,因此没法说服中间件团队、开发到公司统一的sidecar里。 而如果变成这样: 如果开发者不再开发sdk(jar包),改成开发.wasm文件、支持独立升级部署,就没有推动业务方升级的痛苦了,想要升级的时候在运维平台上操作发布即可,不需要app和sidecar重启 1.2. Sandbox as a Service比如某中台java系统是多租户架构,支持不同业务方写groovy。如果一个业务方写的代码内存泄漏,可能导致整个jvm oom。这是稳定性隐患,而jvm内的内存隔离问题是没法解决的。 如果让业务方从写groovy、跑在jvm上,改成写rust/assemblyscript/cpp、构建时自动编译成.wasm,sidecar加载这些.wasm、对每个功能做内存和cpu隔离,就能避免这种稳定性隐患: |
扩展能力所有基础设施都需要,但是是否当下就能这么笃定选择 WASM 目前还存在很多讨论。WASM 本身的标准其实还在讨论中,什么时间能够定下来也存在不确定性,并且每种语言能转换到 WASM 的能力还是差异很大的。 |
@fengmk2 是的,其实现在Layotto的WASM相关功能还属于探索性功能,暂时还没在生产直接用,毕竟从一些公司的历史中我们也都看到了,如果在基础设施中贸然选择一项技术、最终这技术没有在社区推广开,带来的损失是巨大的。 |
This issue has been automatically marked as stale because it has not had recent activity in the last 30 days. It will be closed in the next 7 days unless it is tagged (pinned, good first issue or help wanted) or other activity occurs. Thank you for your contributions. |
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as pinned, good first issue or help wanted. Thank you for your contributions. |
mark |
Dynamic mecha: Let business logic sink to sidecar
This is a feature discussion thread. I put it here to see if everyone thinks this feature is worth doing.
The motivation for this feature is that the multi-tenant system that I was responsible for has always had the pain point of lack of isolation. So I am wondering whether it can be solved through the wasm in Layotto.
1. What problem to solve and what is the value
1.1. Reloadable SDK
The business application also has its own SDK, and there are also problems in sdk upgrades and version fragmentation:
For example, a platform system developed an SDK in the form of a jar package for use by other business systems. Their features are not universal to the entire company, so they cannot persuade the middleware team to develop them into the company's unified sidecar.
And if it becomes like this:
If developers no longer develop sdk (jar package), and develop .wasm files instead, they can upgrade and deploy these files independently, and there will be no pain to push other systems to upgrade their sdk. When you want to upgrade your wasm files, you just do some operation in the PaaS console. There is no need to restart the app and sidecar any more.
1.2. Sandbox as a Service
For example, a multi-tenant system written in Java supports developers from different department to write groovy in it. If memory leak happens, it may cause the entire jvm oom. This is dangerous, and the memory isolation problem in jvm cannot be solved.
If we let the business guys change from writing groovy in jvm to writing rust/assemblyscript/cpp and automatically compiling to .wasm,the sidecar can reload these .wasm during runtime and isolate each function with memory and cpu limit.With this architecture,the isolation problem can be solved.
The text was updated successfully, but these errors were encountered: