AI 从业者都在关注的 NVIDIA GTC 2023 China AI Day 来了!报名戳 了解详情
写点什么

Serverless 系列(一):基本概念入门

  • 2019-08-08
  • 本文字数:3490 字

    阅读完需:约 11 分钟

Serverless 系列(一):基本概念入门

从行业趋势看,Serverless 是云计算必经的一场革命。


2019 年,Serverless 被 Gartner 称为最有潜力的云计算技术发展方向,并被赋予是必然性的发展趋势。Serverless 从底层开始变革计算资源的形态,为软件架构设计与应用服务部署带来了新的设计思路。本系列意在揭开 Serverless 的面纱,从基础概念入门,到前后台架构设计、应用拓展、最佳实践等多维度,带领开发者走进无服务器的世界。

什么是 Serverless

Serverless ,按中文翻译,称为无服务器。这究竟是一种什么样的形态或产品呢?无服务器,就是真的没有服务器吗?其实,在行业内,目前对于 Serverless 有几种解读方法:在某些场景可以解读为一种软件系统架构方法,通常称为 Serverless 架构;而在有些情况下,又可以代表一种产品形态,称为 Serverless 产品。


在说起 Serverless 架构时,Serverless 代表的是利用 Serverless 形态的产品实现的应用架构,这种架构完全依托于云厂商或云平台提供产品完成系统的组织及构建。在这种架构中,用户无需关注支撑应用服务运行的主机,而将关注点投入在系统架构,业务开发,业务支撑运维上。


而说起 Serverless 产品时,代表的是无需理解、管理服务器,按需使用,按使用付费的产品。Serverless 产品中,其实也可以包含存储、计算等多种类型的产品,而典型的计算产品,就是云函数这种形态。


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

Serverless 的价值

Serverless 技术为什么会获得越来越多的关注?我们可以从几个角度来看。


首先,从开发者使用的来说,不用更多的去考虑服务器的相关内容,无需再去考虑服务器的规格大小、存储类型、网络带宽、自动扩缩容问题;同时,也无需再对服务器进行运维了,无需不断的打系统补丁、应用补丁、无需进行数据备份、软件配置等工作了。


其次,Serverless 产品是完全自动化的弹性扩缩容的;在业务高峰时,产品的计算能力、容量自动扩容,承载更多的用户请求,而在业务下降时,所使用的资源也会同时收缩,避免资源浪费。


再次,跟随着完全自动化的弹性所带来的,是全新的计量计费模式;开发者仅需根据使用量来付费,而在深夜无业务量的情况下,不会有空闲资源占用,因此也不会有费用产生。


随着如上提到的特性,Serverless 给开发者或用户带来了具体的商业价值:


1、降低运维需求:


  • Serverless 使得应用与服务器解耦,业务上线前无需预估资源,无需进行服务器购买、配置;

  • Serverless 也使得底层运维工作量进一步降低,业务上线后,也无需担忧服务器运维,而是全部交给了云平台或云厂商;


2、降低运营成本:


  • Serverless 的应用是按需执行的。应用只在有请求需要处理或者事件触发时才会被加载运行,在空闲状态下 Serverless 架构的应用本身并不占用计算资源;

  • 而在使用 Serverless 产品时,用户只需要为处理请求的计算资源付费,而无须为应用空闲时段的资源占用付费;


3、缩短迭代周期、上线时间:


  • Serverless 架构带来的是进一步的业务解耦,应用功能被解构成若干个细颗粒度的无状态函数,开发可以聚焦在单功能的快速开发和上线上;

  • 同时拆解后的云函数,也都可以进行独立的迭代升级,更快速的实现业务迭代,缩减功能的上市时间;


4、快速试错


  • 利用 Serverless 架构的简单运维、低成本及快速上线能力,可以来快速尝试业务的新形态、新功能;

  • 利用 Serverless 产品的强弹性扩容能力,在业务获得成功时,也无需为资源扩容而担心;

Serverless 的技术特点

这里提到的技术特点的对象,特指 Serverless 产品中的计算产品,也就是云函数。云函数包含了如下的技术特性:

事件驱动

  • 云函数的运行,是由事件驱动起来的,在有事件到来时,云函数会启动运行

  • Serverless 应用不会类似于原有的监听-处理类型的应用一直在线,而是按需启动

  • 事件的定义可以很丰富,一次 http 请求,一个文件上传,一次数据库条目修改,一条消息发送,都可以定义为事件


单事件处理

  • 云函数由事件触发,而触发启动的一个云函数实例,一次仅处理一个事件

  • 无需在代码内考虑高并发高可靠性,代码可以专注于业务,开发更简单

  • 通过云函数实例的高并发能力,实现业务高并发


自动弹性伸缩

  • 由于云函数事件驱动及单事件处理的特性,云函数通过自动的伸缩来支持业务的高并发

  • 针对业务的实际事件或请求数,云函数自动弹性合适的处理实例来承载实际业务量

  • 在没有事件或请求时,无实例运行,不占用资源


无状态开发

  • 云函数运行时根据业务弹性,可能伸缩到 0,无法在运行环境中保存状态数据

  • 分布式应用开发中,均需要保持应用的无状态,以便于水平伸缩

  • 可以利用外部服务、产品,例如数据库或缓存,实现状态数据的保存


Serverless 的应用场景

Serverless 架构或者技术,可以用在什么样的场景下,来充分发挥它的优势呢?如下的场景,都适合使用 Serverless 架构或产品,来实现所需的业务逻辑。

WEB 及移动后端

通过结合使用云函数和 API 网关或 HTTP 触发器,可以对外提供 URL 访问地址,成为 Web、小程序、或移动应用等的后端服务。Serverless 架构既可以直接用于构建后台来服务应用,也可以通过类似 BFF 模式,构建中台和应用间的桥梁。


Serverless 架构提供的强弹性能力,使得可以支撑业务或应用的暴涨;而提供的低运维需求,使得开发者可以专注于业务实现和优化;同时,按实际使用量的付费方式,使得开发者无需预配置资源,无需担心预配置资源的浪费。

消息处理

Serverles 架构的应用本身是由事件触发的,因此极其适合于进行消息处理。无论是消息队列中传递的业务消息,还是 Kafka 中采集应用日志,均可以对接到云函数上,进行实时的消息处理、分析。

对象存储文件处理

在 Serverless 应用场景中,由对象存储中的文件上传事件,来触发云函数的运行,也是一种常见场景。针对图片文件的上传,可以借助云函数完成图片的缩略图生成、二维码或水印标记、图片优化处理;而针对数据文件的上传,可以启动数据的自动化分析,

物联网

物联网意味着成千上万的设备会连入网络,时刻在不断的产生数据,这对数据的分析、处理的及时性提出了很高的挑战。通过使用 Serverless 架构,物联网设备所采集的数据将可以作为云函数的触发事件,而实现数据的实时处理、分析和应用。


随着物联网设备计算能力的进一步提升,云函数作为最小粒度的计算单元,有机会被调度到设备端运行,实现边缘计算,达到端-云联合的 Serverless 架构。

运维及集成

通过对接云函数以及云上的各个产品、日志服务、监控告警系统,云时代的运维也都可以用云函数来构建。定时触发的云函数,将可以方便的替代需要在主机上来运行的定时任务;而日志或告警触发的云函数,将可以对云中的事件作出立刻回应及处理。

Serverless - 云原生时代的应用架构

云计算已经进入了新的时期,目前上云已经不是应不应该,而是如何上云的问题。在这种情况下,云原生的概念也随之而生。云原生的架构或应用,是基于云而设计的,充分的利用现代云计算平台所具备的弹性和分布式特性来实现应用架构。


而 Serverless 架构、产品、以及应用,均是完全依托于云而构建的,是典型且完全的云原生的架构、产品或应用。 Serverless 产品所具备的产品特性优势、技术优势、费用优势,将成为新一代云产品的发展方向;而基于 Serverless 架构推进完成开发的应用或架构,将充分享受到云时代带来的强大助力,使得云计算能真正成为业务的助推器。


Serverless 的计算产品-云函数,作为云虚拟机、容器技术之后的下一代计算形态,将引来云计算中新的热潮。围绕着云函数而建设的产品能力、工具、生态、以及应用开发,也将引来新的一轮发展。随着无服务器的产品和生态走向成熟,将逐步承载起企业核心业务。 在这个持续向前高速发展的过程中,腾讯云的云函数,将作为腾讯云云原生的重点发力领域,跟随客户需求、行业发展、技术发展,为用户提供完整全套的 Serverless 解决方案。

Serverless 入门资料推荐

基础篇

一图读懂无服务器云函数


Serverless 初探


SCF 快速入门


SCF CLI 使用指南

进阶篇

腾讯云无服务器云函数架构精解


使用腾讯云 SCF 云函数压缩 COS 对象存储文件


SCF:云产品业务告警功能

高级篇

SCF场景下的DevOps实现–Jenkins篇


SCF与自然语言处理为你的网站赋能


SCF: 深度学习之目标检测


前端学Serverless系列–性能调优


作者介绍:


黄文俊,腾讯云高级产品经理,负责腾讯云 serverless 产品规划。经历过企业级存储、企业级容器平台等产品的架构与开发,对容器、微服务、无服务器、DevOps 都有浓厚兴趣。对 Serverless 技术感兴趣的读者可关注 ServerlessCloudNative(ID:ServerlessGo)公众号了解最新技术与动态。


2019-08-08 11:0915999

评论 1 条评论

发布
用户头像
云原生 != Serverless;Serverless != FaaS,;FaaS != 任何云上的函数计算产品。这几个等号要强行画起来,还是比较困难的 ……
2019-08-08 14:58
回复
没有更多了
发现更多内容

【LeetCode】加一Java题解

Albert

算法 LeetCode 8月日更

【Maven技术专题】如何使用Assembly插件实现自定义打包

洛神灬殇

maven assembly 8月日更

索信达控股:银行4.0的AI世界——开启算法力的时代

索信达控股

人工智能 金融科技 银行

基于docker的分布式性能测试框架功能验证(二)

FunTester

分布式 性能测试 接口测试 测试框架 测试开发

百度爱番番移动端网页秒开实践

百度Geek说

大前端 优化 网页加速 移动端

PostgreSQL 中如何控制行级安全和列级安全

Qunar技术沙龙

sql postgresql 运维 安全 权限

多语言ASR?没有什么听不懂,15种语言我全都要

华为云开发者联盟

语言 ASR 多语言ASR 单语模型 Conformer

复杂多变场景下的Groovy脚本引擎实战

vivo互联网技术

敏捷开发 脚本语言

原来select语句在MySQL中是这样执行的!看完又涨见识了!这回我要碾压面试官!

冰河

MySQL 面试 精通MySQL SELECT查询流程 查询缓存

译文 | 四种产品经理成长框架,你是哪一种?

LigaAI

产品经理 产品管理 PM

Python代码阅读(第1篇):列表映射后的平均值

Felix

Python 编程 Code Programing 阅读代码

十大排序算法--插入排序

Ayue、

排序算法 8月日更

深度学习中的分布式训练

安第斯智能云

人工智能 深度学习

鸿蒙内核之内存调测:动态内存池信息统计

华为云开发者联盟

鸿蒙 内存 动态内存池 内存信息

手撸二叉树之对称二叉树

HelloWorld杰少

算法和数据结构 8月日更

一文带你搞定AOP切面

华为云开发者联盟

spring aop 切面编程 面向切面编程 切面

分布式性能测试框架用例方案设想(二)

FunTester

分布式 性能测试 接口测试 测试框架 测试开发

知道ThreadLocal吗?一起聊聊到底有啥用

华为云开发者联盟

Java 架构 线程 ThreadLocal 链路

Lucene 倒排索引原理

Qunar技术沙龙

数据库 全文检索 lucene 倒排索引 搜索

万字深入HarmonyOS ACE UI框架解析,带你看懂UI渲染流程

科技汇

synchronized 优化手段之锁膨胀机制!

王磊

Java 并发 8月日更

netty系列之:netty初探

程序那些事

Java 响应式编程 Netty nio 程序那些事

基于ECS快速搭建 Docker 环境

若尘

Docker 服务器 8月日更

AudioTracker实用封装

Changing Lin

8月日更

图分析在吴亦凡事件中的应用场景

6979阿强

图算法 图计算 GraphScope 吴亦凡 一站式图计算平台

【Flutter 专题】132 图解 PaginatedDataTable 分页表格

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

kafka SpringBoot

Rubble

kafka springboot 8月日更

Springboot 配置文件、隐私数据脱敏的最佳实践(原理+源码)

程序员小富

Java springboot 数据安全 数据脱敏

Design for failure常见的12种设计思想

架构精进之路

降级 重试 容错 8月日更

重磅 | 用友《数字化中台》震撼上市!数智化转型和商业创新实践的企业级经验!

博文视点Broadview

【Vue2.x 源码学习】第二十四篇 - 异步更新流程

Brave

源码 vue2 8月日更

Serverless 系列(一):基本概念入门_语言 & 开发_黄文俊_InfoQ精选文章