[转载学习] Serverless的发展

203 阅读3分钟

概述

Serverless作为一种通用Paas服务,其实已经发展了很久了,从各种信息源可以看到,Serverless正逐渐走向成熟期,本文希望参考资料,并总结Serverless的发展历程。

内容

Serverless的发展阶段

事件驱动Faas

此时的Faas本质上是一个HTTP服务,Faas框架负责解析或代理CloudEvent请求,用户只需要写好一个Handler,并将Handler交给Faas框架托管,就能实现一个事件驱动的服务,典型的事件有:

  • MQ消费
  • Timer
  • HTTP请求

Serverless/Faas 应用

这个阶段,Faas其实需要支持多种使用方式

  1. 指定语言和指定框架

Faas框架内部支持一些主流语言的主流框架,主流框架下又支持多个大版本,用户只要用了这些主流框架,迁移到Faas的成本就非常低。

  1. Custom Runtime

用户可以自定义使用任何语言,任何运行时版本,此时容器的镜像为Debian等通用镜像。Custom Runtime必须实现为一个HTTP Server,而且必须遵从Faas的相关约定,例如监听的端口,Connection需要设置为Keep-Alive,HTTP Server需要在120秒内启动完毕

Serverless App Engine

是一种面向大型微服务场景的Serverless,阿里云解决的就是Java微服务上云的问题,以Paas服务的形式帮助Java应用上Serverless

Midway Serverless

准确来说,Midway是一个以nodejs为基础的前后端一体的Faas开发框架,前端一般基于React,后端直接使用Baas服务,同时它支持离开Faas进行调试。本质上Midway把应用和Faas进行了最强的绑定,限定了你的Faas平台必须支持Midway框架才能正常运行,同时限定了你的开发框架必须使用Midway。这种极致绑定带来的是极致的开发效率。

Serverless 容器服务

这里的Serverless就和Faas关系不那么大了,它指的是一种Kubernetes的托管方式,这种托管方式是Serverless的,即Kubernetes用户感知不到Node的概念,也无需对Node进行运维

边缘函数计算

主要用于IoT设备,这些设备支持运行本地Faas,拥有本地内存,他们会对边缘数据进行筛选、简单计算等工作,然后才将数据上传到云端的Faas

Serverless GPU

主流的应用是GPU在线推理,因为这个特别符合Serverless的无状态场景。AWS Lambda已经广泛支持

Serverless DB

存储的Serverless化正在快速进行中,阿里云已经上线了PolarDB Serverless,那么它跟普通的云原生DB有什么区别呢?

  1. 计算和内存彻底解耦,用户想升级哪个就升级哪个,不需要绑定升级
  2. 资源彻底池化,用户使用的是一个DB的租户,一群用户共享一个大的DB实例
  3. 内存进一步池化,形成三层池化(内存与计算/存储),成本下降

Serverless开发工具

本地端Devs工具

本质上是基于开源项目和nodejs开发的类VSCode IDE,支持函数本地调试、远程开发和一键部署等功能

Web端Devs工具

直接在Faas中进行开发,随时开发,随时部署

Serverless 工作流

正如其名,即Serverless + 工作流

  • Serverless指的是,为了实现一个场景,你拆分成了多个Faas,但是你希望能系统地管理这些Faas
  • 工作流帮助你进行函数编排,本质上是通过yaml进行编程
  • 直观上来看,这种开发模式体验可能并不好

AWS application composer

组装式研发Serverless,目前还处于初级阶段

参考

阿里云张建锋:核心云产品全面 Serverless 化

年终盘点一 | 云原生的 2022 年:降本提效、全面 Serverless 化

阿里云 Serverless 应用

Custom Runtime

安装Serverless Devs

Midway Serverless一体化应用开发方案

设备上云数据筛选

AWS application composer

PolarDB Serverless实现了哪些突破