01|定义:到底什么是Serverless?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。

一、serverless要解决什么问题

server less 字面解释是较少关心服务端。

1、什么是服务端

在这里插入图片描述

服务端的边界就是上图中的蓝色部分。serverless解决的就是服务端运维的事情。

发展历程:
a、开发和运维的工作都放在一起做,分工不明确
b、开发和运维分工明确,开发专注业务开发,运维处理线上运维等杂事
c、devops时代,运维开发工具和平台,提高运维效率
d、平台化发展的越来越完善,日常的发布上线,查看问题都可以开发自己在平台上处理了
e、未来开发对底层服务端的感知越来越弱,运维关注底层和Iaas的事情。

serverless 就是对服务端运维的极端抽象,对开发透明化,简化服务端运维模型,使得一个新手也可以很快的搭建起来一个web服务。

二、什么是serverless

  • 第一种:狭义serverless(最常见) = serverless computing架构 = Faas架构 = Trigger(事件驱动) + Faas(函数即服务)+ Baas(后端即服务,持久化或第三方服务)= Faas + Baas
  • 第二种:广义serverless = 服务端免运维 = 具备serverless的特性的云服务

在这里插入图片描述

1、狭义serverless

Faas:函数即服务,也叫serverless computing 随时的创建、使用、销毁一个函数。
通常函数的使用过程:代码加到内存也就是实例化, 然后被其他函数调用执行。
Faas中也是一样,函数需要实例化然后被Trigger或者其他函数调用。
二者的最大区别在于runtime,也就是函数的上下文,函数执行时的语境。

Faas的Runtime是预先设置好的,Runtime里面加载的函数和资源都是云厂商提供的,我们可以使用却无法控制。 Faas的runtime是临时的,函数调用完以后,和函数一起销毁。
Faas推荐无状态函数,可以自动扩容和缩容,最小缩小到0。

那需要持久化的数据这么办?下面介绍下Baas
Baas是指具备高可用性和弹性,而且免运维的后端服务,专门支撑Faas的。

MVC中的Model层就使用Baas来解决。以Mysql为例子,后端服务最好将Faas服务操作数据的命令,封装成HTTP的OPENAPI,自己开控制请求API的频率和限流降级。后端服务可以通过连接池和集群的方式进行优化。如下图:
在这里插入图片描述

基于serverless可以把传统的MVC架构转换为 Baas + View + Faas的组合,重构或实现。

这样狭义的serverless 就好理解了。

2、什么是广义的serverless

广义的serverless具备以下的服务特性:
想想NoOps具备哪些条件
1、无需关注服务端的事情(容错、容灾、安全验证等)
2、按使用量付费,大多数场景下节省成本
3、快速迭代和试错能力(多版本控制,CI/CD,灰度等)

广义serverless就是指服务端免运维,也是未来的趋势。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值