从微服务到 Serverless | 开源只是开始,终态远没有到来

本文涉及的产品
简介: 开源只是开始,终态远没有到来!从微服务开源,到 Serverless 开源,我们正持续将阿里沉淀的技术能力进行开放。只是这一次不同的地方在于,借助 Serverless 能力的释放,将帮助前端进入一个崭新的时代,只需写几个函数即可实现后端业务逻辑,推动业务快速上线,让整个前端研发效能大幅提升。

21.jpg

开源只是开始,终态远没有到来。

从微服务开源,到 Serverless 开源,我们正持续将阿里沉淀的技术能力进行开放。

只是这一次不同的地方在于,借助 Serverless 能力的释放,将帮助前端进入一个崭新的时代,只需写几个函数即可实现后端业务逻辑,推动业务快速上线,让整个前端研发效能大幅提升。

什么是 Mindway Serverless

自7月初发布 V1.0 以来,Midway Serverless 已经获得了超过 2.7k 的 star。Midway Serverless 是一套面向 Serverless 的解决方案,包括框架、运行时、工具链、配置规范4个部分,这4部分组合之后,就能提供了一些面向 Serverless 体系的特有能力:

1、平台间迁移更容易

通过提供统一的配置规范以及入口抹平机制,让代码在每个平台基本相同;

扩展不同云平台的运行时 API,不仅能加载通用的平台间扩展,也能接入公司内部的私有化部署方案。

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

提供了标准的云平台函数出入参事件定义;

提供了多套和社区前端 React、Vue 等融合一体化开发的方案;

使用了 TypeScript 作为基础语言,方便应用扩展和定义;

提供了完善的 Midway 体系标志性的依赖注入解决方案。

3、生态更轻量和自由

函数体系复用 koa 的生态和 Web 中间件能力,在处理传统 Web 时更加得心应手;

提供 egg 组件复用 egg 插件的生态链,企业级开发链路更简单顺畅;

Midway 体系的装饰器能力统一,让传统 Web 迁移到 Serverless 体系更快更好。

**Midway Serverless @GitHub
https://github.com/midwayjs/midway**

防平台锁定

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

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

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

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

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

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

前端赋能

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

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

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

如今的 Midway Serverless,提供了和前端一体的开发方案,囊括了社区现有的 React、Vue 等生态,也对整个工具链(Webpack,ice scrips,umi 等)做了定制化方案,对不同的场景,比如博客等也提供了开箱即用的解决方案。
image.png
至于详细的前后端一体化能力,我们后续将单独开一篇文章来介绍前端一体化的细节和思考。

应用和函数

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

之前一直在思索,如今的函数式开发的终态和应用的关系到底是什么?

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

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

社区和未来

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

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

期望在未来透过我们对规模化成本、交付速度的持续投入,Node.js/Serverless 体系可以体现出全面的先进性。

生态体系:

image.png

社区合作伙伴:

Koa、Egg、icejs、ykfe/ssr

test

本文作者:

陈仲寅,花名张挺,淘系高级前端技术专家,长期耕耘于 Node.js 技术栈,为淘宝和阿里其他 BU 提供框架和中间件解决方案,阿里集团 Serverless 标准化规范负责人,负责淘宝整体的 Node.js 体系基础建设,解决全栈开发的各种维护和稳定性问题,也同时负责 MidwayJs 系列内部和社区开源产品,包括 Midway、Sandbox、Pandora.js、Injection 等开源产品的开发、维护等工作。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
6月前
|
Cloud Native Java 微服务
GitHub开源3小时,一直被哄抢!800页全彩《微服务架构深度解析》
阿嘴又来给大家分享好书了:王佩华老师的 《微服务架构深度解析:原理、实践与进阶》,也是网上还没开源出来的一本好书!阿嘴会在文末附电子版免费下载方式。
|
4月前
|
运维 Serverless API
四大软件架构:掌握单体、分布式、微服务、Serverless 的精髓
如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。
|
6月前
|
运维 Java Serverless
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
367 0
|
3月前
|
监控 Kubernetes Serverless
解密最受欢迎的开源 Serverless 框架:流量篇
解密最受欢迎的开源 Serverless 框架:流量篇
|
4月前
|
Java 数据库 索引
最强阿里及大厂350道面试大全:框架+数据库+并发+开源+微服务
无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上,而忽略了人事部分,实际上人事面试也会影响到最终的结果,把每一个环节做好,最终的结果自然不会差。
|
4月前
|
监控 Serverless API
Serverless Devs是一个开源的Serverless应用全生命周期管理工具
Serverless Devs是一个开源的Serverless应用全生命周期管理工具
154 1
|
4月前
|
运维 Cloud Native Serverless
MSE Serverless 正式商用,构建低成本高弹性的微服务架构
MSE Serverless 正式商用,构建低成本高弹性的微服务架构
70471 77
|
4月前
|
监控 数据可视化 安全
智慧化工地SaaS平台源码,PC端+APP端+智慧数据可视化大屏端,源码完全开源不封装,自主研发,支持二开,项目使用,微服务+Java++vue+mysql
智慧化工地SaaS平台源码,PC端+APP端+智慧数据可视化大屏端,源码完全开源不封装,自主研发,支持二开,项目使用,微服务+Java++vue+mysql
95 0
|
4月前
|
Cloud Native Java 微服务
倒计时 3 天!与您分享容器和微服务开源7大精彩议题(深圳站)
倒计时 3 天!与您分享容器和微服务开源7大精彩议题(深圳站)
|
4月前
|
运维 Serverless 微服务
Serverless 微服务
Serverless 微服务

相关产品

  • 函数计算