PCon全球产品创新大会9折购票中,立减¥480!查看上线日程 了解详情
写点什么

掌握 Serverless:基本概念入门

2019 年 10 月 31 日

掌握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:02758

评论

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

Swarm挖矿APP系统开发

获客I3O6O643Z97

挖矿挖什么币好 ipfs和swarm哪个更有价值

NNB牛气冲天系统软件开发搭建

开發I852946OIIO

全面解读自动驾驶数据存储关键

焱融科技

人工智能 自动驾驶 云计算 高性能 文件存储

[TcaplusDB]倏忽温风至,因循小暑来

数据人er

数据库 nosql tencentdb TcaplusDB

玩转Spring Boot Actuator集成,基操,勿六

白亦杨

Java

一文看懂filecoin挖矿的成本到底有哪些?

IPFS fil成本 fil挖矿

DOGT狗狗通证软件系统开发公司

开發I852946OIIO

免费分享Spring与SpringMVC开发的优秀图书

Java入门到架构

Java spring Java书籍推荐

前端智能化 or 低代码,也许不是个选择题

清秋

前端 低代码 智能化

10万QPS,K6、Gatling和FunTester对比测试

FunTester

性能测试 接口测试 测试框架 压力测试 测试开发

PHA项目挖矿平台系统开发App

获客I3O6O643Z97

挖矿矿池系统开发案例 PHA矿机挖矿 PHA质押挖矿

Takin Talks·上海 |开源后首场主题研讨会来了,一起解密Takin技术吧!

数列科技

智能猫量化机器人炒币系统开发【专业定制、现成源码】

获客I3O6O643Z97

DAPP智能合约交易系统开发 量化策略 量化跟单 量化交易源码

由浅入深C A S

程序猿阿星

CAS 自旋锁

我写什么,你们决定

喵叔

filecoin矿工的收益有哪些?

fil fil收益 ipfs挖矿

日更总结 6月日更 21天写作

万里无云万里天

6月日更 日更总结

云图说|ASM灰度发布,让服务发布变得更敏捷、更安全

华为云开发者社区

灰度发布 application 云图说 应用服务网格服务 Service Mesh (ASM)

互联网产品经理之需求的一生

路边水果摊

产品经理

计算机基础知识 -- 位,字节,字符

浅^安

有哪些适合大型系统的项目开发管理工具?

万事ONES

项目管理 研发管理 ONES

揪出那个无主键的表

Simon

MySQL 主键

数牍科技亮相上海 AI 基金“AI 驱动企业转型” 应用场景战略合作仪式,隐私计算拓展AI应用疆域

Geek_459987

细说.NET 缓存

喵叔

7月日更

【LeetCode】 H 指数 IIJava题解

HQ数字卡

算法 LeetCode 7月日更

乐挖矿场软件系统开发案例

开發I852946OIIO

淘悠优软件系统开发内容

开發I852946OIIO

目前有哪些好用的用例管理工具?

万事ONES

测试用例 ONES 测试管理

有哪些好用的团队文档和技术资料管理的工具?

万事ONES

在线文档 ONES 协同办公

Go 学习笔记之 函数

架构精进之路

Go 7月日更

从装大象中我们学会了什么设计模式

skow

Java 面试 后端 设计模式

掌握Serverless:基本概念入门-InfoQ