Serverless 基础知识

简介: 【6月更文挑战第17天】Serverless优势在于消除容量规划,减少资源浪费,简化运维复杂度,以函数即服务(FaaS)形式按执行需求收费。

云计算技术的发展,使得用户只需要关注当前需要的底层资源,通过云基础设施可以自动完成资源的供给和伸缩;通过Kubernetes、Mesos等资源调度和编排平台对业务屏蔽了集群和机器资源管理的复杂度,不仅提高了资源的利用率,也通过为用户提供完善的环境管理和资源管理平台,提高了业务效率。但在这种使用场景下,用户仍然需要预估需要的资源,并在云平台上预先进行分配,而不管这些资源是否会被充分利用。因此对用户的容量预估和资源预估提出了很高的要求,如果预估和实际有很大偏差,就会导致很大的资源浪费,或者出现资源不足而影响业务使用,为了解决这个问题,Serverless应运而生。


Serverless中文可以翻译为“无服务器架构”,是最近几年兴起的一种新型架构理念,Serverless不是指不需要服务器,主要是强调在Serverless下,业务不再需要固定的服务器资源,而是按需分配相应的服务资源。当业务请求比较多时,会多分配相应的服务实例;当业务请求比较少甚至为零时,可以不分配任何服务器资源。Serverless架构和之前的架构相比,最大的差异是:业务服务不再是固定的常驻进程,而是真正按需启动和关闭的服务实例。因此Serverless架构可以提供如下两点优势。


(1)按需使用的资源管理Serverless架构下,容量规划成为历史,对一个业务进行准确的容量规划通常来说是特别有挑战性的事情,需要考虑的因素很多,通过Serverless的即需即用,不再需要容量规划,减少了业务架构和运维的复杂度。同时对于按需使用的资源管理,业务只需要为真正使用的部分付费,从而减少了不必要的资源浪费。


(2)简化业务运维复杂度在微服务架构下,微服务由各个功能模块,以及功能模块之间的通信组成,微服务开发者不仅需要关注业务功能,还要花费很多精力在完成不同微服务的交互和通信管理上。在Serverless架构下,你只需要实现具体的功能函数并提交给Serverless,各功能函数之间的交互由Serverless接管,开发者不再需要关注功能函数交互的细节。


在简化微服务管理复杂度上,Serverless和Service Mesh的目标是一致的,都是将微服务通信和服务治理相关的非功能需求从业务中剥离,对于Serverless是交给Serverless框架负责处理,对于Service Mesh是下沉到底层,成为通信基础设施的一部分。


在Serverless中,按需执行的代码片断称为“函数”,它是Serverless资源管理和调度的基本单位,因此Serverless有时也被称为FaaS(Function As A Service,函数即服务)。Serverless架构大体由如下几个部分组成。

(1)函数管理Serverless需要对用户编写的函数进行管理,通过一定的方式将用户函数变成可调度、可运行的实例。为了支持多个语言的Serverless函数,函数管理需要针对每种语言定义函数规范和标准,提供相应的实现机制。


(2)事件触发器事件驱动是Serverless非常重要的组成部分,Serverless一般会定义一组关注的事件类型,并提供相应的事件触发和订阅框架,函数需要实现注册好关注的事件类型,事件触发时,Serverless框架查找关注这个事件的函数,触发函数的具体执行。


(3)函数的路由和伸缩管理在很多Serverless实现中,函数的访问和路由一般由API网关来负责,API网关根据相应的路由规则,找到相应的服务实例进行访问。在伸缩管理方面,监控函数当前的请求和资源。如果资源过多,则进行相应的资源回收;若资源不够,则增加相应的资源实例。


在Serverless中,函数实例按需创建运行,按需伸缩调整,函数实例必须特别轻量,能够快速启动,快速关停,Serverless也需要提供完善的机制,支持函数实例的快速启动。当前Serverless在快速启动方面还没有很好的解决方案,快速启动的程度决定了Serverless的应用范围和应用场景,在很多场景下,如果没有快速启动的支撑,Serverless很难应用起来。

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
Java 应用服务中间件 Android开发
IDEA 编译时 报 “常量字符串过长” 解决办法
IDEA 编译时 报 “常量字符串过长” 解决办法
4435 0
|
并行计算 算法 搜索推荐
简单学习一下AES算法:GCM、ECB、CFB、OFB等
简单学习一下AES算法:GCM、ECB、CFB、OFB等
3467 0
|
9月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
823 3
Linux系统禁用swap
|
缓存 网络协议 Ubuntu
Linux基础命令---nfsstat显示nfs状态
nfsstat nfsstat指令用来显示nfs客户端和服务器的活动信息。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora。 1、语法 nfsstat [选项] 2、参数列表 -s | --server 只显示服务器信息,默...
7411 0
|
存储 分布式计算 安全
阿里云服务器内存型实例怎么选?r7/r8y/r8i实例性能、适用场景与选择参考
在选择阿里云服务器时,针对内存密集型应用和数据库应用,内存型实例因其高内存配比和优化的性能表现,成为了众多用户的热门选择。在目前阿里云的活动中,内存型实例主要有内存型r7、内存型r8y和内存型r8i实例可选。为了帮助大家更好地了解这三款实例的区别,本文将详细对比它们的实例规格、CPU、内存、计算、存储、网络等方面的性能,并附上活动价格对比,以便用户能够全面了解它们之间的不同,以供选择和参考。
|
Python
使用 Python 合并微信与支付宝账单,生成财务报告
这篇博客介绍了如何使用 Python 脚本合并微信与支付宝账单数据,生成自动化财务报告。通过 pandas 库,学习如何清洗、合并和分析账单数据,以及如何生成 Markdown 格式的财务报告。
|
存储 机器学习/深度学习 编解码
app版本更新的五种实现方式
app版本更新的五种实现方式
2149 2
|
应用服务中间件 nginx
Nginx命令配置到系统环境变量
Nginx命令配置到系统环境变量
|
机器学习/深度学习 数据可视化 算法
经典时间序列分析概述:技术、应用和模型
时间序列数据按时间顺序收集,具有时间维度的重要性,需专门技术和模型进行分析预测。其应用广泛,涵盖经济预测、风险管理、天气预报、气候建模、流行病学、患者监测、需求预测、客户行为分析及预测性维护等领域。时间序列特征包括趋势、季节性和周期性模式。自相关和偏自相关用于衡量数据点间关系,白噪声表示无自相关的时间序列。平稳性指统计特性随时间保持一致,对建模至关重要。常见模型包括ARMA、ARIMA、SARIMA、ARCH和GARCH,用于捕捉复杂动态并预测未来模式。选择合适模型和确定顺序对准确预测至关重要。掌握这些基础知识不仅增强对复杂模型的理解,还能确保预测方法的稳健性和可靠性。
3888 2
经典时间序列分析概述:技术、应用和模型
|
Linux
如何查看当前的NFS挂载信息?
如何查看当前的NFS挂载信息?
3354 2

热门文章

最新文章