暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Serverless 和沙箱技术

Jolestar 的博客 2019-03-29
309

做边缘计算的 fastly 公司开源了他们的 lucet 项目,这是一个 WebAssembly 的编译器和 runtime。他们是想用 Wasm 来做一种轻量的容器来跑边缘计算程序。lucet 声称只需要 50 微秒,kilobytes 级的内存成本,而相对 V8 的 Wasm 引擎就需要 5 毫秒 和 megabytes 级别的内存。

去年年底的 GIAC 大会上,我还和 @柳烟堆雪 ,柴树杉聊了这种想法,把区块链上实验过的沙箱,比如 Wasm,Nervos 的基于 RISC-V 的 vm,搬过去做 FaaS 的容器应该不错。没想到这么快就有人实现了。

FaaS 现在各家的做法基本都是根据不同语言做不同的方案,也有试图来用 docker 做 FaaS 的统一方案的,但 docker 还是太重,每次调用启动一次,无论是延迟还是资源消耗都太高。

FaaS 方案里面临的另外一个问题就是应用状态。Function 本身是无状态的,状态要存到外部。但外部存储的接口如何暴露给 Function?Function 中自己初始化数据库连接然后写?这样太重了,也不可控。

而前面说的轻量沙箱机制就能很好解决这两个问题,并且已经在区块链上实验过了。区块链上都是每个交易启动一次 VM,计算完成后要么平台捕获 VM 的状态,要么程序通过外部注入接口将状态存到外部。应用程序只需要和 ABI 打交道,不需要知道操作系统,外部存储等信息,生命周期完全托管给平台。

当然现阶段这些沙箱对编程语言的支持都不太友好,但只要有应用场景和商业前景,这些都不是问题,技术人最爱干的就是造各种轮子了。

github:github.com/fastly/lucet

去年我的微博:http://t.cn/EJ3xmKb

lucet 的例子

docker co-founder 的评价

ps:最近长文写的少,这种短文都发微博上了,很少搬过来。感兴趣的可以关注我的微博 @jolestar

文章转载自Jolestar 的博客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论