serverless基本概念入门

serverlesscloud serverlesscloud     2023-04-20     147

关键词:

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

2019 年,Serverless 被 Gartner 称为最有潜力的云计算技术发展方向,并被赋予是必然性的发展趋势。Serverless 从底层开始变革计算资源的形态,为软件架构设计与应用服务部署带来了新的设计思路。

为此,我们策划了?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 产品中的计算产品,也就是云函数。云函数包含了如下的技术特性:

1. 事件驱动

  • 云函数的运行,是由事件驱动起来的,在有事件到来时,云函数会启动运行
  • Serverless 应用不会类似于原有的「监听 - 处理」类型的应用一直在线,而是按需启动
  • 事件的定义可以很丰富,一次 http 请求,一个文件上传,一次数据库条目修改,一条消息发送,都可以定义为事件

技术图片

2. 单事件处理

  • 云函数由事件触发,而触发启动的一个云函数实例,一次仅处理一个事件
  • 无需在代码内考虑高并发高可靠性,代码可以专注于业务,开发更简单
  • 通过云函数实例的高并发能力,实现业务高并发

技术图片

3. 自动弹性伸缩

  • 由于云函数事件驱动及单事件处理的特性,云函数通过自动的伸缩来支持业务的高并发
  • 针对业务的实际事件或请求数,云函数自动弹性合适的处理实例来承载实际业务量
  • 在没有事件或请求时,无实例运行,不占用资源

技术图片

4. 无状态开发

  • 云函数运行时根据业务弹性,可能伸缩到 0,无法在运行环境中保存状态数据
  • 分布式应用开发中,均需要保持应用的无状态,以便于水平伸缩
  • 可以利用外部服务、产品,例如数据库或缓存,实现状态数据的保存

技术图片

Serverless 的应用场景

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

1. WEB 及移动后端

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

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

2. 消息处理

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

3. 对象存储文件处理

在 Serverless 应用场景中,由对象存储中的文件上传事件,来触发云函数的运行,也是一种常见场景。

针对图片文件的上传,可以借助云函数完成图片的缩略图生成、二维码或水印标记、图片优化处理;而针对数据文件的上传,可以启动数据的自动化分析

4. 物联网

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

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

5. 运维及集成

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

Serverless — 云原生时代的应用

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

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

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

传送门:

欢迎访问:Serverless 中文网,您可以在 最佳实践 里体验更多关于 Serverless 应用的开发!

serverless从入门到进阶:架构原理与实践

Serverless从入门到进阶:架构、原理与实践腾讯云Serverless项目早期参与者撰写,基于腾讯云、阿里云和亚马逊云等多个云厂商的产品和技术;从产品和技术两个维度展开,讲解Serverless的架构设计、技术原理、开发流程、实战案例... 查看详情

云计算基本概念iaas,paas,saas和serverless

...用户自己开发应用,部署在平台上,调用执行,按次计费Serverless无服务架构,相当于容器(k8s+Docker)+Faas+BaaS,就用户部署自己的函数在容器中,调用服务商的后端存储等服务,完成整个后端应用。Serverless适合构建比较简单的应用... 查看详情

每日一书丨serverless架构从原理入门到实战的技术指南

Serverless架构是云计算发展的产物,它继承了云计算的优点,并具备极致弹性、按量付费、免运维等优势。Serverless架构让开发者可以将更多精力放在业务逻辑上,让资源浪费更少,让服务器运维成本更低,真正... 查看详情

我的serverless实战——三分钟快速入门serverless应用搭建

文章目录前言一、Serverless是什么?二、Serverless架构和传统的项目架构区别三、Serverless应用搭建四、展望未来前言2020年天猫双11又一次创造记录,总交易额4982亿元,订单创建峰值58.3万笔/秒。对于阿里云来说有另一个... 查看详情

serverless入门学习(代码片段)

MVC架构MVC前端:View层后端:Control层&&Model层Serverless解决问题的边界,就是服务端的边界,即服务端运维。Serverless狭义Serverless(最常见)=Serverlesscomputing架构=FaaS架构=Trigger(事件驱动)+FaaS(函数即服务)+BaaS(后端即服务... 查看详情

我的serverless实战——三分钟快速入门serverless应用搭建

文章目录前言一、Serverless是什么?二、Serverless架构和传统的项目架构区别三、Serverless应用搭建四、展望未来前言2020年天猫双11又一次创造记录,总交易额4982亿元,订单创建峰值58.3万笔/秒。对于阿里云来说有另一个... 查看详情

vue入门——基本概念(代码片段)

1.挂载点,模板,实例的关系?首先附上一个基本demo:1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="utf-8">5<title>vue入门</title>6<scriptsrc="./vue.js"></script>7</head& 查看详情

狂神说javajavaweb入门到实战--web基本概念

目录狂神视频地址1.web基本概念1.1、基本概念1.2、Web应用程序1.3、静态Web1.4、动态web2、web服务器2.1、技术讲解2.2、web服务器狂神视频地址https://www.bilibili.com/video/BV12J411M7Sj?p=21.web基本概念JavaWeb1.1、基本概念web开发:web,... 查看详情

serverless架构的演进

Serverless架构的演进作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszsServerless架构风格挑战了软件设计和软件部署基础的现状,以实现最佳开发、最优运营和最优的管理开销。虽然它... 查看详情

从零入门serverless|一文搞懂函数计算及其工作原理

...德慧(夏莞)?阿里云函数计算开发工程师本文整理自《Serverless技术公开课》,关注“Serverless”公众号,回复“入门”,即可获取Serverless系列文章PPT。什么是函数计算?大家都了解,Serverless并不是没有服务器,而是开发者不再... 查看详情

从零入门serverless|一文搞懂函数计算及其工作原理

...德慧(夏莞)?阿里云函数计算开发工程师本文整理自《Serverless技术公开课》,关注“Serverless”公众号,回复“入门”,即可获取Serverless系列文章PPT。什么是函数计算?大家都了解,Serverless并不是没有服务器,而是开发者不再... 查看详情

快速入门系列--clr--01基本概念

在.NET平台用C#这么久,自然会发现其版本很多,相应的概念也会很多,常常都是萌萌哒。而在实际工作中经常会遇到需要配置dll版本号,公钥token等场景,因而对C#、NET、CLR、框架类型等基础概念有个大略的了解有很大必要性。... 查看详情

mongodb入门学习:mongodb的基本概念和数据类型

     上一篇讲了MongoDB的安装和管理,当中涉及到了一些概念,数据结构另一些API的调用,不知道的没关系,事实上非常easy,这篇会简介一下。1.文档    文档是MongoDB的核心概念。多个键值对有序... 查看详情

k8s基本概念入门

...sp; 没等到风来,绵绵小雨,所以写个随笔,聊聊k8s的基本概念。     k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用... 查看详情

serverless入门——实战部署vuepress前端项目(代码片段)

...用VuePress搭建了一个极简的Element文档。今天我们尝试使用Serverless把这个网站部署到生产环境中,能够让所有人正常访问。这边我们使用到的是ServerlessFramework+腾讯云的方式部署该前端项目。如果是第一次接触Serverless的人可能会... 查看详情

机器学习入门-基本概念

1、机器学习分为监督学习和非监督学习。首先学习监督学习。2、标签,即y值,结果,以通过机器学习过滤垃圾邮件为例,标签为邮件是垃圾邮件,或不是垃圾邮件3、特征,即x值,输入变量,通常有多个特征,如根据发件人、... 查看详情

spring入门篇——aop基本概念

  1、什么是AOP及实现方式什么是AOPAOP:AspectOrientedProgramming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术主要的功能是:日志记录,性能统计,安全控制,事务处理,... 查看详情

数据结构与算法入门---基本概念

有哪些数据结构:  线性表、栈、队列、(字符)串、数组、广义表、树、二叉树、图  重点是:线性表、二叉树  对于每种数据结构都会有其添加、更新、删除、查询等操作的实现   数据结构与算法是不可分的 ... 查看详情