Contents

云计算小知识

云计算基础概念

云计算的定义

美国国家标准技术学院(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

拓展与后续学习建议

  1. 深入云计算架构:学习微服务架构、容器编排(Kubernetes)、服务网格等现代云原生技术
  2. 分布式系统实践:通过实际项目理解分布式存储(Cassandra、HBase)和分布式计算框架的使用
  3. 安全加固:深入学习云安全技术,包括零信任架构、同态加密、安全多方计算等前沿领域
  4. 性能优化:学习云环境的性能调优方法,包括网络优化、存储优化和资源调度策略
  5. 多云与混合云:了解多云管理、混合云架构以及云边协同等新兴技术方向