Serverless 原生框架:Malagu Framework

背景

早期,Serverless Framework 的定位是偏运维侧,通过 Yaml 文件定义规则,Serverless Framework 负责部署到对应的云厂商。Serverless Framework 提供了一种方案去适配不同的云厂商。

最近 Serverless 提供了一个 Serverless Component 方案,这个方案更面向开发侧。在同一时间,Malagu Framework 也想到了 Component 类似的方案。

Malagu Framework 一开始定位就是偏开发侧的。Malagu Component 与 Serverless Component 解决的问题是一样的:适配不同平台的服务(阿里云函数计算、阿里云 oss、腾讯云函数、aws lambda 等等)和封装通用的业务代码。

Malagu Component 与 Serverless Component 设计上也存在不同的地方,后面可以单独写一篇文章介绍一下。

Malagu 由 CLI + Framework 组成,其中 Framework 本身就是基于 Malagu Component 实现。

简介

Malagu 是基于 TypeScript 的 Serverless First、可扩展和组件化的应用框架。

在 Malagu 的世界里一切皆组件,应用也是组件:根组件。高级组件可以基于低阶组件实现,组件的编排形成我们的应用。

Malagu 组件的实现就是一个标准的 node module。只需要将 Malagu 组件发布到 npmjs 仓库,就可以与大家分享你自定义的组件。

特点

  1. Serverless First,默认提供适配 Serverless 最佳实践,也支持运行在服务器上
  2. 支持前后端一体化,基于 JSON RPC,前端像调用本地方法一样调用后端方法
  3. 前后端支持 rpc 和 mvc 两种通信形式,mvc 可以满足传统纯后端 rest 风格接口开发需要
  4. 支持 typeorm,事务 AOP 和事务传播行为,也可以集成其他的开源 ORM 框架
  5. 提供类 spring security 的认证和授权,现在已经集成了开箱即用的 authing 平台,实现了 oidc 认证和授权
  6. 组件化,框架本身也是基于组件化实现,将复杂大型项目拆解成一个个 Malagu 组件,提高了代码的复用能力、降低了代码维护难度
  7. 依赖注入和 AOP,抽象了一套前后端统一的依赖注入,依赖注入的体验与 spring 差不多
  8. 命令行工具插件化,默认提供初始化、运行、构建、部署能力,通过插件可以扩展命令行的能力
  9. 零配置,提供了一套默认行为,你也可以通过 Malagu 配置文件覆盖默认行为
  10. 支持适配任意前端框架,目前集成了 React 前端框架,另外,UI 框架集成了 antd、md 等

快速体验

  1. 创建应用


先安装命令行,然后初始化一个模板:

npm install -g yarn
npm install -g malagu
malagu init

Serverless 原生框架:Malagu Framework

  1. 本地运行应用
malagu serve

Serverless 原生框架:Malagu Framework

  1. 本地调试应用


使用 vscode 单步调试工具。

Serverless 原生框架:Malagu Framework

  1. 部署应用
malagu deploy

Serverless 原生框架:Malagu Framework

相关链接

上一篇:Web缓存:通过Java实现更好的经济战略


下一篇:开发函数计算的正确姿势——支持 ES6 语法和 webpack 压缩