阿里 Midway 正式发布 Serverless v1.0,研发提效 50%

1.png

开源为了前端和 Node.js 的发展,Github:https://github.com/midwayjs/midway点击直接跳转点 Star前端

去年阿里提出 Serverless 架构,并利用其新一代研发架构,减小了大量研发人员对基础设施和运维的关注。对前端开发者而言,他们只需写几个函数便可实现后端业务逻辑,推进业务快速上线,让整个前端研发效能提高 50%mysql

在过去的半年里,Midway FaaS 收获了不少同窗的关注,也有很多大企业已经直接开始使用,在此感谢大家。今天,Midway FaaS 将演进为 Midway Serverless,并正式成为 Midway 体系的核心场景,同时正式发布 v1.0 版本。git

v1.0 版本表明着一个正式的版本,能够放心的使用。经过整个 Midway Serverless 新体系,咱们将阿里的 Serverless 能力逐步开放,前端将进入一个崭新的时代。就像两年前说的同样,开源只是开始,终态远没有到来。github

现在的 Serverless,是云厂商各自开疆拓土的黄金时代,也是各位尝试的最好年代,现在 Node.js 在这个时候成为了最佳选择,Midway 体系也当仁不让地站在这十字路口,去朝着引领的方向去行。web

什么是 Midway Serverless

就像前面提到的同样,Midway Serverless 是套面向 Serverless 的解决方案,它包括框架,运行时,工具链,配置规范几个部分,这几部分的组合以后,提供了一些面向 Serverless 体系的特有能力:sql

1. 平台间迁移更容易

  • 经过提供统一的配置规范以及入口抹平机制,让代码在每一个平台基本相同;
  • 扩展不一样云平台的运行时 API,不只能加载通用的平台间扩展,也能接入公司内部的私有化部署方案。

2. 让应用更易维护和扩展

  • 提供了标准的云平台函数出入参事件定义;
  • 提供了多套和社区前端 React、Vue 等融合一体化开发的方案;
  • 使用了 TypeScript 做为基础语言,方便应用扩展和定义;
  • 提供了完善的 Midway 体系标志性的依赖注入解决方案。

3. 生态更轻量和自由

  • 函数体系复用 koa 的生态和 Web 中间件能力,在处理传统 Web 时更加驾轻就熟;
  • 提供 egg 组件复用 egg 插件的生态链,企业级开发链路更简单顺畅;
  • Midway 体系的装饰器能力统一,让传统 Web 迁移到 Serverless 体系更快更好。

上面提到的所有能力,都已经在 Midway Serverless 仓库开源,欢迎点击连接直接跳转点 Star。Github:https://github.com/midwayjs/midway编程

Serverless 和 FaaS

FaaS是 Serverless 架构的其中一种形态,也是这一次 Midway 但愿解决的场景,在 v1.0 以前,咱们在 FaaS 上投入了许多,可是事实上 Serverless 架构很是庞大,FaaS 只是其中的一小部分,基于事件驱动的模型,从微服务(MicroService)这种专一于单一职责与功能的小型功能块演进而来。现在这种更加“代码碎片化”的软件架构范式,相比微服务更加细小的程序单元,给业务代码提供了无与伦比的灵活性。后端

今天按照《福布斯》杂志的统计,在商业和企业数据中心的典型服务器仅提供 5%~15% 的平均最大处理能力的输出,这无疑是一种资源的巨大浪费。而随着 Serverless 架构的出现,让服务提供商提供咱们的计算能力最大限度知足实时需求,这将使咱们能更有效地利用计算资源。服务器

弹性容器,可以知足当前的对资源利用所有憧憬,也是云平台不断追求的目标之一,而对于开发者,不论是弹性的容器,仍是弹性的函数,只要有一套代码能都运行其中,知足业务的需求便可。Midway Serverless 的目标由此而来,从原来的 FaaS 场景开拓到了其余领域,不论是函数仍是新的架构,咱们都将一一知足,并落地业务、反哺社区。架构

防平台锁定

Vendor Lock-in 是每一个使用云平台的的人都会拷问灵魂的问题,Midway Serverless 一开始的初衷就是让一套代码可以运行在不一样的平台和运行时之上,咱们不建议在不了解全貌时去自定义运行时,那很是的危险。事实上,官方的运行时是运行最稳定,也必定是性能最好的,全部的基准跑分都是基于此。

咱们了解的大多数企业在面对 Serverless 的第一个问题就是,个人代码是否是必定得绑死到阿里云,或者腾讯云,aws 等等。

面对这个问题,Midway Serverless 提供了一套 “隐藏式” 入口加上通用化定义来解决这个问题。

针对每一个平台,Midway Serverless 提供了不一样的运行时启动器,用于抹平各个平台的差别,而且经过这些启动器,将各个平台的出入参,以及各个 event 结构,网关的返回格式进行规则化,让用户尽量不感知底层容器以及协议的差别。

2.png

除此以外,Midway Serverless 提供了一套 Spec 定义,来抹平多个平台的差别,同时也能方便的在多个平台间复用相同的工具链和函数逻辑。

3.png

这样,不论是 API Gateway,仍是普通的 HTTP 触发器,都能在统一的编程平面中提供 API,让编写代码变的简单。

TS 与装饰器

函数的写法是十分灵活的,灵活带来了简便,同时也带来了维护成本。由此在函数中引入了 TS,引入了标准和扩展性。

下面的代码,看起来彷佛是 koa 的标准语法,实际上是函数中面向 HTTP 触发器的 API,为了和 Web 栈语法保持一致,经过一些转变,使得参数的获取,调用都尽量无缝衔接,也减小了学习的成本,原有的代码也能更好的迁移过来。

4.png

另外一边,经过装饰器修饰的方法都将变为函数入口,让整个函数的结构变得自由。经过构建的方式,让真实的入口隐藏起来,不只让函数跨多个平台调用,也能够适配到不一样的路由。如上面的示例,在一个文件中入口有多个,能够共享同一份代码,可是实际上每一个函数的调用又是独立的,在管理和后期维护上都提供了便利。

不一样云平台的实际结构是不一样,若是用户须要使用到传统的 event、context 结构, 咱们也给不一样平台触发器提供了不一样的定义,方便代码编写,以下图。

5.png

复用社区生态

上面提到,Midway Serverless 体系的设计的初衷就是复用现有 koa 生态,将多个平台的底层 event 规则化成统一的类 koa API。API 类似的目的是为了整个 koa 的 web 生态,咱们同时也但愿整个 koa 的 middleware 生态均可以复用。以下图,引入了 @koa/cors 。

6.gif

另外一面,Midway 因为出色的 IoC 组件化能力,提供了上层的 egg 基础组建,同时也能复用现有的 egg 插件,让传统企业级开发的能力得以延续,好比下图就是使用 egg-mysql 插件的示例。

7.png

前端赋能

云 + 端的开发体验是 Midway Serverless 目标之一,传统应用的开发,前端和后端分离,多仓库开发,部署分离。就算使用了 Node.js 的胶水层,也没法避免人员开发体感上的割裂。而在 Serverless 体系下,这不是什么问题。

因为后端的大幅简化,再加上云服务的 BaaS 化,让数据聚合,页面渲染变的更容易,也能更快的让前端上手和开发。

一体化慢慢成为了这一块的前端诉求,所谓的一体化,不只仅是传统仓库的融合,也是整个开发模式的演进,从工程体系加上代码,CI/CD 的整套体系重塑的机会。

现在的 Midway Serverless,提供了和前端一体的开发方案,囊括了社区现有的 React、Vue 等生态,也对整个工具链(Webpack,ice scrips,umi 等)作了定制化方案,对不一样的场景,好比博客等也提供了开箱即用的解决方案。

8.png

至于详细的先后端一体化能力,咱们后续将单独开一篇文章来介绍前端一体化的细节和思考。

应用和函数

Serverless 是将来一段时间的方向,也是前端迈向更高层次的铺路砖。

以前一直在思索,现在的函数式开发的终态和应用的关系究竟是什么?

现阶段,咱们的答案是趋于统一,在被无数次的灵魂拷问和用户需求的追问中,咱们得出了这个答案,函数便是应用在当前业务中的最小体现,更简单的来讲,是在最小规格容器中运行应用部分代码。

以后的一段时间,咱们将聚焦于更多平台的接入,以及传统应用的迁移方案上,让以前的用户也能享受到 Serverless 弹性的红利,让企业成本更低,业务上线更容易。

最后

在集团大中台、小前端业务架构日趋深化的背景下,借助集团云原生 Serverless 的发展,去年 Node.js 在业务端到端交付场景上看到了将来。

新一代云 + 端的前台业务交付模式逐渐成为现实,这能够帮助技术团队塑造有业务总体交付能力的特种兵,帮助业务快赢。但其路漫漫仍诸多不完善,为了尽早达到这一步,须要高度聚焦在两个核心问题上:规模化成本和交付速度。

指望在将来透过咱们对规模化成本、交付速度的持续投入,Node.js/Serverless 体系能够体现出全面的先进性。若是你有任何疑问,欢迎加入钉钉交流群:https://qr.dingtalk.com/action/joingroup?code=v1,k1,Lr3HsEsA55Pk8NPqlkhxajuhpcBUpGWa3bRHcW7wwTw=&_dt_no_comment=1&origin=11

Midway Serverless,Go!

体验有礼:5 分钟极速上手 Serverless

“Serverless” 近年来很是火爆。人人都热衷于探讨它出现的意义,但对于如何上手使用或在生产环境落地,却谈之甚少。咱们设计了体验场景,手把手带你 5 分钟上手 Serverless,还送 2000 个阿里云“第一行代码”鎏金限量马克杯!

点击查看详情https://developer.aliyun.com/adc/series/fc/

阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,作最懂云原生开发者的公众号。”

相关文章
相关标签/搜索