云计算小知识
云计算基础概念
云计算的定义
美国国家标准技术学院(NIST)给出的定义:
云计算是一种模型,可以方便地通过网络访问可配置的计算资源(网络、服务器、存储设备、应用程序、服务等)的公共集。这些资源可以被快速提供和发布,同时最小化管理成本和服务供应商的干预。
云计算的服务模式
云计算主要提供三种服务类型:
| 服务模式 | 全称 | 说明 |
|---|---|---|
| IaaS | Infrastructure as a Service(基础设施即服务) | 提供虚拟化的计算资源 |
| PaaS | Platform as a Service(平台即服务) | 提供开发和部署平台 |
| SaaS | Software as a Service(软件即服务) | 提供完整的应用软件 |
云计算的三元认识论
从三个维度理解云计算:
- 商业模式
- 计算范式
- 实现方式
2006 年 8 月,Google CEO 施密特在 SES 大会上首次提出"云计算"概念。
分布式系统理论
CAP 理论
分布式计算领域的公认定理,包含三个核心要素:
| 要素 | 含义 | 说明 |
|---|---|---|
| C - Consistency | 一致性 | 所有节点在同一时刻看到相同的数据 |
| A - Availability | 可用性 | 每个请求都能在合理时间内得到响应 |
| P - Partition tolerance | 分区容错性 | 系统在网络分区时仍能运行 |
核心结论:一个分布式系统最多只能同时满足上述三项中的两项。
分布式计算特性
共有特性:拓展性
理论基础:
- ACID 原则
- CAP 理论
- BASE 理论
分布式环境中的一致性程度:
- 强一致性
- 弱一致性
- 最终一致性
分布式计算的定义:两个或多个软件互相共享信息,这些软件可以在同一台计算机上运行,也可以在通过网络连接的多台计算机上运行。
分布式计算的优点:
- 稀有资源可以共享
- 在多台计算机上平衡计算负载
- 把程序放在最适合运行它的计算机上
分布式系统类型
- 流媒体系统
- 透明计算系统
- 以太坊系统
嵌入式系统不属于分布式系统。
分布式系统分类:
- 分布式存储系统
- 分布式计算系统
- 分布式资源管理系统
虚拟化技术
虚拟化技术概述
虚拟化技术是一种资源管理技术,将计算机的各种实体资源(服务器、网络、内存、存储等)予以抽象、转换后呈现出来,打破实体结构间的不可切割障碍。
三种主要类型:
- 服务器虚拟化
- 网络虚拟化
- 桌面虚拟化
全虚拟化与半虚拟化
| 对比项 | 全虚拟化 | 半虚拟化 |
|---|---|---|
| 实现方式 | 二进制翻译和直接指令执行 | 虚拟机系统与虚拟化软件层通过交互 |
| 虚拟化代价 | 较高 | 较低 |
| 未经修改的操作系统 | 支持(如 Windows) | 不支持 |
| 兼容性、可移植性 | 较好 | 较差 |
硬件虚拟化代表技术:
- GPU 虚拟化
- FPGA 虚拟化
- RDMA 虚拟化
- NVM 虚拟化
轻量级虚拟化技术
相对于重量级虚拟化,轻量级虚拟化没有虚拟出完整的计算机环境,只是虚拟出进程的运行环境,容器之间相互隔离,运行在同一主机系统上。
代表技术:
- Docker(2013 年)
- LXC(2008 年)
- Solaris Zones(2008 年)
- Windows 容器(2016 年)
云架构与模式
云的工作负载模式
- 时开时停模式
- 用量迅速增长模式
- 瞬时暴涨模式
- 周期性增减模式
云栈与云体
| 概念 | 说明 |
|---|---|
| 云栈 | 云平台,在云上面建造的运行环境 |
| 云体 | 云计算的物质基础,云计算所用到的资源合集 |
二者结合用来进行计算或处理,即为云计算。
软件定义数据中心(SDDC)
数据中心的所有基础设施都是虚拟化的,并且能够以一种"所要即所得"的服务方式来提供。
特点:
- 不需要管理员频繁照看
- 网络可划分且 IP 地址不冲突
- 部署负载均衡,测试方便
- 资源按需分配
- 能自动修复崩溃并进行记录
软件定义网络(SDN)
SDN 是一种新型网络解决方案,将网络资源抽象到虚拟化系统中的 IT 基础架构方法。核心特征:
- 网络硬件可集中式软件管理
- 可编程化
- 控制与转发分离
平面划分:
- 控制平面:SDN 控制器所在的平面,通过北向接口与应用平面中的网络应用进行通信,负责配置策略、监控性能
- 数据平面:由控制平面转发表中的数据包组成
多层客户机/服务器架构
属于中间层架构。
云计算安全
安全技术框架
云用户安全目标:
- 云数据安全与隐私保护
- 云安全管理
云计算安全服务体系:
| 层次 | 内容 |
|---|---|
| 云基础设施服务 | 操作系统、搜索、开发平台、数据管理等 |
| 云基础安全服务 | 用户身份管理、访问控制、加密、审计等 |
| 云安全应用服务 | 网页过滤与杀毒、网络安全监控、垃圾邮件过滤、DDoS 攻击预警等 |
DDoS 攻击
DDoS 攻击是利用恶意程序对一个或多个目标发起攻击,消耗目标服务器性能或网络带宽,从而造成服务器无法正常提供服务。
云计算进阶技术
持续集成与持续交付
| 概念 | 说明 |
|---|---|
| 持续集成 | 软件开发实践方法,要求团队成员经常整合工作成果,每人每天多次提交代码做继承构建 |
| 持续交付 | 软件过程控制方法,以可持续的方式安全快速地将软件变更交付给用户使用 |
云操作系统
构架于服务器、存储、网络等基础硬件资源和单机操作系统、中间件、数据库等基础软件之上,管理和驱动海量基础硬件、软件资源的云平台综合管理系统。
功能:
- 管理和驱动海量基础硬件,逻辑上整合成一台服务器
- 为云应用软件提供统一、标准的接口
- 管理海量的计算任务,进行资源调配和迁移
云件的关键技术
| 技术 | 说明 |
|---|---|
| 虚拟化技术 | 提供运行环境、操作系统、库、组件等 |
| 云端渲染交互技术 | 渲染过程放在云端,交互事件通过网络传到云端 |
| 容器技术 | 轻量级虚拟化技术,启动镜像实例快,占用资源少 |
| 媒体流数据压缩技术 | 降低交互延迟,保证渲染输出帧质量 |
| 终端交互技术 | 云件主体运行在云端,终端只需配备交互平台 |
前提是容器技术、GPU 虚拟化技术、5G 网络技术、HTML5 前端交互技术的成熟。
AIOps(智能运维)
关键场景与技术:
- KPI 瓶颈分析
- KPI 异常检测
- 智能诊断
- 自动修复
- 事故管理
- 故障预测
桌面云架构
内容层次:
- 传输协议(协议层)
- 服务层
- 资源层
- 安全
软件开发云
通过云服务的方式提供一站式云端开发运营(DevOps)平台。
传统软件开发云面临的挑战:
- 获取基础设施难,基础设施交付周期长
- 各种开发和测试环境需要部署和维护
- 开发和测试环境不能完全复现生产环境场景
- IT、开发、运维、测试部门割裂
云计算、大数据与人工智能的关系
发展历程
- Cloud 1.0:2006 年云计算元年
- Cloud 2.0:ABC(AI、BigData、Cloud)的融合时代
三者关系
| 领域 | 聚焦方向 |
|---|---|
| 云计算 | IT 基础设施 |
| 大数据 | 计算能力与存储能力的提升 |
| 人工智能 | 更智能化的应用或具有学习能力的机器 |
相互关系:
- 大数据从属于云计算,是云计算的应用,需要云计算提供平台
- 人工智能的兴起是云计算、大数据演进和成熟的必然结果,拓展了 AI 应用场景,加快 AI 产业化进程
实验部分
实验 1
VirtualBox、VMware Workstation 是桌面虚拟机软件,可以在上面安装 Linux 等操作系统
KVM 是基于内核的虚拟机,内建于 Linux 中,使主机计算机能够运行多个隔离的虚拟环境
Docker 采用轻量级虚拟化技术,支持打包应用以及依赖包到镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化
实验 2
HTCondor 是分布式计算框架,可以进行大吞吐量计算
本质是将一个大的计算任务划分成多个小任务,分配给网络计算集群,最终合并结果
实验 3
Openstack 是开源的部署云的操作平台,可以利用虚拟资源池构建和管理私有云和公共云
实验 4
Hadoop 是开源的分布式系统基础架构,核心是 HDFS 和 MapReduce
HDFS 为海量的数据提供了存储,而 MapReduce 则为海量的数据提供了计算
实验 5
Mininet 是一个轻量级软件定义网络和测试平台,可以 模拟一个完整的网络主机、链接和交换机,有助于开发、测试和演示
OpenDaylight 用于管理云网络
通过 Mininet 和 Opendaylight 可以创建一个 SDN,通过软件定义网络
实验 6
Node.js 是一个 JavaScript 运行环境,通过在 Docker 环境中部署 Node.js,体验云原生应用开发
DevCloud 是华为公司推出的云上一站式软件实训平台,提供项目管理、代码托管、CloudIDE、代码检查、编译构建等功能
实验 7
Mesos 是开源的集群管理器,通过在多种不同框架之间共享可用资源来提高资源使用率
实验 8
Ganglia 是开源集群监视项目,主要是用来监控系统性能,如:CPU、内存、硬盘利用率,I/O 负载、网络流量情况等
Nagios 是一款开源的电脑系统和网络监视工具,能有效监控 Windows、Linux 和 Unix 的主机状态,交换机路由器等网络设置
通过安装 Ganglia 和 Nagios,来监控 hadoop 集群的系统性能
实验 9
使用前面安装的 Openstack 和 KVM 搭建桌面云系统
微助教题目
选择题
-
云计算的三元认识论 P21
商业模式
计算范式
实现方式 -
2006 年 8 月,SES 大会上,时任 Google 公司 CEO 施密特提出了云计算这个概念 P2
-
云计算主要提供的服务 P21
IaaS(基础设施即服务)
PaaS(平台即服务)
SaaS(软件即服务) -
云计算的演进过程不包括:虚拟计算 P6~10
-
分布式计算的优点 P41
稀有资源可以共享
通过分布式计算可以在多台计算机上平衡计算负载
可以把程序放在最适合运行它的计算机上 -
分布式计算理论基础 P42~46
ACID 原则
CAP 理论
BASE 理论 -
分布式计算和并行计算共有的特性:拓展性 P56
-
分布式系统 P60
流媒体系统
透明计算系统
以太坊系统嵌入式系统不是
-
云的工作负载模式 P78
时开时停模式
用量迅速增长模式
周期性增减模式
瞬时暴涨模式 -
多层客户机/服务器的计算架构属于:中间层架构 P81
-
不支持未经修改的操作系统的虚拟化是:半虚拟化 P109
-
VMM:虚拟机监视器(Virtual Machine Monitor) P106
-
虚拟化技术涉及的类别 P106
服务器虚拟化
网络虚拟化
桌面虚拟化 -
软件定义数据中心的特征 P90
不需要人为分配资源
但是仍需要管理员照看、需要划分网络、需要部署测试,只是都变得相对方便简易 -
属于 SaaS 层次的架构:应用软件 P23
填空题
-
可以通过(DevStack)工具安装 Openstack P101
-
Linux 在配置好软件源之后执行 Docker 安装的指令是: P127
$sudo apt-get install docker-ce -
(虚拟化)是云计算赖以存在的基础和提供的功能的实质
-
云计算架构中的物质基础是(云体),运行环境称为(云栈) P86
-
云计算革命性的概念是 IT 作为(服务) P76
-
分布式环境中不同程度的一致性包括(强一致性;弱一致性;最终一致性) P47
-
分布式计算就是两个或者多个软件互相(共享信息),这些软件可以在同一台计算机上运行,也可以在通过(网络)连接起来的多台计算机上运行 P41
-
云计算公共特征的其中两个是(弹性伸缩;快速部署) P14
还有资源抽象、按用量计费、宽带访问 -
开源技术是云计算的一种方法论,跟这类技术相关的软件类型通常包括(开源软件;自由软件;免费软件) P25
-
可以按云计算的(部署方式)和(服务类型)来分析现在各种各样的云方案 P15
-
相对于软件定义的数据中心这一新概念,还有软件定义(计算、网络、存储) P90
-
分布式系统大概可以分为三类,分布式存储系统、分布式计算系统和(分布式资源管理系统) P58
简答题
NIST 给的云计算定义是? P5
举例来阐述和证明 CAP 理论。 P44
什么是轻量级虚拟化技术?并列举出两个代表。 P122
云计算的纵向层次系统结构以及其中对应的三层架构模式是? P23
思考题
如何理解“开源是种方法论”? P29
对比目前已知的传统虚拟机的差异及优缺点。
云计算的架构是如何进化的? P80
利用 HTCondor 分析分布式计算的原理和步骤。
综合题
列出各种计算模式并指出其对云计算模式的促进作用。 P6
云计算的原理与技术、开发与营运以及应用与案例对应的内容是? 前言 P2
拓展与后续学习建议
- 深入云计算架构:学习微服务架构、容器编排(Kubernetes)、服务网格等现代云原生技术
- 分布式系统实践:通过实际项目理解分布式存储(Cassandra、HBase)和分布式计算框架的使用
- 安全加固:深入学习云安全技术,包括零信任架构、同态加密、安全多方计算等前沿领域
- 性能优化:学习云环境的性能调优方法,包括网络优化、存储优化和资源调度策略
- 多云与混合云:了解多云管理、混合云架构以及云边协同等新兴技术方向