Serverless架构思想演化过程(下)

简介: Serverless架构思想演化过程(下)

Serverless时代

image.png

Serverless指搭建和运行不需要服务器管理的一种概念。前面三种电商网站部署方式,都属于Serverful架构

Serverless实现

  • • Faas(函数即服务)

提供了运行函数代码的能力,并且具有自动弹性伸缩

  • • Baas(后端即服务)

将后端能力封装成了服务,并以接口的形式提供服务

image.png

  • • 从物理机到虚拟机,从容器到Serverless,都是去服务器的过程
  • 有了Iaas则不再关注物理机;有了Pass,不再需要关注操作系统;有了容器,不再需要关注运行环境;而Serverless的出现,不再需要关注传统的运维


Serverless概念


广义的Serverless架构

是指构建和运行软件时不需要关心服务器的一种架构思想,基于Serverless思想实现的架构就是Serverless架构

广义的Serverless解决的问题

  • • 容灾备份
  • • 弹性伸缩
  • • 日志监控

广义的Serverless和Serverful的架构区别

  • • 资源分配

不用关心应用运行的资源,只提供一份代码就行

  • • 计算方式

按实际使用量计费,计费粒度也精确到了毫秒级

  • • 弹性伸缩

可以快速根据业务并发扩容到更多的实例,甚至允许缩容到零实例状态来实现零计费



狭义的Serverless

image.png

基于Faas和Baas的架构,是一种计算和存储分离的架构,狭义的Serverless是Faas和Baas的组合


Faas服务

image.png

举例说明:定义要给Faas接口

  • • 客户端代码定义

网络异常,图片无法展示
|

启动一个web服务 访问该服务的list接口

  • • Faas接口代码

image.png


当把函数部署到Faas,然后访问接口时,会发现得到的结果永远都是1,这是Faas的一个特点:无状态


Baas服务

Baas本质上就是把后端功能封装起来,以接口的形式提供服务

常见的Bass产品由阿里云表格存储、消息中间件等,这些服务都可以通过API进行访问

举例说明:使用表格存储实现pv统计功能


image.png


什么不是Serverless

先介绍下Paas的特点

Paas(平台即服务)是云计算虚拟机时代的主要形态之一

  • • 付费标准

按资源付费,而不是按实际使用量付费

  • • 弹性伸缩

只能针对底层的服务器进行扩缩容。而Serverless的弹性伸缩是请求级别的,扩容速度更快,资源利用率更高。

K8S是否为Serverless?

K8S是介于Serverful和Serverless之间的产物

  • • Kubernetes本身也不是Serverless,只是在概念方面有些类似,它是一种容器编排技术,基于K8S能很方便的进行Pod的管理,并且实现应用的弹性伸缩。Pod是应用和运行环境的结合,也不用关心服务器。
  • • 从运维的角度看,主流的K8S服务提供商,提供的都是K8S集群托管和运维服务
  • • 开发者可以非常方便的管理集群中的硬件、存储、pod等资源,但是上层应用的运维和调度还是需要开发者自己来调度的,K8S也无法做到按代码执行的次数和实际消耗的资源来计费,还是和传统的Serverful一样按资源数量计费

云原生

云原生是指原生为云设计的架构模式。Serverless几乎封装了所有底层资源调度和运维工具,让你更加容易的使用云计算基础设施,这样极大的简化了云服务器编程

  • • Serverless是云原生的一种实现
  • • 云原生的另外一种实现是Kubernetes

Serverless的优点

  • • 不用运维
  • • 弹性伸缩
  • • 节省成本
  • • 开发简单
  • • 降低风险
  • • 易于扩展

Serverless的缺点

  • • 依赖第三方服务

使用云厂商所提供的serverless产品比如FaaS和BaaS,这样就会使得业务和第三方云厂商绑定,若要换一个云厂商那么迁移成本太大。这是优点也是缺点

  • • 底层硬件的多样性

应用在Faas上运行,由于底层硬件的多样性和不确定性,云厂商可以灵活的选择服务器来运行你的代码,让运行环境对应的物理环境变的不同,甚至有的函数运行在不同代的cpu上;如果代码不依赖底层cpu,那影响不大,否则可能不同的cpu的性能有差异;如果代码必须运行在某种cpu或gpu,那就需要云厂商提供这种能力。云厂商也会最小化的平衡利用资源的效率和成本

  • • 应用性能瓶颈

函数运行前,先初始化函数运行的环境,这个过程需要消耗一定的时间,因为函数不是持续在线,而是运行的时候才启动。从资源利用率上,这种模式可以节省资源;从应用性能上来看,这样会降低性能,而且还要靠云厂商实现性能优化,如果你的应用对性能非常敏感,就需要考虑怎么优化性能了

  • • 函数通信效率低

传统的mvc架构模式中,view层的方法调用model层方法都是在内存中运行的,而在Serverless中,函数与函数之间就完全独立了,如果两个函数之间数据有依赖,需要函数通信交换数据,这就需要函数与函数之间的调用了,相比之前的内存调用,数据交互效率明显低很多,这个问题的本质是Faas还没有比较好的数据通信协议或方案

  • • 开发调试复杂

想在本地开发,调试Serverless应用比较复杂

小结

  • • 广义上讲Serverless是一种架构思想
  • • 狭义上讲Serverless是FaaS和BaaS的组合
  • • Serverless架构主要特点是按量付费、弹性伸缩、不用运维
相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
12月前
|
数据采集 运维 Serverless
云函数采集架构:Serverless模式下的动态IP与冷启动优化
本文探讨了在Serverless架构中使用云函数进行网页数据采集的挑战与解决方案。针对动态IP、冷启动及目标网站反爬策略等问题,提出了动态代理IP、请求头优化、云函数预热及容错设计等方法。通过网易云音乐歌曲信息采集案例,展示了如何结合Python代码实现高效的数据抓取,包括搜索、歌词与评论的获取。此方案不仅解决了传统采集方式在Serverless环境下的局限,还提升了系统的稳定性和性能。
346 0
|
12月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
1081 69
|
11月前
|
数据采集 运维 监控
Serverless爬虫架构揭秘:动态IP、冷启动与成本优化
随着互联网数据采集需求的增长,传统爬虫架构因固定IP易封禁、资源浪费及扩展性差等问题逐渐显现。本文提出基于Serverless与代理IP技术的新一代爬虫方案,通过动态轮换IP、弹性调度任务等特性,显著提升启动效率、降低成本并增强并发能力。架构图与代码示例详细展示了其工作原理,性能对比数据显示采集成功率从71%提升至92%。行业案例表明,该方案在电商情报与价格对比平台中效果显著,未来有望成为主流趋势。
447 0
Serverless爬虫架构揭秘:动态IP、冷启动与成本优化
|
12月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
610 12
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
292 10
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
331 0
|
弹性计算 运维 网络协议
卓越效能,极简运维,Serverless高可用架构
本文介绍了Serverless高可用架构方案,当企业面对日益增长的用户访问量和复杂的业务需求时如何实现更高的灵活性、更低的成本和更强的稳定性。
|
监控 Serverless 测试技术
云端问道9期方案教学-省心省钱的云上Serverless高可用架构
本文介绍了省心省钱的云上Serverless高可用架构,主要分为两个部分:1. Serverless的发展历程、特点及高可用架构;2. SAE(Serverless Application Engine)产品介绍。Serverless作为一种云计算模式,让用户无需管理底层基础设施,自动弹性扩展资源,按需付费,极大提高了资源利用率和业务灵活性。SAE作为Serverless计算服务,提供了简便的应用部署、运维自动化、丰富的弹性策略和可观测性等功能,帮助企业降低运营成本、提升研发效率。通过极氪汽车、南瓜电影等客户案例展示了SAE在实际应用中的优势。
252 0
|
6月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
680 30

热门文章

最新文章

相关产品

  • 函数计算