Serverless

1. 概念定义

我们先来看下 CNCF 的 Serverless 白皮书里对 Serverless 的一段定义

「Serverless computing refers to the concept of building and running applications that do not require server management. It describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment.」

简单翻译下:无服务器计算是指应用程序构建和运行的时候不需要管理服务器的一个概念。它描述了一种更细粒度的部署模型,该模型是指将包含了一个或多个功能的应用程序上传到平台,然后根据请求按需执行、扩缩容和计费

这里提到两个比较重要的点:不需要管理服务器,按需执行/扩缩容/计费。在 Serverless 也提了两个新的领域模型,即 BaaS(Backend as a Service)和 FaaS(Function as a Service)。BaaS 是指后端即服务,例如存储、鉴权、数据访问等,能让业务同学快速基于后端服务实现逻辑。而 FaaS 是一种全新的模式,希望业务同学去写业务逻辑,无需关心逻辑执行的载体。

对于云厂商来说,他们一方面是要提供丰富的 BaaS API 的能力,这样可以支持云上各种各样的应用;另一方面还要基于 IaaS/PaaS/CaaS 等基础能力包装成 FaaS 服务为我们的 Serverless 应用提供托管能力。

对于开发者,在这种模式下可以做到零运维按量计费。零运维是指客户只需要编写代码构建应用,无需关注同质化的、负担繁重的基于服务器等基础设施的开发、运维、安全、高可用等工作;而且平台会进行基于流量的自动弹性伸缩,让用户无需为资源使用提前进行容量规划;  按量计费可以让企业使用成本得有效降低,无需为闲置资源付费。

Serverless其实无需再去定义,他本身就已经非常清晰明确:“Server+less”,他是一个理念,核心思想就是你不再需要关注Server,作为对比的是IaaS时代,购买服务器,安装各种工具,再在上面开发自己的业务。

Server不会消失,而是让一般的开发者不需要再关注Server,这意味着【智能弹性】、【快速交付】、【更低成本】,这也是Serverless相关产品的典型特性。

2. 适用场景

在白皮书里推荐的应用场景有如下几种类型:

  • 异步,并发,独立的工作单元
  • 某些特殊需求,容量不固定不可预测
  • 无状态,短暂的,不需要瞬间冷启动时间
  • 业务驱动,需要快速迭代

例如下面的这些场景:

  • 多媒体后置处理/数据库更改或更改数据捕获/物联网传感器输入消息/聊天机器人
  • 大规模流处理/批量任务和定时任务/ CI 服务
  • 小程序后端服务/ HTTP REST APIs 和 Web 应用服务/移动后端服务/ IoT 后端服务

3. 微服务和Serverless的关系

现在我们聊到微服务,会想到背后的技术框架,比如Spring Cloud、Dubbo,但是其实微服务这个词已经远远超出了纯技术框架的范畴,他背后也有核心的支撑思想,包括:

  • 1、微服务虽然一定程度上增加了技术复杂度,但是在一定规模下他会降低系统复杂度和组织复杂度
  • 2、现代业务系统越来越复杂,很多业务系统会基于领域驱动设计(DDD)设计,微服务其实是DDD背后的支撑技术;

所以如果到了Serverless时代就没法用微服务,我相信很多开发者会觉得不知所措,或者说会”抵触未来“,因为他们会觉得有人给我描绘了一个未来,但是完全不知道怎么走过去。

抛开各种具体的技术实现,回到背后的理念,Serverless代表的是一种无需关注服务器,降低使用云计算服务的理念,所以它和微服务其实不冲突,完全可以共存。在阿里云的SAE中,集成了微服务的能力(依托于阿里云产品MSE),这意味着:

  • 1、部署在SAE这类Serverless平台上的应用,完全可以继续使用微服务开发,不需要经过任何改造
  • 2、在SAE上甚至提供了很多微服务能力增强,包括了注册中心托管、服务治理等等,进一步降低开发者使用微服务的门槛和负担

所以在Serverless类的PaaS产品上,Serverless和微服务不再是对立的,开发者完全可以继续使用微服务技术开发,同时也可以享受Serverless理念所带来的【智能弹性】、【更低成本】等。

4. BaaS化

上面提到的都是”计算类“Serverless产品等,但是我们都知道,开发过程中不可能只有计算逻辑,还有很多其他依赖,比如存储、中间件等。BaaS(Backend-as-a-Service,后端即服务)类产品,提供基于API的服务,这些API一般都是按需使用、免运维、自动扩缩容的,所以他们也是Serverless的。

典型的比如阿里云的OSS,具有与平台无关的 RESTful API 接口,可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

值得一提还有阿里同学非常熟悉的中间件,当前也在进行4.0技术架构升级,全面BaaS化,统一运维、交付、计费、支持模式,开箱即用,产品化程度持续提升。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoshun007~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值