Serverless 从入门到入门

本贴最后更新于 1220 天前,其中的信息可能已经时移世易

什么是 Serverless?

从字面意义上讲 Serverless 是无服务器的意思,无服务器并不代表服务器就没有了。根据 CNCF 定义,Serverless 是指构建和运行不需要管理服务器的应用程序的概念。更明确的说是开发人员不用再关注服务器,包括软件应用运行时涉及到的服务器状态、资源(CPU、内存、磁盘、及网络)及数量,这些软件应用运行时所需要的计算资源都统一交给底层的云计算平台动态提供,属于一种软件系统架构的思想和方法。

Serverless 的发展历史

发轫之始

2012 年云基础设施服务提供商 Iron.io 的副总裁 Ken 提出软件的未来 ,首次提出来 Serverless 概念, 以下是原文的一段摘录:

Even with the rise of cloud computing, the world still revolves around servers. That won’t last, though. Cloud apps are moving into a serverless world, and that will bring big implications for the creation and distribution of software and applications.

初出茅庐

AWS Lambda 产品的发布可以认为是 Serverless 的里程碑,在此之前 Serverless 几乎是停留在概念期,直到 14 年 Lambda 发布,让 " Serverless" 这一范式提高到一个全新的层面,为云中运行的应用程序提供了一种全新的系统体系架构,Serverless 开始正式走向云计算的舞台。

崭露头角

在 AWS 发布 Lambda 之后,众多 IaaS 及 Pass 厂商争相入市,Google Cloud Functions, Azure Funcions, IBM OpenWhisk,阿里云函数计算,短短数年时间 Serverless 产品已遍地开花。

未来已来

随着容器技术,IoT,5G,区块链等技术的快速发展, 技术上对去中心化,轻量虚拟化,细粒度计算等技术需求愈发强烈,而 Serverless 必将借势迅速发展,未来 Serverless 将在云计算的舞台上大放异彩!

Serverless 的产品与架构

说起 Serverless 产品,代表的是无需理解、管理服务器,按需使用,按量付费。基于 Serverless 思想,各大云计算厂商都相继推出了各自的 Serverless 产品。其中比较有代表性的有 AWS lambda、Azure Function、Google Cloud Functions、阿里云函数计算等。其中典型的计算产品,就是云函数这种状态。

云函数,或者称为函数即服务 (Function as a Service),它和后端即服务 (Backend as a Service) 一起,都可以叫做 Serverless 产品。通过组合使用这些产品,开发者可以构建出符合自身业务的 Serverless 架构。

而说起 Serverless 架构,代表的是利用 Serverless 形态的产品构建出来的架构,这种架构完全依托于云厂商或云平台。Serverless 架构的出现,让开发者不用过多地考虑传统的服务器采购、硬件运维、网络拓扑、资源扩容等问题,可以将更多的精力放在业务的拓展和创新上。

Serverless 的价值

Serverless 的价值体现可以从以下几个角度来看。

首先 Serverless 产品使用户不用再考虑购买、维护服务器以及相关的环境配置。

再者 Serverless 产品具有完全自动化的弹性扩缩容,使用的计算资源随着业务的高低峰动态扩缩,避免资源浪费。

还有由 Serverless 产品完全自动化的扩缩容带来的全新的按量计费的模式。用户只需要按实际使用计算资源进行付费,不存在空闲资源所产生的额外费用。

根据以上特性,Serverless 给用户带来了以下具体的商业价值:

  1. 降低运维成本。
    Serverless 使得应用与服务器解耦,不需要预估资源,也不需要进行服务器购买及配置,使得底层的运维工作量进一步降低,项目上线之后,也不用担心服务器的运维,将这些任务都交给云厂商负责。
  2. 降低运营成本。
    用户在使用 Serverless 产品时,应用只有在请求需要处理或事件触发时才会被加载,在空闲状态下 Serverless 架构的应用成本并不占用计算资源,所以用只需要为处理请求的计算资源付费,无需担心空间时段资源浪费。
  3. 高扩展能力。
    完成自动化的扩缩容使用户不再担心业务高峰时期资源不够用,也不再担心业务低峰时期大量的空闲资源浪费。
  4. 快速上线。
    Serverless 在部署很有优势,可以很轻松的实现上线。因为 Serverless 内部相当于有内建自动化部署功能,并且里面都是由云厂商提供的功能,每次我们写完业务代码后,只需要运行下即可。
  5. 快速试错。
    利用 Serverless 架构的简单运营、低成本及快速上线能力,可以快速尝试业务的新形态、新功能,无需为资源扩容而担心。
  6. 更简单的管理。
    随着 Serverless 产品的丰富,Serverless 架构会比其它架构更简单,更少的组件意味着更少的管理开销。
  7. 系统的安全性更高。
    要保持服务器一直运行不是件容易的事情,并且还需要考虑黑客不同类型的攻击,但是有 Serverless 后,我们不需要考虑这些问题了,这些问题都交由第三方云厂商来解决。
  8. "绿色" 计算。
    据统计,商业和企业数据中心的典型服务器仅提供 5%~15% 的平均最大处理能力的输出,本质上这是对社会资源的一种浪费。而在 Serverless 架构下,提供商将提供更细力度的计算能力最大限度满足实时需求,资源利用率将大幅度提升,可以认为相对 IaaS 与 PaaS,Serverless/FaaS 是一种 "绿色" 计算。

Serverless 的不足

  1. 完全会依赖于第三方服务。
    如果我们所有和应用相关的服务放在第三方服务上的话,就可能会涉及到安全性问题,当我们自己使用 Serverless 架构的时候,那么我们就已经和云厂商绑定了,如果这个时候我们将服务迁到别的云厂商上并不是那么容易。
  2. 缺乏调试和开发工具,排查问题困难。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...