讲师 | 洛浩(阿里云云原生高级架构师)

Serverless 的发展轨迹

**2012 年,Serverless 这个单词第一次出现,由 Iron 公司提出,字面意思就是不需要服务器。但是真正被大家所熟知,是在 2014 年 AWS 推出 Lambda 的时候。Lambda 产品的推出开启了云计算的新时代,之后所有的大厂都在跟进,比如微软、谷歌、IBM 都先后推出自己的 Serverless 产品。

国内是在 2017 年的时候,阿里云和腾讯云先后推出了自己的 Serverless 平台。但这个时候,都是指 FaaS(Function as a Service)。接着到 2018 年,大家开始渐渐接触到 Serverless,更多还是支付宝小程序和微信小程序的云开发平台。随后到 2019 年,国内其他厂商如百度、华为、字节也都开始做 Serverless,现在 Serverless 已经成了各大云厂商的标配。

Serverless 是云计算的 2.0

为什么大家都要做 Serverless 呢?因为大家都认为 Serverless 是云计算 2.0。随着云计算的发展,Serverless 已经成为一个技术趋势、一个理念、一个云的发展方向。

云计算领域有两篇非常著名的论文,是伯克利大学分别在 2009 年和 2019 年发表的。伯克利大学在 2009 年发表的一篇关于云计算的论文,预测了云计算的发展,比如计算资源可以按需索取、支持弹性、简化运维等,这些预测目前都已经实现。

而伯克利在 2019 年 2 月发表的第二篇论文中,预测 Serverless 是云计算下一个十年的发展方向。论文里也给出了关于 Serverless 的定义,简单讲就是Serverless Computing,由 FaaS + BaaS(Backend as a Service)构成一个 Serverless 软件架构。特点就是能够按需弹性、按需付费,这与 CNCF 的定义是相似的,应用以微服务或者函数的形式,拆解并部署到云上,能够按需去做弹性伸缩,按需付费,不用关心底层资源。

Serverless 是云原生发展的高级阶段

Serverless 跟云原生有什么关系呢?Serverless 的出现,就像人类的演进过程,代表着生产力的解放,极大提升了客户用云的效率。Serverless 在其之上封装了容器技术,是云原生的高级阶段。

Serverless 是对用户强调 No Server,本质并不是不需要服务器,而是将服务器全权托管给了云厂商,用户不用去关心,不用去管理,只用把业务部署到平台上来,只需聚焦业务逻辑代码,能够根据实际请求进行弹性伸缩,不用再去关心资源够不够。



Serverless 的核心价值

从物理机到 Serverless,就像我们买车一样,如果要买一辆私家车,这个车的车况保险全部要自己关心,然后你要自己开;到了虚拟机之后,我们把业务 host 到云上,就像汽车租赁;然后再到网约车,我不用买车,不用关心车况,我们要从 A 点到 B 点,只需要打个车,完全按需付费,按需弹性。

抽象出来其实就是有 3 个核心价值:

  • 第一个是弹性伸缩,它比较省事。比如说我们刚才有电商场景,需要弹性、扛大流量,Serverless 能够及时把资源弹出来。
  • 第二个特点,按需付费,我们用多少资源就花多少钱,不用为闲置资源来买单。
  • 第三个就是简化运维,能够帮用户省去资源管理的烦恼。

我们可以更直观来看 Serverless 的价值:首先最上层是业务逻辑,其次是对接的数据库、存储、微服务框架等,往下要建立监控系统、日志系统,以及容灾和高可用等,再到底层还要维护各种各样的 IaaS 资源,如虚拟机集群。而 Serverless 帮用户省掉的是资源层和可观测层,平台负责底层弹性资源,包括所有的日志监控等,用户就只需要关心业务逻辑。

Serverless 的软件架构

作为开发者,我们可以直接把镜像或者代码包部署到 Serverless 计算平台上来,省去了整个资源的购买和环境部署这个过程。部署上来之后呢,后端可以跟存储、数据库进行交互,构成完整的 Serverless 架构。之后通过像 LB 或者 HTT 的方式,直接去访问到业务代码,平台会根据用户的请求去做调度和弹性伸缩。Serverless 平台支持负载均衡,应对各种突发流量,用户不用去关心后台资源。

组件架构有点复杂,本次不展开来讲。对于开发者,需要关注的是绿色部分,即业务代码和服务框架等,以及用什么样的工具和后端 BaaS。Serverless 平台会纳管所有基础设施,会做好消息缓存、流量调度、容灾、高可用等。

另一个非常重要的组件架构是 Serverless 应用引擎,它的本质是把 K8S 做了封装。如果企业有微服务业务,并且需要部署到 K8S 集群,而维护挑战比较大的话,就可以用这种形态。把开发好的微服务,或者单体应用直接托管到这个平台上来,就能够享受 Serverless 所带来的弹性伸缩和按需付费的价值。

Serverless 的落地实践

Serverless 已有多个落地场景,在各个行业,无论是后台服务,还是 REST API 都可以部署到 Serverless 平台上。尤其是 Serverless 音视频处理、轻量 ETL(低门槛数据分析/处理)、事件驱动、任务跑批、应用托管、微服务容器化等场景。

在 Serverless 平台上有非常多的应用 case,比如,如果想要做微服务或者容器化转型,期望降低运维复杂度的同时,也能具备弹性伸缩、便捷发布的能力,就可以直接把服务部署到 Serverless 应用引擎。

再分享一个案例,想必很多人都有看过欧洲杯,国内是爱奇艺体育在做这个赛事直播,其背后的业务就是部署在 Serverless 应用引擎平台上。

对于爱奇艺体育团队来讲,最大的痛点之一是资源的弹性。因为体育赛事的直播流量有非常大的不确定性,面对流量激增,需要及时能够对后台服务进行扩容,如果按照峰值对资源进行保有,又会造成流量预估不准确的风险,以及一定程度上的资源浪费。

所以,Serverless 应用引擎非常好地匹配了客户痛点问题,不仅解决了弹性扩缩的问题,也提升了资源利用率,同时配套的应用监控,也极大程度上提升了定位问题的效率。

推荐阅读:爱奇艺体育:体验 Serverless 极致扩缩容,资源利用率提升 40%

Serverless 的未来畅想

  • 大面积取代 Serverful,变为默认的计算范式:虽然 Serverful 不会完全消失,但随着 Serverless 存在的不足被逐个攻克,Serverlsss 在云计算中所占的比重将会逐渐提升,变成云时代默认的计算范式。

  • 拥抱整个容器生态:未来,Serverless 会更多的去拥抱整个容器生态,当下容器是整个业界的一个主流的趋势,Serverless 会和容器做更多的集成,比如镜像部署、镜像加速、以及集成 K8S 很多的能力。

  • 加速运维关系的变化:Serverless 将会加速运维关系的转变,运维同学会从资源运维,逐步走向业务运维。

  • 复杂任务编排、工具链及可观测等能力提升:Serverless 会加强复杂任务编排、工具链和可观测等方面的能力。因为 Serverless 平台对底层资源做了高度封装,所以一定要把很多的监控指标去透露给用户,通过这些指标来做业务级的管理和管控。

我们希望 Serverless 能够真正给大家减负,让业务开发和维护变的更加简单,给业务带来更大的价值。

更多内容关注 Serverless 微信公众号(ID:serverlessdevs),汇集 Serverless 技术最全内容,定期举办 Serverless 活动、直播,用户最佳实践。

一文读懂 Serverless 的起源、发展和落地实践的更多相关文章

  1. 一文读懂 Serverless,将配置化思想复用到平台系统中

    作者 | 春哥大魔王 来源 | Serverless 公众号 写在前面 在 SaaS 领域 Salesforce 是佼佼者,其 CRM 的概念已经扩展到了 Marketing.Sales.Servic ...

  2. 一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现

    一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现 导读:近日,马云.马化腾.李彦宏等互联网大佬纷纷亮相2018世界人工智能大会,并登台演讲.关于人工智能的现状与未来,他们提出了各自的观点,也引 ...

  3. 一文读懂高性能网络编程中的I/O模型

    1.前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力.本文(和下篇<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>)旨在为大家提供有用的 ...

  4. 从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路

    本文原作者阮一峰,作者博客:ruanyifeng.com. 1.引言 HTTP 协议是最重要的互联网基础协议之一,它从最初的仅为浏览网页的目的进化到现在,已经是短连接通信的事实工业标准,最新版本 HT ...

  5. [转帖]MerkleDAG全面解析 一文读懂什么是默克尔有向无环图

    MerkleDAG全面解析 一文读懂什么是默克尔有向无环图 2018-08-16 15:58区块链/技术 MerkleDAG作为IPFS的核心数据结构,它融合了Merkle Tree和DAG的优点,今 ...

  6. [转帖]一文读懂 HTTP/2

    一文读懂 HTTP/2 http://support.upyun.com/hc/kb/article/1048799/ 又小拍 • 发表于:2017年05月18日 15:34:45 • 更新于:201 ...

  7. [转帖]从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路

    从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路   http://www.52im.net/thread-1709-1-2.html     本文原作者阮一峰,作者博客:r ...

  8. 即时通讯新手入门:一文读懂什么是Nginx?它能否实现IM的负载均衡?

    本文引用了“蔷薇Nina”的“Nginx 相关介绍(Nginx是什么?能干嘛?)”一文部分内容,感谢作者的无私分享. 1.引言   Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡 ...

  9. 大数据篇:一文读懂@数据仓库(PPT文字版)

    大数据篇:一文读懂@数据仓库 1 网络词汇总结 1.1 数据中台 数据中台是聚合和治理跨域数据,将数据抽象封装成服务,提供给前台以业务价值的逻辑概念. 数据中台是一套可持续"让企业的数据用起 ...

  10. 一文读懂HTTP/2及HTTP/3特性

    摘要: 学习 HTTP/2 与 HTTP/3. 前言 HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何 ...

随机推荐

  1. 2023你需要使用的最佳VSCode扩展插件

    选择最佳的 Visual Studio Code(以下简称 VSCode) 扩展插件对于提高开发效率和改善编程体验非常重要. 下面将详细介绍一些广受欢迎且功能丰富的 VSCode 扩展插件,包括编辑器 ...

  2. Mybatis-Flex核心功能之@Id

    1.是什么? 在 Entity 类中,MyBatis-Flex 是使用 @Id 注解来标识主键的 2.怎么玩? public @interface Id { /** * ID 生成策略,默认为 non ...

  3. 从零玩转设计模式之简单工厂设计模式-jiandangonchangmoshi

    title: 从零玩转设计模式之简单工厂设计模式 date: 2022-12-08 11:31:19.472 updated: 2022-12-11 23:03:34.805 url: https:/ ...

  4. 从零玩转第三方登录之WeChat公众号登陆-cong-ling-wan-zhuan-di-san-fang-deng-lu-zhi-wechat-gong-zhong-hao-deng-lu

    title: 从零玩转第三方登录之WeChat公众号登陆 date: 2022-09-03 16:32:57.876 updated: 2022-09-03 16:32:57.876 url: htt ...

  5. 6.elasticsearch中search template和alias

    什么是search template 顾名思义,查询模版,就是提前设定好查询的DSL,再次查询时,只需要指定对应的模版,然后传入相应的参数就好.一是可以每次不用构建复杂的DSL,二是可以供开发直接使用 ...

  6. 七天.NET 8操作SQLite入门到实战 - 第七天BootstrapBlazor UI组件库引入(1)

    前言 由于第七天Blazor前端页面编写和接口对接的内容比较的多,所以这一章节将会分为三篇文章来进行讲解,大家可以认为分为早.中.晚来进行阶段性学习,从而提高学习效率. 七天.NET 8 操作 SQL ...

  7. python中,如何优雅的解析和管理命令行参数

    背景 我们在编写python程序时,程序中经常会提供多种功能或者模式,在实际使用时根据不同的参数使用不同的功能.那么如何获取命令行传入进来的参数呢? 一般方法 一般情况下,我们会使用 sys 模块,如 ...

  8. STM32CubeMX教程12 DMA 直接内存读取

    使用STM32CubeMX软件配置STM32F407开发板上串口USART1进行DMA传输数据,然后实现与实验"STM32CubeMX教程9 USART/UART 异步通信"相同的 ...

  9. [Python急救站]回文数的判断

    回文数判断:回文数是指这个数颠倒后,与原数一致,如32223.12221等. 第一个程序是由用户输入,并判断是否是回文数. a = eval(input("请输入一个五位数")) ...

  10. 解读Java内存模型中Happens-Before的8个原则

    摘要:本文我们就结合案例程序来说明Java内存模型中的Happens-Before原则. 本文分享自华为云社区<[高并发]一文秒懂Happens-Before原则>,作者: 冰 河. 在正 ...