探索云原生世界:Serverless 技术的崛起与应用

news/2024/4/15 4:45:59/文章来源:https://blog.csdn.net/kingsley20090716/article/details/136493781

在云原生架构的浪潮中,Serverless 技术正逐渐崭露头角,成为开发者们极具吸引力的选择。Serverless 的出现颠覆了传统的服务器管理模式,为应用开发带来了全新的可能性。

Serverless 架构是一种无需管理服务器的新型架构,它允许开发人员专注于编写代码,而无需关心服务器的运行和维护。Serverless 技术可以自动扩展和缩减资源,降低运营成本,提高开发效率。Serverless 技术真正做到了在部署应用时无须涉及基础设施的建设,自动构建、部署和启动服务。

IaaS(Infrastructure as a Service,基础设施即服务)和容器技术是云的基础设施,可以为上层应用的运行提供海量低成本的计算资源。以 Kubernetes 为代表的容器编排服务是支撑云原生应用的操作系统,负责高校管理基础设施资源。面向特定领域的后端云服务(Backend as a Service,BaaS)提供了性能高度优化、抽象度更高的 API,成为构建云原生应用的重要元素。随着云原生的发展,存储、数据库、中间件、大数据、AI 等领域出现了越来越多的全托管、Serverless 形态的云服务,而不是自建存储系统和部署数据库软件。

1、Serverless 技术简介

Serverless 技术是一种计算模型,它让开发者无须关心服务器的管理和维护,而是专注于编写业务逻辑,在Serverless 模型中,开发者只需要编写函数,并将其上传云平台,云服务提供商会自动管理函数的运行环境,并根据函数的出发事件动态分配和释放资源。

FaaS(Function as a Service,功能即服务)是 Serverless 中最具代表性的服务形态,它把应用逻辑拆分为多个函数,并通过事件驱动的方式出发执行每个函数。FaaS 这种 Serverless 形态非常适合事件驱动的数据处理、API 服务等场景,但也面临着一些挑战。

2、Serverless 的特点

Serverless 消除了服务器等底层基础设施的运维复杂度,让开发人员能够更好地专注于业务逻辑的设计与实现,包含以下特点:

全托管的计算服务

客户只需要编写代码构建应用,而无须关注同质化的、负担繁重的服务器等基础设施的开发和运维等工作。

通用性

结合丰富的 BaaS 云服务能力,支持云上所有重要类型的应用。

自动的弹性伸缩

云平台会根据函数的出发事件动态调整资源,以满足应用的需求,大幅度降低用户资源容量规划的难度。

按量计费

开发者只需要为实际使用的资源付费,而不需要预先购买或租用服务器,企业的使用成本得到有效降低,无须为闲置资源付费。

事件驱动

Serverless 函数通常是通过事件触发器来执行的,比如 HTTP 请求、消息队列等。

3、Serverless 典型技术与架构

计算资源弹性调度

为了实现精准、即时的实例伸缩和放置,需要把应用负载的特征作为资源调度的依据,使用“白盒”调度策略,由 Serverless 平台负责管理应用所需的计算资源。平台要能够识别应用负载的特征,在负载快速上升时,及时扩容计算资源,保证应用性能的稳定性;在负载下降时,及时回收计算资源,加快资源在不同账户函数间的流转,提高数据中心的利用率。因此,更实时、更主动、更智能的弹性伸缩能力是函数计算服务获得良好用户体验的关键。计算资源的弹性调度,可以帮助用户实现指标收集、在线决策、离线分析、决策优化的闭环。

在创建新实例时,系统需要判断如何将应用实例放置在下层计算节点上。放置算法应当满足多方面的目标,具体列举如下:

  • 容错:当有多个实例时,将其分布在不同的计算节点和可用区上,以提高应用的可用性
  • 资源利用率:在不损失性能的前提下,将计算密集型、I/O密集型等应用调度到相同的计算节点上,尽可能充分地利用节点的计算、存储和网络资源,动态迁移不同节点上的碎片化实例,进行“碎片整理”,以提高资源的利用率
  • 性能:例如,复用启动相同应用实例或函数的节点,利用缓存数据缩短应用的启动时间等
  • 数据驱动:除了在线调度之外,系统还可以将天、周或更大时间范围的数据用于离线分析。离线分析的目的是利用全量数据验证在线调度算法的效果,为参数调优提供依据,通过数据驱动的方式加快资源流转的速度,提高集群整体资源的利用率

流量控制

在多租户环境下,流量控制是保证服务质量的关键。以函数计算为例,当函数调用量超过预期值时,如果问题是函数逻辑错误导致大量的非预期调用,那么系统应当及时进行流量控制,以确保用户的费用可控。函数计算允许用户配置最大函数运行实例数来限制应用负载。当应用负载上升、系统扩容时,如果函数实例数到达配额上限,那么系统将停止扩容并返回流控错误。除了用户层面的流量控制,当函数的负载动态变化导致系统节点过载时,也应当及时进行流量控制,以避免用户间互相影响。例如,当多个用户流量陡增、超过节点服务能力时,即使每个用户都未用满配额,系统也需要控制流量。该场景下的流量控制不但要及时,而且要公平。流量陡增越大的函数,计算请求被流量控制的概率应当越高。

安全性

Serverless 计算平台的定位是通用计算服务,要能够执行任意用户代码,因此安全是不可逾越的底线。系统应当从权限管理、网络安全、数据安全、运行时安全等各个维度全面保障应用的安全性。轻量安全容器等新的虚拟化技术实现了更小的资源隔离粒度、更快的启动速度以及更小的系统开销,使数据中心的资源使用变得更加细粒度和动态化,大幅提升了资源的使用效率。

4、Serverless 的应用场景

当前 Serverless 主要应用场景如下:

Web 应用开发

Serverless 可以用于构建轻量级的后端服务,支持无服务器的前后端分离架构。

数据处理与分析

Serverless 可以用于处理大规模数据,比如实时数据处理、ETL 任务等。

事件驱动的应用

Serverless 函数可以根据事件触发器执行,适用于处理异步事件和定时任务。

5、Serverless 的未来展望

随着云原生技术的不断发展,Serverless 技术也将迎来更广阔的应用场景和发展场景,未来,可以预见 Serverless 将成为云原生架构的重要组成部分,为开发者提供更简单、更灵活、更高效的开发方式。

Serverless 技术的崛起标志着云原生时代的来临,它将为应用开发带来全新的变革,随着越来越多的开发者和企业采用 Serverless 技术,我相信 Serverless 技术将成为未来云原生架构的重要支柱之一,推动企业数字化转型的进程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_996138.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能在信息系统安全中的运用

一、 概述 对于企业和消费者来讲,人工智能是非常有用的工具,那又该如何使用人工智能技术来保护敏感信息?通过快速处理数据并预测分析,AI可以完成从自动化系统到保护信息的所有工作。尽管有些黑客利用技术手段来达到自己的目的,但…

Echarts 配置项 series 中的 data 是多维度

文章目录 需求分析 需求 如下图数据格式所示,现要求按照该格式进行绘制折线图 分析 在绘制折线图时,通常我们的 series 中的 data 数据是这样的格式 option {title: {text: Stacked Area Chart},tooltip: {trigger: axis,axisPointer: {type: cross…

阿里云配置服务器详细指南_2024新版CPU内存带宽系统盘选择

阿里云服务器配置怎么选择?CPU内存、公网带宽和系统盘怎么选择?个人开发者或中小企业选择轻量应用服务器、ECS经济型e实例,企业用户选择ECS通用算力型u1云服务器、ECS计算型c7、通用型g7云服务器,阿里云服务器网aliyunfuwuqi.com整…

微前端之实现微前端的几种模式

微前端是什么 实现微前端的几种模式 基于路由分发:Web Components 或 Custom Elements:iframe集成:动态加载/懒加载微前端:容器化方案:single-spa 与 无界的区别 使用无界 准备工作 安装nvm安装pnpm 微前端是什么 微…

网康科技 NS-ASG 应用安全网关 SQL注入漏洞复现(CVE-2024-2022)

0x01 产品简介 网康科技的NS-ASG应用安全网关是一款软硬件一体化的产品,集成了SSL和IPSec,旨在保障业务访问的安全性,适配所有移动终端,提供多种链路均衡和选择技术,支持多种认证方式灵活组合,以及内置短信认证、LDAP令牌、USB KEY等多达13种认证方式。 0x02 漏洞概述 …

挑战杯 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

Redis实战—商户查询缓存

本博客为个人学习笔记,学习网站:黑马程序员Redis入门到实战 实战篇之商户查询缓存 目录 什么是缓存 添加Redis缓存 缓存更新策略 数据库缓存不一致解决方案 案例:给查询商铺的缓存添加超时剔除和主动更新策略 缓存穿透 案例&#xff1…

Linux之cd、pwd、mkdir 命令

cd命令,切换目录 1)当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录。 2)我们可以通过cd命令,更改当前所在的工作目录。 3)cd命令来自英文:C…

Python 开发图形界面程序

用 Python 语言开发图形界面的程序,有2种选择: Tkinter 基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。 PySide2/PySide6 基于Qt 的Python库&#x…

2024.03.02蓝桥云课笔记

1.scanf与printf取消分隔符的限制方法 示例代码: int main() { char s[10];scanf("%d[^\n]",s);printf("%s",s);return 0; } 运行: 输入:Hello World 输出:Hello World 注:其中[]中是一个正则…

飞书云文档API操作详细介绍

1.场景分析 公司内部很多文档都是由多人进行维护的,随时发生变更,因此在利用这些数据的时候就需要直接读取云文档的数据,从而执行下一步动作。团队云文档api执行权限一般需要管理员审核才能使用。如果你就是管理员,那么恭喜你&am…

Python(NetOps)前传-网络设备开局配置

背景 我们知道用Python在cli配置网络设备的前提是: 网络设备与Python主机网络可达网络设备已开启并完成ssh相关配置 目标 本文已华为S5720S-52P-LI-AC交换机为例,完成: 完成网络设备开局配置;用Python脚本验证ssh登录 配置 …

html css 导航栏 2

鼠标划过会向上移动改变颜色 html文件 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>导航栏</title><link rel"stylesheet" href"css/dhl1.css" /></head><body><div …

Marin说PCB之POC电路layout设计仿真案例---01

最近娃哈哈饮料突然爆火&#xff0c;看新闻后才知道春晚的的时候宗老已经病的很严重了&#xff0c;现在也已经离我们而去了&#xff0c;宗老是一个值得我们尊敬爱戴的伟大企业家。于是乎小编我立马去他们的直播间买了一箱娃哈哈AD钙奶支持一下我们的国货。 中午午休的时候&…

LeetCode_25_困难_K个一组翻转链表

文章目录 1. 题目2. 思路及代码实现&#xff08;Python&#xff09;2.1 模拟 1. 题目 给你链表的头节点 h e a d head head &#xff0c;每 k k k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k k k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节…

【HarmonyOS】鸿蒙开发之Stage模型-UIAbility的启动模式——第4.4章

UIAbility的启动模式简介 一共有四种:singleton,standard,specified,multion。在项目目录的:src/main/module.json5。默认开启模式为singleton(单例模式)。如下图 singleton&#xff08;单实例模式&#xff09;启动模式 每个UIAbility只存在唯一实例。任务列表中只会存在一…

网络编程(3/4)

广播 ​ #include<myhead.h>int main(int argc, const char *argv[]) {//1、创建套接字int sfd socket(AF_INET, SOCK_DGRAM, 0);if(sfd -1){perror("socket error");return -1;}//2、将套接字设置成允许广播int broadcast 1;if(setsockopt(sfd, SOL_SOC…

重装显卡驱动记录

重装显卡驱动记录 任务记录现状描述执行情况 任务 晚上回来&#xff0c;开电脑&#xff0c;发现总是进不去系统&#xff08;这个情况我经常见&#xff09;&#xff0c;但偶尔进系统&#xff0c;识别不了我的外接屏&#xff08;这个第一次见&#xff09;。来来回回重启了1h多了…

Igraph入门指南 2

3、图的基本要素——边(Edge|Arc) 图的最本质的内容是一种二元关系&#xff0c;如果给这种二元关系赋予一个方向&#xff0c;就产生了有向图和无向图的分类&#xff0c;在教材中&#xff0c;无向的边叫Edge&#xff0c;有向的边叫Arc&#xff0c;另外&#xff0c;根据两个顶点…

redis IO多路复用模型详解

一、IO 1.1、IO模型 我们常说的IO&#xff0c;指的是文件的输入和输出 &#xff0c;但是在操作系统层面是如何定义IO的呢&#xff1f;到底什么样的过程可以叫做是一次IO呢&#xff1f; 拿一次磁盘文件读取为例&#xff0c;我们要读取的文件是存储在磁盘上的&#xff0c;我们的…