rrun+juicefs 进行nodejs 模块的运行

参考图

 

 

 

玩法说明

我们使用ncc 将开发的node 应该直接all-in-one,同时暴露一个默认的npm (cmd )实现,同时直接利用juicefs 的s3 endpoint 上传到s3 中,juicefs 会做为一个
sidecar 挂载到我们的rrun 运行时节点中(可以基于虚拟机,以及容器,都是不错的选择),之后就可以直接运行服务了

参考实例

  • package.json
 
{
  "name": "app-test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "hashids": "^2.2.10",
    "rrun": "^1.0.5"
  },
  "scripts": {
    "app": "rrun myapp/index.js",
    "build":"ncc build app.js -o myapp"
  },
  "devDependencies": {
    "@vercel/ncc": "^0.38.1"
  }
}
  • app.js
    集成hashids 同时暴露一个默认实现
 
const hashids = require("hashids")
module.exports = ()=>{
    let id   = new hashids("demoappaaa",100).encode(2222)
    console.log(id)
}
  • ncc 打包
ncc build app.js -o myapp
  • 运行
yarn app
  • 效果

 

 

说明

rrun 只是一个不错的基于命令行加载node 模块的方法,类似的工具比较多,或者自己写一个,而且如果能加载远端就更好了(同时包含权限控制的,这个可以自己编写),实际上以上玩法就有点serverless 的影子了,一些开源serverless 实现对于服务调用也是使用了类似的方法,github action 中使用nodejs 开发action 也是使用了类似的方法

参考资料

https://www.npmjs.com/package/rrun
https://deno.land/
https://juicefs.com/

posted on 2022-05-28 23:06  荣锋亮  阅读(80)  评论(0编辑  收藏  举报

导航