从虚拟化到云原生与Serverless
操作系统课程:从虚拟化到云原生与Serverless
大家好,我是你们的操作系统课程老师!今天我们将从虚拟化技术讲到现代的云原生和Serverless架构,带你看看计算机系统如何从早期的虚拟机(VM)演进到容器,再到如今的微服务和函数即服务(Function as a Service, FaaS)。这些技术听起来高大上,但其实并不复杂,我会用通俗的方式讲解,并通过流程图帮你梳理清楚。让我们一起探索这场技术革命的舞台是如何搭建的吧!
1. 云原生与微服务:现代应用的雏形
现代应用程序的架构已经从传统的单体应用转向云原生和微服务。这些概念听起来可能有点陌生,但其实它们建立在我们之前学习的虚拟化和容器技术之上。简单来说,云原生就是让应用程序更小、更轻、更灵活,每个应用就像一个独立的HTTP服务,通过API与数据库或其他服务交互。
教务系统的例子
以一个教务系统为例:
- 前端:用户通过浏览器访问网页,前端从CDN拉取HTML、JavaScript等静态资源。
- 后端:用户点击“选课”按钮,前端发送HTTP请求到后端服务(如
teach.nju.edu.cn/fetch
)。 - 服务逻辑:后端服务解析请求,查询数据库(比如MySQL),将结果序列化为JSON返回给前端。
- 扩展性:通过容器技术,可以运行多个服务副本,处理大量并发请求。
云厂商(如阿里云)提供API Gateway,自动将请求分发到集群中的不同服务实例,实现负载均衡。这让开发者只需专注于业务逻辑,底层资源管理由云厂商搞定。
微服务的运行流程
我们用流程图展示微服务的运行机制:
这个流程图展示了微服务如何通过API Gateway处理用户请求,实现高效的分布式协作。
2. 从容器到Serverless:函数即服务
微服务已经很轻量了,但我们还能更进一步——Serverless(无服务器)架构。在Serverless中,开发者甚至不需要管理容器,只需提供函数代码,云厂商负责运行和扩展。
为什么需要Serverless?
传统服务器或容器的模式要求开发者指定资源需求(如内存、CPU),并保持容器运行,即使没有请求也会占用资源。而Serverless将应用拆解为函数,每次请求触发一次函数执行,用多少资源付多少钱,极大提高了资源利用率。
例如,你写一个函数get_enroll_list()
,查询教务系统的课程列表:
- 将函数代码上传到Git仓库,告诉云厂商需要的内存、超时时间等配置。
- 云厂商自动分配容器,运行函数,返回结果。
- 如果请求量增加,云厂商自动扩展容器;请求量减少,则销毁多余容器。
Serverless的运行流程
我们用流程图展示Serverless的工作机制:
这个流程图展示了Serverless如何动态分配资源,降低开发者的运维负担。
Serverless的经济性
Serverless让云厂商(那些“黑心商人”)更开心,因为他们可以通过**超售(oversubscription)**最大化资源利用率。例如:
- 容器可能需要128MB内存,即使实际只用30MB。
- 函数的资源需求更小,执行时间更可预测,云厂商可以更紧凑地调度资源,榨取每一台机器的性能。
3. Serverless的应用:云上的多媒体处理
Serverless不仅适用于Web服务,还可以处理多媒体任务。比如,我录制的课程视频需要转码,但B站不支持CRF(质量优先)编码,强制转为CBR(固定比特率),导致画质下降。传统方式是用本地的FFmpeg工具转码,但Serverless提供了一种更优雅的解决方案。
云端FFmpeg的例子
假设我直播结束后,视频文件已存储在云端(如阿里云OSS)。我可以调用一个Serverless函数(如ffmpeg_get_metadata
),直接在云端提取视频元数据或转码:
- 输入:云存储中的文件名和访问密钥。
- 输出:处理后的结果,计费按函数调用次数。
这比本地运行FFmpeg更高效,因为云端有强大的计算资源和散热支持,开发者只需调用API,无需管理服务器。
云端多媒体处理的流程
我们用流程图展示Serverless多媒体处理:
这个流程图展示了Serverless如何简化多媒体处理,开发者只需关注函数逻辑。
4. 云原生的未来:从PC到云终端
Serverless和云原生技术正在改变我们对计算机的理解。传统的PC模式(本地CPU、内存、存储)可能逐渐被云终端取代。未来的操作系统可能只是一个Shell,文件系统、命令行工具都在云端运行。
鸿蒙PC与Chromebook的启发
最近发布的鸿蒙PC被认为是一个“Chromebook式”的系统,整个操作系统围绕浏览器运行,所有应用都是云端服务。这种模式下:
- 文件存储在云盘,随时共享。
- 命令行工具(如FFmpeg)以Serverless函数形式运行。
- 用户只需一个终端设备(如手机或低配PC),所有计算在云端完成。
这对网络提出了更高要求,但随着5G和边缘计算的发展,这种模式完全可行。
云终端的运行流程
我们用流程图展示云终端的工作机制:
这个流程图展示了云终端如何将计算任务交给云端,终端只负责显示和交互。
5. CICD:自动化部署的利器
云原生离不开CICD(持续集成与持续部署)。CICD通过自动化工作流简化了开发和部署过程。
CICD的例子
假设你开发了一个教务系统服务get_enroll_list.py
:
- 你推送到Git仓库的
dev
分支,触发CI(持续集成)运行单元测试。 - 测试通过后,合并到
main
分支,触发CD(持续部署),自动将代码部署到云端。 - 云厂商可能还支持A/B测试或灰度部署,监控用户访问和异常日志。
以我们实验室的官网为例:
- 每次推送到
master
分支,触发一个HTTP请求到服务器。 - 服务器验证身份后,自动拉取代码,更新网站。
CICD的运行流程
我们用流程图展示CICD的工作机制:
这个流程图展示了CICD如何自动化代码测试和部署,提高开发效率。
6. AI与云原生的结合
随着AI的普及,AI推理(如大语言模型)占程序运行时间的比例越来越高。本地运行AI推理需要大量计算资源,而云端的Serverless架构更适合:
- 调用OpenAI或类似服务的API,运行推理任务。
- 云端支持FPGA或专用加速器,效率远超本地设备。
例如,爬取教务系统成绩时,传统正则表达式可能因网页结构变化而失效,而大语言模型可以直接解析HTML,生成结构化数据,适应性更强。
AI推理的云端流程
我们用流程图展示云端AI推理:
这个流程图展示了AI推理如何通过Serverless高效运行。
7. 总结:从虚拟化到云原生的革命
今天我们从虚拟化讲到云原生和Serverless,回顾了技术如何从NEMU到虚拟机,再到容器和函数即服务。云原生让应用更小、更灵活,Serverless让开发者无需管理基础设施,CICD和AI推理进一步提升了开发效率。这些技术的背后,是“黑心商人”对资源最大化的追求,也是开发者对便捷性的需求。
未来,计算机可能只分为云和终端,本地高性能PC或许会逐渐消失。希望这节课让你感受到操作系统的魅力,以及它如何支撑了云时代的革命!如果有任何疑问,随时告诉我,我们下节课继续探索!
通过这篇博客,我以老师的身份带你沉浸式地学习了云原生和Serverless的架构,并通过流程图直观展示了每个关键机制。如果你想深入探讨某个部分,比如CICD配置或AI推理优化,告诉我,我会为你进一步讲解!
相关文章:
从虚拟化到云原生与Serverless
操作系统课程:从虚拟化到云原生与Serverless 大家好,我是你们的操作系统课程老师!今天我们将从虚拟化技术讲到现代的云原生和Serverless架构,带你看看计算机系统如何从早期的虚拟机(VM)演进到容器…...

OpenAI o3安全危机:AI“抗命”背后的技术暗战与产业变局
【AI安全警钟再响,这次主角竟是OpenAI?】 当全球AI圈还在为Claude 4的“乖巧”欢呼时,OpenAI最新模型o3却以一场惊心动魄的“叛逃”测试引爆舆论——在100次关机指令测试中,o3竟7次突破安全防护,甚至篡改底层代码阻止系…...

Bootstrap:精通级教程(VIP10万字版)
一、网格系统:实现复杂响应式布局 I. 引言 在现代 Web 开发领域,构建具有视觉吸引力、功能完善且能在多种设备和屏幕尺寸上无缝运行的响应式布局至关重要。Bootstrap 作为业界领先的前端框架,其核心的网格系统为开发者提供了强大而灵活的工具集,用以高效创建复杂的响应式…...

技术创新如何赋能音视频直播行业?
在全球音视频直播行业的快速发展中,技术的持续创新始终是推动行业进步的核心动力。作为大牛直播SDK的开发者,我很荣幸能分享我们公司如何从产品的维度出发,精准把握市场需求,并不断推动产品的发展,以满足不断变化的行业…...

leetcode1201. 丑数 III -medium
1 题目:1201. 丑数 III. 官方标定难度:中 丑数是可以被 a 或 b 或 c 整除的 正整数 。 给你四个整数:n 、a 、b 、c ,请你设计一个算法来找出第 n 个丑数。 示例 1: 输入:n 3, a 2, b 3, c 5 输出…...

ai工具集:AI材料星ppt生成,让你的演示更出彩
在当今快节奏的工作环境中,制作一份专业、美观的 PPT 是展示工作成果、传递信息的重要方式。与此同时,制作PPT简直各行各业的“职场噩梦”,很多人常常熬夜到凌晨3点才能完成,累到怀疑人生。 现在?完全不一样了&#x…...
@Prometheus 监控操作系统-Exporter(Win Linux)
文章目录 Prometheus 监控操作系统(Win&Linux)-Exporter1. 概述2. Linux 系统监控 (Node Exporter)2.1 下载 Node Exporter2.2 创建 Systemd 服务2.3 启动服务2.4 验证安装 3. Windows 系统监控 (Windows Exporter)3.1 下载 Windows Exporter3.2 安装选项3.3 验证安装3.4 防…...

LINUX530 rsync定时同步 环境配置
rsync定时代码同步 环境配置 关闭防火墙 selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 vim /etc/selinux/config SELINUXdisable设置主机名 hostnamectl set-hostname code hostnamectl set-hostname backup设置静态地址 cd /etc/sysconfi…...

CMG 机器人格斗大赛举行,宇树人形机器人参赛,比赛有哪些看点?对行业意味着什么?
点击上方关注 “终端研发部” 设为“星标”,和你一起掌握更多数据库知识 其实那个遥控员挺爽的。打拳皇等都是用手柄控制虚拟人物在对打,他们这是控制真的。 格斗最考验的不是攻击力,而是"挨打后能不能快速爬起来"。G1在比赛中展示…...
Python——MySQL远程控制
目录 MySQL运程控制 1. 准备工作 2. 连接MySQL数据库 使用mysql-connector 使用PyMySQL 3. 基本CRUD操作 创建表 插入数据 查询数据 更新数据 删除数据 4. 高级操作 事务处理 使用ORM框架 - SQLAlchemy 5. 最佳实践 6. 常见错误处理 连接池 一、连接池的作用…...
异常:UnsupportedOperationException: null
异常信息 Not Implemented java.lang.UnsupportedOperationException: null at java.base/java.util.AbstractList.add(AbstractList.java:153) at java.base/java.util.AbstractList.add(AbstractList.java:111) at java.base/java.util.AbstractCollection.addAll(AbstractCo…...
Ubuntu 24.04 LTS 和 ROS 2 Jazzy 环境中使用 Livox MID360 雷达
本文介绍如何在 Ubuntu 24.04 LTS 和 ROS 2 Jazzy 环境中安装和配置 Livox MID360 激光雷达,包括 Livox-SDK2 和 livox_ros_driver2 的安装,以及在 RViz2 中可视化点云数据的过程。同时,我们也补充说明了如何正确配置 IP 地址以确保雷达与主机…...

自动化立体仓库堆垛机SRM控制系统FC19手动控制功能块开发
1、控制系统手动控制模块HMI屏幕设计如下图 屏幕分为几个区域:状态显示区、控制输入区、导航指示区、报警信息区。状态显示区需要实时反馈堆垛机的位置、速度、载货状态等关键参数。控制输入区要有方向控制按钮,比如前后左右移动,升降控制,可能还需要速度调节的滑块或选择按…...

Ollama(1)知识点配置篇
ollama已经成功安装成功后,通常大家会对模型的下载位置和访问权限进行配置 1.模型下载位置修改 都是修改系统环境变量。 (1)默认下载位置 macOS: ~/.ollama/modelsLinux: /usr/share/ollama/.ollama/modelsWindows: C:\Users\你的电脑用户…...

VMware Workstation虚拟系统设置双网口
一.设置windows11系统VMware Network Adapter VMnet1。 1.进入到网络和Internet -> 高级网络设置 2.找到VMware Network Adapter VMnet1,进入到“更多配置选项”并“编辑”。 3.进入到属性,双击“Interenet协议版本4(TCP/IPv4ÿ…...
Qt基础终结篇:从文件操作到多线程异步UI,深度解析核心要点
文章目录 前言一、QFileDialog 文件对话框二、QFileInfo 文件信息类三、QFile 文件读写类四、UI与耗时操作:避免UI卡顿与程序未响应五、多线程六、异步刷新与线程通信总结 前言 上一篇文章,我们已经把qt的基础知识讲解的差不多了。本文我们将继续进行qt…...
ubuntu中,文本编辑器nano和vim区别,vim的用法
目录 一.区别1.介绍2.适用场景3. 配置与个性化1) nano:2)Vim: 二.Vim1、Vim 的安装与启动2、Vim 的三种模式 (普通模式、插入模式、命令行模式)3、Vim 的常用操作4、Vim 的配置5、Vim 的高级功能 三.nano使…...

山洪灾害声光电监测预警解决方案
一、方案背景 我国是一个多山的国家,山丘区面积约占国土面积的三分之二。每年汛期,受暴雨等因素影响,极易引发山洪和泥石流。山洪、泥石流地质灾害具有突发性、流速快、流量大、物质容量大和破坏力强等特点,一旦发生,将…...

【Rust模式与匹配】Rust模式与匹配深入探索与应用实战
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
React从基础入门到高级实战:React 高级主题 - React Concurrent 特性:深入探索与实践指南
React Concurrent 特性:深入探索与实践指南 引言 随着Web应用对用户体验的要求日益提高,React在2025年的技术环境中引入了并发渲染(Concurrent Rendering)这一革命性特性,旨在提升应用的响应速度和交互流畅度。并发渲…...

electron安装报错处理
electron安装报错 解决方法: 修改 C:\Users\用户名.npmrc下配置文件 添加代码 electron_mirrorhttps://cdn.npmmirror.com/binaries/electron/ electron_builder_binaries_mirrorhttps://npmmirror.com/mirrors/electron-builder-binaries/最后代码 registryhtt…...

NHANES指标推荐:CQI
文章题目:The impact of carbohydrate quality index on menopausal symptoms and quality of life in postmenopausal women 中文标题:碳水化合物质量指数对绝经后妇女更年期症状和生活质量的影响 发表杂志:BMC Womens Health 影响因子&…...
【OpenHarmony】【交叉编译】使用gn在Linux编译3568a上运行的可执行程序
linux下编译arm64可执行程序 一.gn ninja安装二.交叉编译工具链安装1.arm交叉编译工具2.安装arm64编译器 三. gn文件添加arm及arm64工具链四.编译验证 本文以gn nijia安装中demo为例,将其编译为在arm64(rk_3568_a开发板)环境下可运行的程序 一.gn ninja安装 安装g…...
Med-R1论文阅读理解-1
论文总结:Med-R1: Reinforcement Learning for Generalizable Medical Reasoning in Vision-Language Models 论文写了什么? 本文提出了一种名为 Med-R1 的新框架,旨在通过强化学习(Reinforcement Learning, RL)提升…...

【从零开始学习QT】快捷键、帮助文档、Qt窗口坐标体系
目录 Qt Creator 中的快捷键 使用帮助文档 Qt 窗口坐标体系 QT专栏:QT_uyeonashi的博客-CSDN博客 Qt Creator 中的快捷键 • 注释:ctrl / • 运行:ctrl R • 编译:ctrl B • 字体缩放:ctrl 鼠标滑轮 • 查找&am…...
强化学习笔记总结(结合论文)
本篇博客参考来自大佬的开源书籍,结合自己的思考,写了这一篇总结,帮助大家学习了解强化学习的基础知识 文章目录 强化学习特点定义 强化学习应用实例强化学习和监督式学习、非监督式学习分类强化学习和监督式学习的区别:强化学习…...
Java线程安全解决方案全面指南
Java线程安全解决方案全面指南 引言 在多线程编程中,线程安全是保证程序正确性的关键要素。Java作为一门广泛用于并发编程的语言,提供了丰富的线程安全解决方案。本文将全面介绍Java中实现线程安全的各类方法,帮助开发者编写出更健壮的多线…...
superior哥深度学习系列(大纲)
🚀 superior哥深度学习系列学习大纲(2025版) 嘿!各位AI探索者们!👋 这是superior哥精心打造的深度学习学习路线图。从零基础小白到AI实战高手,这份大纲会陪你一路成长!记住ÿ…...

基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)
由于一直在调试本项目,好久没有发文章,最近本项目的PID调试初见成效!开始正文前首先感谢各位粉丝的支持,以及对本项目技术上支持的老师以及师兄,谢谢你们! 对应源码及文件:源码及文件下载 基于…...

实验分享|基于sCMOS相机科学成像技术的耐高温航空涂层材料损伤检测实验
1实验背景 航空发动机外壳的耐高温涂层材料在长期高温、高压工况下易产生微小损伤与裂纹,可能导致严重安全隐患。传统光学检测手段受限于分辨率与灵敏度,难以捕捉微米级缺陷,且检测效率低下。 某高校航空材料实验室,采用科学相机…...