QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

掌握 Serverless:基本概念入门

  • 2019-10-31
  • 本文字数:3399 字

    阅读完需:约 11 分钟

掌握Serverless:基本概念入门

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

为了帮助大家掌握 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 产品规划。经历过企业级存储、企业级容器平台等产品的架构与开发,对容器、微服务、无服务器、DevOps 都有浓厚兴趣。


本文转载自公众号云加社区(ID:QcloudCommunity)。


原文链接:


https://mp.weixin.qq.com/s/Qm4IUefQjc-rbpDLdI_wQQ


2019-10-31 19:021419

评论

发布
暂无评论
发现更多内容

IBM Semeru Runtime 17.0.6.0 在 Linux 下的安装

HoneyMoose

OpenTiny 的这些特色组件,很实用,但你应该没见过

Kagol

开源 前端 Vue3 组件库

架构实战营模块 5 作业

白杨

LG电视如何投屏?Mirror for LG TV智能投屏工具轻松解决

Rose

mac软件下载 LG电视 投屏软件 Mirror for LG TV

Web & WebDav Server在Mac上创建Web服务器

Rose

Web 服务器 mac软件下载 Web & WebDav Server破解

智慧污水处理厂Web3D管理系统 把“污水洗白”

2D3D前端可视化开发

智慧水务 智慧污水厂 智慧污水处理 污水厂三维可视化 数字孪生污水厂

Django笔记三之使用model对数据库进行增删改查

Hunter熊

Python django model 增删改查

王者荣耀商城异地多活架构设计

白杨

AI日课@20230407:别为下一代过虑;现在多多体验产品

无人之路

ChatGPT

PreSonus Studio One 6 Pro最新版v6.1.1中文下载 (音乐创作编辑软件)

Rose

Studio One6 Studio One 许可证 Studio One 破解 音乐制作软件

Vue3常用代码块

青柚1943

在生产环境中运行 grpc 服务所面临的挑战

蓬蒿

golang gRPC

“ONE”有引力,4月21日见!

博睿数据

智能运维 博睿数据 发布会 Bonree ONE

intellijidea卸载重装无法打开怎么办?IntelliJ IDEA彻底卸载教程

Rose

IntelliJ IDEA 2023下载 IntelliJ IDEA 2023破解 IntelliJ IDEA 2023最新 IntelliJ IDEA卸载

上传了ipa但在苹果App Store中没有看到构建版本的问题

【论文解读】不和谐区域定位

合合技术团队

人工智能 图像识别 图像处理

用户需求挖掘与分析,某新零售快消品电商系统成功交付的秘诀

L3C老司机

产品 产品设计 需求分析 产品管理 用户画像

如何清理优化你的Mac?MacCleaner Pro系统综合清理释放磁盘空间!

Rose

磁盘清理 mac系统清理优化软件 MacCleaner Pro下载 如何清理苹果电脑

TypeScript常用代码块

青柚1943

封仲淹:OceanBase开源技术生态全景解析

OceanBase 数据库

数据库 oceanbase

Drone CI 部署

流火

阿里云可观测 2023 年 3 月产品动态

阿里巴巴云原生

阿里云 云原生 可观测

失真的概念和定义

timerring

信息论 信息论与编码

LED显示屏近年来在中国的发展趋势

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

浪潮inBuilder低代码平台分布式微服务架构事务一致性技术解析

inBuilder低代码平台

分布式事务 低代码

macOS 网站下载和离线浏览工具:SiteSucker Pro中文版

Rose

苹果软件资源站 SiteSucker Pro中文 整站下载工具 SiteSucker Pro Mac版

Mac 无线网络扫描工具:WiFi Explorer 3.4.2 (57)激活汉化版

真大的脸盆

无线管理 wifi工具

智慧公共厕所,重构城市公共服务的新模式@光明源智慧公厕

光明源智慧厕所

智慧城市

折叠屏时代的全新故事,由华为领启

脑极体

华为

掌握Serverless:基本概念入门_文化 & 方法_黄文俊_InfoQ精选文章