写点什么

看完这篇你就知道什么是无服务器架构了

  • 2019-12-25
  • 本文字数:2029 字

    阅读完需:约 7 分钟

看完这篇你就知道什么是无服务器架构了

Gartner 最近的一份报告表明,到 2020 年,全球将有 20%的企业部署无服务器架构


这说明无服务器架构不只是一个流行语,而是一种众所周知的云计算趋势,并且已经在软件世界掀起一场革命。大型厂商(如亚马逊、微软和谷歌)已经在无服务器架构领域重资投入,追赶革命的浪潮。


与其名字相反,无服务器架构实际上并没有把服务器去掉。那么,究竟什么是无服务器架构?

什么是无服务器架构?

无服务器架构是指应用程序使用第三方 Function 和服务,但不需要管理服务器。无服务器架构主要包含了两个方面:


  • FaaS(Function as a Service,Function 即服务):包含服务器端业务逻辑的无状态 Function。这些 Function 运行在独立的容器里,基于事件驱动,并由第三方厂商托管,如 AWS Lambda 或者 Azure Functions。

  • BaaS(Backend as a Service,后端即服务):使用第三方服务(如 Firebase、Auth0)来达成目的。使用 BaaS 的应用程序通常是富客户端应用程序,如 SPA 或移动 App。客户端负责处理大部分的业务逻辑,其他部分则依赖外部服务,如认证、数据库、用户管理,等等。


无服务器架构包含了 BaaS 和 FaaS,不过这篇文章着重关注 FaaS。

无服务器架构的特点

  • 不需要管理服务器;

  • 无状态;

  • 自动伸缩;

  • 没有运营成本;

  • 成本由事件驱动;

  • 处理第一个事件需要一些启动时间;

  • 因为运行时小,所以具有较高的安全性。

无服务器的生命周期

下图描述了一个 Function 的生命周期。


无服务器应用程序架构示例

假设有一个简单的线上汽车拍卖应用程序,用户可以登录并出价,拍卖时间结束时价高者得。


传统上,架构里会包含一个部署了应用程序和前端的单体服务器。



上述架构采用的是瘦客户端方式,所有的业务逻辑(如认证、回话管理、车辆管理等)都部署在服务器端。


那么,在一个无状态的微服务架构中,这个应用程序又会是什么样子?



原来的单体应用程序被拆分成了多个服务器端组件。


  • 认证 Function:这是一个用于管理用户认证(登录)的 Function(Function,FaaS)。

  • 车辆管理服务:一个处理与车辆相关操作的微服务,如列出车辆、查看车辆信息、比较车辆,等等。这个服务可以使用任意的语言或框架来开发,它与数据库通信,并且独立运行。

  • 车辆出价 Function:这是另外一个 Function,也与数据库通信,录入用户出价记录。

  • API 网关:所有服务的入口点和反向代理。来自客户端的请求会先到达网关,网关根据路由规则将请求重定向到特定的服务。


在将服务拆分成微服务或 FaaS 时,需要考虑到业务逻辑、负载、规模等方面的因素。


上述的例子描述了无服务器架构和基于无服务器架构设计微服务时的大致过程。

无服务器架构与 PaaS

平台即服务(Platform as a Service)是另一个不需要开发人员管理服务器(包括硬件和软件)的架构莫斯。正因为如此,开发人员容易把无服务器架构和 PaaS 混为一谈。接下来,我们来看一看它们之间的相似点和不同点。

相似点

  • 开发人员不需要管理服务器。

  • 开发人员只要关注应用程序代码本身。

不同点

  • PaaS 提供了更为可控的部署方式,而无服务器的部署则更为严格。

  • 无服务器架构可以自动伸缩,而 PaaS 的伸缩需要进行配置。

  • 无服务器架构的成本是由事件驱动的,而 PaaS 是固定的。

  • PaaS 应用程序在部署之后会一直运行,并马上开始处理请求,而无服务器需要等待第一个事件,具体取决于事件的发生频率。

用例

无服务器的应用应该不仅限于某个领域、业务或架构。在进行应用程序架构时,你需要考虑多个因素,这些因素同样适用于无服务器架构。


  • 成本——无服务器架构非常节约成本,具体取决于实际的负载。

  • 服务器管理——无服务器架构可以极大地降低用于管理服务器的运营成本。

  • 伸缩——无服务器架构可以自动伸缩。

  • 响应时间——FaaS 需要一些初始化时间。如果负载很小(比如一个小时只有一个事件),每个请求都会经历冷启动,导致整体响应变慢。

  • 更快的发布周期——因为这些 Function 都是很小的单位,发布周期就变得很短。


以下是一些常见的用例


  • Web 应用程序;

  • 批处理和调度;

  • 移动和 IOT 后端;

  • 聊天机器人。

为什么要采用无服务器架构?

使用无服务器架构和 FaaS 有以下这些好处。


  • 减少服务器管理成本;

  • 减少运营成本;

  • 自动伸缩;

  • 比不间断运行的服务更安全;

  • 成本由请求或事件数来决定;

  • 更简单的打包和部署流程;

  • 缩短发布周期;

  • 开箱即用的监控。

无服务器架构的限制

与其他任何一种技术架构一样,无服务器架构也存在同样的限制。


  • 启动延迟;

  • 厂商锁定,对服务器缺乏控制;

  • 性能优化局限于代码内部;

  • 执行时间限制(AWS Lambda 的执行时间限制为 15 分钟);

  • 成本不可预测;

  • 开发环境和生产环境不一样;

  • 测试和调试更为复杂。

总结

无服务器架构是一种架构风格,通过 FaaS 将业务逻辑从长期运行的组件中移到临时的 Function 里。它可以解决很多架构和运营问题,简化开发者和运维人员的工作。


与其他解决方案一样,无服务器架构并不是银弹。它无法直接取代现有的组件,在决定是否要采用无服务器架构之前需要先分析一下自己的业务和技术需求,通盘考虑各种优点和缺点。

英文原文

Serverless Architecture- Why and How It’s a Smart Choice?


2019-12-25 10:5410095
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 393.2 次阅读, 收获喜欢 1983 次。

关注

评论 1 条评论

发布
用户头像
平台即服务(Platform as a Service)是另一个不需要开发人员管理服务器(包括硬件和软件)的架构莫斯。

“架构莫斯”-错别字
2020-01-15 10:45
回复
没有更多了
发现更多内容

张宏江谈AI创业:人工智能亟需工程化,创业者大有可为

硬科技星球

Louvain算法在反作弊上的应用

百度Geek说

大数据 算法

使用 HTML、CSS 和 JavaScript 的简单模拟时钟

海拥(haiyong.site)

开源 8月月更

Seata-php 半年规划

SOFAStack

php 开源 分布式 框架 seata

转转风控「违禁物品识别」 背后的那些事儿

转转技术团队

人工智能’

程序员常用的IDE工具,你了解哪些?

Speedoooo

小程序 ide 开发者工具 前端开发工具

秒验丨使用简介与应用创建

MobTech袤博科技

android iOS SDK 秒验

MySql主从同步介绍

京东科技开发者

MySQL 数据库 主从同步

这份由腾讯技术大牛耗费几个月总结的1518页的Netty学习笔记GitHub获赞96.5K

了不起的程序猿

Java 后端 Netty JAVA开发 java程序员

小企业自动化运维管理用什么软件好?有便宜的吗?

行云管家

IT运维 行云管家 自动化运维 小企业

带你玩转“超大杯”ECS特性及实验踩坑

科技怪咖

ITIL4实用指南 | ITSM的未来属于敏捷

龙智—DevSecOps解决方案

ITSM ITSM解决方案

汉诺塔(递归+ 非递归版)

Five

算法题 8月月更

Android进阶(十七)Android 布局

No Silver Bullet

android android布局 8月月更

用小程序打造超级App,助力社交电商扩大“留量池”

Speedoooo

小程序 社交电商 超级app 用户留存

技术分享| 应急指挥调度平台需要这些技术支撑

anyRTC开发者

音视频 快对讲 语音对讲 调度系统 视频对讲

龟兔赛跑:如何使用TortoiseSVN客户端和P4EXP

龙智—DevSecOps解决方案

git svn Subversion

惊呆了!有了这份MySQL笔记手册,胜过看10本书

冉然学Java

MySQL 编程 程序员 分布式 构架

面试官问:如何优化高并发相关的业务,你能回答的上来吗?

CRMEB

ARMS助力羽如贸易打造全链路可观测最佳实践

阿里巴巴中间件

阿里云 云原生 可观测 Arms 客户案例

什么是IP 欺骗以及如何防范?

郑州埃文科技

网络安全 IP

干净代码(Clean Code)实践如何帮助您留住开发人才

龙智—DevSecOps解决方案

代码质量 代码安全

跟我学Python图像处理丨基于灰度三维图的图像顶帽运算和黑帽运算

华为云开发者联盟

人工智能 图像处理 图像 三维

教你如何轻松实现多队伍排队管理【必看】

天天预约

微信小程序 排队 排队工具 #SaaS应用

传媒数字化转型思考:小程序是音视频内容的更优载体技术

Speedoooo

小程序 数字化转型 小程序生态 传媒

今天4点,开发者关心的SysOM 操作系统运维系列直播又来了!| 第 42 期

OpenAnolis小助手

操作系统 系统运维 sig 龙蜥大讲堂 SysOM

会场及展位变更通知 | GOPS全球运维大会地址更改,龙智展位更换至#106

龙智—DevSecOps解决方案

gops GOPS全球运维大会

买家手册:企业在选择 SBOM 供应商时需要注意什么?

SEAL安全

DevSecOps 开源软件供应链 软件物料清单 SBOM 软件供应链安全

数字人民币如何影响传统支付?支付厂商数字人民币应用案例征集

易观分析

金融 数字人民币 传统支付

SpringBoot进阶(叁):Spring Boot启动过程分析

No Silver Bullet

spring-boot 8月月更

湖南省株洲市有等保测评机构吗?咨询电话多少?

行云管家

网络安全 等保测评 等级测评 株洲

看完这篇你就知道什么是无服务器架构了_服务革新_Systango_InfoQ精选文章