HICLC二阶
流程图:虚拟化---云平台
一、虚拟化
- 虚拟化基础
- 资源划分
- 虚拟化技术:将物理机资源虚拟化多个逻辑资源
资源集合 将多台物理机资源合并在一起提高计算速度。
- 分布式系统技术
- 分布式数据库,分布式计算,分布式存储等
- 资源划分
- 虚拟化技术关键机制
- 小型机虚拟化
- 虚拟化类型
- 动态逻辑分区(LPAR)
- 将处理器分成多个逻辑分区,每个逻辑分区相对独立运行OS
- 多个运行系统间调整处理器资源,借用闲置分区处理其他分区负载
- 微分区
- 虚拟分区只占用一部分CPU资源,最细粒度达到一个核心的1/10
- 每个处理器核最大支持10个动态逻辑分区
- 虚拟IO服务器(VIOS)
- powervm特定用途的一个分区,为其他分区提供虚拟化IO资源
- 内存虚拟化
- 活动内存共享,在多个分区间共享内存
- 将内存由一个分区重新分配到另一个分区
- LX86
- 动态逻辑分区(LPAR)
- 虚拟化类型
- OS级别虚拟化
- 操作系统内核允许多个隔离的用户态实例运行
- 用户角度看,用户态实例如同一个实际服务器在运行
- 内核提供隔离、资源管理能力
- 桌面虚拟化
- 用户桌面环节与实际运行环境分离
- 用户运行任务在服务器端执行,所有计算、存储资源由服务器端提供
- 用户使用瘦终端(只负责交互界面显示)或远程桌面访问远端服务器
- 虚拟化桌面架构(VDI)
- 用虚拟机运行桌面操作系统
- 虚拟机在远端服务器上
- 集中计算、分布显示
- 支持客户端桌面工作负载托管在数据中心服务器上
- 用户通过远程桌面协议与虚拟桌面通信
- 虚拟化平台:服务器集群
- 虚拟化管理平台:管理桌面虚拟机实例
- 客户端设备:PC,瘦终端,移动设备等
- 通信协议:
- 远程桌面协议:RDP
- 独立计算体结构:IAC
- 优点
- 容易增加新桌面
- 提高数据安全性,安全远程访问,统一管理
- PC体验
- 缺点:
- 潜在的性能损失,不适合运行图形丰富的应用,视频或者图片处理能力较差
- 交互延迟
- 网络管理风险增加,用户数据的隐私
- 桌虚拟化对比
- 硬件虚拟化
- 基本概念
- 通过软件方式创建和真实物理机基本一致的虚拟机器
- 应用在虚拟机上运行与真实物理机上基本一致
- 硬件辅助虚拟化:借助包含专门支持虚拟化技术和CPU硬件进行虚拟化操作可以提高硬件虚拟化的性能
- 宿主机:运行虚拟化软件的物理机器
- 客户机:在物理机器上虚拟化出来的机器
- hypervisor/virtual machine monitor:在宿主机上创建、监测和管理虚拟机的软件
- 主要架构
- bare-metal架构(裸金属架构)
- 直接运行在物理裸机上,对机器拥有绝对的控制权
- 类似于传统的操作系统
- hosted架构(宿主架构)
- 运行在宿主机的操作系统上
- 一般为操作系统内核模块
- 很多虚拟化功能依赖于操作系统本身功能或者专门硬件功能
- bare-metal架构(裸金属架构)
- 虚拟化主要方法
- 全虚拟化(full virtualzation)
- hypervisor负责所有的虚拟化工作
- 客户机操作系统不用修改
- 典型代表:VMware
- 性能受纯软件模拟影响
准虚拟化(para virtualzation) 主要概念dom0(只有一个)
- 客户机操作系统感知底层的虚拟化环境
- 客户机操作系统需要修改,无法适用于闭源操作系统(Windows),与hypervisor配合完成虚拟化工作,例如修改驱动
- 典型代表:xen
- 性能优于全虚拟化
- 借助某些特别设计的CPU或硬件改进虚拟化的性能,需要硬件支持
- inter vt-x/amd-v
- 典型代表:Linux KVM
- 不需要修改客户机操作系统
- 全虚拟化(full virtualzation)
- CPU虚拟化
- 安全性和性能高效的挑战
- 需要有不同的CPU运行级别
- 需要不同特权的指令(ring0-ring3)
- 全虚拟化方式 虚拟机特权ring1 VMM特权ring0
- 纯软件模拟
- 陷入并模拟
- 二级制重写
- 准虚拟化方式
- 修改客户机内核
- 使用hypercall
- 硬件辅助虚拟化
- 增加一种新的CPU运行模式vmx root
- hypervisor运行在该模式下,客户机操作系统运行在ring0
- vmx root模式下增加了新的支持虚拟化的指令
- 客户机操作系统发出的特权指令和敏感指令可以由VMX root模式下的hypervisor捕获和处理
- 内存虚拟化
- 提供客户机一个隔离的、从零开始且连续的内存空间
- 客户机物理地址空间(GPA):从零开始的连续地址空间
- 宿主机虚拟地址空间在客户机地址空间的一个映射,GPA在宿主机上可以能映射在不连续的区间
- 客户机物理地址找到对应的映射区间,根据客户机物理地址在此映射区间的便宜获取对应的宿主机虚拟地址,通过宿主机的页表实现客户机物理地址到宿主机物理地址之间的转换
- IO虚拟化
- 全虚拟化
- hypervisor模拟IO设备寄存器和读写操作
- 优点:
- 客户机操作系统不用修改、直接使用已有的驱动
- 缺点:
- 性能差,每一次对IO设备寄存器的访问都会触发trap(指令转换)给hypervisor
- hypervisor需要模拟辅助的硬件,不同硬件需要不同实现
- 准虚拟化
- 在客户机操作系统中增加虚拟的驱动(frontend)
- 在hypervisor中实现相应的虚拟驱动
- 优点:性能好,不需要模拟物理设备
- 缺点:需要修改客户机操作系统
- 、硬件辅助虚拟化
- 全虚拟化
- 网络虚拟化
- 连通性
- 虚拟机之间的能网络连通
- 虚拟机能够连通互联网用于应用交互
- 隔离性
- 虚拟机root用户可以获取虚拟网络接口信息
- 虚拟root用户不能获取物理机的MAC地址。
- 性能
- 虚拟机间的虚拟网络传输性能应该尽可能与实际物理网络一致
- 桥接 bridge
- 将虚拟机的网卡桥接到实际宿主机的网卡上,监听多个IP
- 静态分配IP地址,支持虚拟机成为宿主机网络独立的IP机器
- 近似于实际物理网络的性能,没有网络隔离机制
- NAT
- 在宿主机上建立虚拟网卡(vmnet8或virbr0-nic),类似于链接内网的网卡。
- 物理机网卡类似于连接外网的网卡
- 虚拟机网络与宿主机网络隔离,虚拟机之间网络没有隔离机制。
- VLAN
- 自定义局域网,给每个局域网分配一个标间,将虚拟机分配到唯一的局域网中,每个局域网有一段唯一的IP地址
- 不同局域网之间通过不同的标签和IP网段进行隔离,不能相互通信
- 连通性
- 虚拟机迁移
- 内存三阶段-push阶段
- 源虚拟机保持运行,部分内存页通过网络推送到目标机器,内存推送过程中,若源机器上被修改,需要重新传输
- 内存三几段-stop-and=copy
- 源虚拟机停止运行
- 剩余内存页被传输到目的机器
- 新虚拟机启动
- 纯stop-and-copy
- 简单,易于实现
- 宕机时间和总迁移时间与源虚拟机内存大小成比例
- 内存三个几段-pull
- 新虚拟机执行时若发生page fault(没有找到数据),则表明新虚拟机上有没有拷贝的内存页,缺失的部分从源虚拟机上拷贝过来
- 单纯的demand-and-migration
- 使用很短的stop-and-copy阶段拷贝核心的内核数据结构
- 目标虚拟机宕机后,其他内存页在第一次使用时被传输
- 宕机时间段,但是总迁移时间长
- 由于可能存储过多的page fault,目标虚拟机性能会受影响
- 预拷贝迁移
- 有次数的迭代阶段:push:所有内存页进行拷贝;第N轮迁移的内存页是在第n-1轮修改的内存页
- 非常短的stop-and-copy阶段:源虚拟机停止运行;剩余内存页被传输至目的机器,新虚拟机启动
- 内存三阶段-push阶段
- 基本概念
- 小型机虚拟化
- 主流虚拟化技术
- VMware vsphere主要组件
- 计算:ESXi、存储:VMFS、网络:vDS、资源管理:DRS、可用性:vMotion
- ESXi server:CPU和内存的虚拟化,二进制重写机制,提升虚拟化能力
- vmotion:虚机在线迁移
- VMFS:高性能集群文件系统,针对虚拟化服务器环境构建和优化,可让多个虚拟机共同访问一个整个的集群式存储池,从而提高资源利用率
- 多种存储方式:DAS SCSI 、FC SAN、iscsi、NAS
- thin provisiong(自动精简配置)提高存储利用率、资源池化
- VDS:vswitch虚拟交换机在虚拟机与物理机之间提高第2层连接性
- 虚拟局域网分段、流量隔离以及改进的可管理性
- 内置网络绑定及物理网络资源的负载均衡
- 流速限制,增强对物理网络流量的控制
- DPS:动态扩展虚拟机资源(auto-scaling)
- 虚拟机的初始放置
- 物理机增加或删除时,自动调整资源
- xenserver
- domain概念
- xen将宿主机和客户机的运行环境称为domains
- domain0
- 第一个运行的客户机,拥有最高权限,提供设备驱动和用户接口
- 在其他虚拟机之间进行任务调度
- domainU
- 受限的客户机,没有执行hypercalls的权限
- 可以运行任意类型的操作系统
- domain概念
- KVM与QEMU
- 基于内核的虚拟机(kernel-based virtual machine)
- X86架构下基于Linux系统的虚拟化方案
- 依赖于CPU对虚拟化的支持
- 可加载的内核模块
- 核心模块:kvm.ko
- 针对处理器的专门模块:kvm-inter.ko/kvm-amd.ko
- KVM将Linux内核转变为hypervisor使的CPU对用户控件可用
- 一个Linux内核模块允许用户控件程序使用处理器对硬件虚拟化支持的功能
- QEMU是通用、开源的机器模拟器,可用在一种CPU架构下运行另一个架构的操作系统和应用
- 直接在宿主机CPU上运行客户机应用
- KVM:
- 内核模块:可在宿主机CPU上直接调度虚拟机CPU请求
- 依赖支持虚拟化的CPU架构
- 额外开销小
- QEMU:在用户态提供其他硬件的模块
- KVM与QEMU通过暴露在用户控件的/dev/kvm设备交互,通过ioctl调用
- Linux container(LXC)
- 轻量级的内核虚拟化技术
- 在单一主机上提供多个虚拟环境(容器)隔离进行和资源,每个虚拟机环境拥有自己的进程和独立的网络空间
- 将单个操作系统管理的资源划分到孤立的组,在不同组间平衡有冲突的资源使用需求
- 从用户角度看,容器和独立运行一台Linux一样
- 容器技术原理
- cgroup资源管理
- namespace资源隔离
- chroot文件系统隔离
- 优点:
- 不需要模拟指令,不需要即时编译
- 可以在CPU直接运行指令
- 共享公共文件的页缓存
- 缺点
- 必须和主机使用相同内核,不能运行其他种类操作系统
- 主流虚拟化软件比较
- VMware vsphere主要组件
- 虚拟化技术的应用P86
二、平台关键技术与应用
(一)云平台架构分析
- 历史
- openstack架构---云管理平台
- 概念
- 美国国家技术和标准研究院(NIST):通过网络按用户使用付费方式过得共享资源。
- 五大特点
- 弹性、按需、可计量、自运维、多点接入
- 三层架构
- Laas :基础设施服务
- Pass:系统平台
- SaaS:软件应用
- 云平台类型
- 公有云
- 典型:AWS、阿里、腾讯、金山
- 运营商:移动(合营云、移动云)、电信、联通
- 私有云
- 自建私有云:企业自建数据中心,搭建云计算平台。
- 托管私有云:第三方管理运行,使用设备服务器都是单独的,不共享。
- 优势:数据安全、性能可控。
- 缺点:成本高、技术含量高。
- 混合云
- 企业:商业机密私有云,对外业务公有云,通过专线连接。
- 企业扩容:逐步迁移。自建机房迁移上云。
- 公有云
- 基于SOA架构构建云平台
- 虚拟机管理与调度
- 虚拟机镜像和用户数据存储
- 虚拟网络构建
- 云计算管理平台接口
- 云计算平台用户接口
- SOA架构
- 模块化
- 松耦合 :关联性小
- 定义良好的接口(API)
- SOA架构与RESTfua API
- REST构建于HTTP协议上
- GET:查询资源
- POST:增加资源
- PUT:更新资源
- HEAD:验证
- DELETE:删除
- REST构建于HTTP协议上
- openStack SOA 架构
nova:负责计算资源
cinder:负责存储资源
Neutron:负责网络资源
Swift:对象存储
-
- 虚机管理API-libvirt(创建)
- libvirt--qemu-kvm
- 全生命周期管理(pausde挂起)
- 启动、关机、睡眠、休眠、回复、迁移
- 存储管理
- 虚机管理API-libvirt(创建)
(二)关键云服务详解
- LAAS层产品
- 弹性云服务器(ECS)
- 类型:通用、内存优化
- 支持:最大32核,内存最大128G
- 差异化云硬盘:通用IO、高IO、超高IO(STAT、SAS、SSD)
- 高安全:VPC、WAF、漏扫、Anti-DDOS
- GPU虚拟化
- 云硬盘(EVS)
- 全量
- 增量
- 对象存储服务(OBS)--对应键值key-value
- 虚拟私有云(VPC)
- 弹性负载均衡(ELB)
- Anti-DDOS分布式拒绝访问
- Web漏洞扫描
- Web应用防火墙
- AS弹性伸缩
- RDS关系型数据库
- DRDS数据库神经服务(检查数据库)
- 弹性云服务器(ECS)
- PAAS层云服务
- 数据库服务
- 关系型数据库:MySql、SQL server 、OceabBase
- NoSQL数据库:Redis,MongoDB,HBase,Memacahe
- 存储系统服务
- 文件存储:NAS
- 表存储:TanleStore
- 对象存储:OBS
- 块存储:SAN
- 扩展资料:VMFS(集群文件系统,VMware私有云虚拟化),HDFS(分布式文件系统,大数据)
- 大户数据分析即服务
- E-MapReduce-大数据计算引擎
- 适合数据复杂度运算
- 不适合算法复杂度的运算
- 不适合实时计算、流式计算、DAG有向图计算
- 综上,要求算法足够简单,数据可以足够大!
- 数据仓库:MaxCompute
- 海量数据实时高并发在线分析:AnalyticDB
- E-MapReduce-大数据计算引擎
- 中间件服务
- 分布式数据库中间件:水平拆分,读写分离
- 消息队里:RocketMQ+Kafka
- 软件编排
- 通过模板创建具有一定关联关系的云服务器,ESC+RDS
- 弹性伸缩
- 数据库服务
(三)云服务关键机制
- 基于Openstack云平台项目分层
- Laas+服务:Trove(数据服务组件)、Sahara(为用户提供部署集群能力组件)、Swift(分布式)
- 系统管理及自动化: Ceilometer(计量与监控组件)Heat(集群服务)
- Laas服务:Nova(计算控制器)、Glance(镜像管理)、Cinder(存储管理)、Neutron(网络管理)、Lronic()
- 基础公共组件:Database、Keystone(认证管理服务)、Message Queue
- Openstack组成:控制节点,计算节点,网络节点,存储节点
- 转载:https://blog.csdn.net/weixin_42123737/article/details/84453881
- 服务简介
- Horizon:为Openstack提供基于WEB的图形界面。
- Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务。
- Neutron:提供计算节点与网络节点之间的通信服务
- Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件
- Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等
- Ceilometer:提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作控制节点一般来说只需要一个网络端口用于通信/管理各个节点
- Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。
- Nova调度机制
- Nova API:HTTP服务,用于接收和处理客户端发送的HTTP请求。
- Nova Conductor :RPC服务,主要提供数据库查询功能。
- Nova Scheduler :Nova调度子服务。当客户端向Nova 服务器发起创建虚拟机请求时,决定将续集你创建在哪个节点上。
- Nova Compute :最核心的服务,实现虚拟机管理的功能。(实现了在计算节点上创建、启动、暂停、关闭和删除虚拟机、虚拟机在不同的计算节点间迁移、虚拟机安全控制、管理虚拟机磁盘镜像以及快照等功能)
- Queue:消息队列
- Glance镜像管理
- 支持多种存储类型:raw、vhd、wmdk、vdi、ISO、qcow2、aki、ari、ami
- API:镜像请求接口。
- Register server:
- Cinder存储资源
- Neutrom网络服务
- neutron-server&plugin 接受REST请求,向keystone鉴权,与数据库交互,提供API功能。控制节点
- neutron database neutron数据库,管理数据。控制节点
- L2 agent(ovs-agent):连接网络端口,处理数据包。计算节点
- DHCP-agent:提供DHCP服务。
- L3-agent:为客户机访问外部网络提供3层转发服务
- RPC:消息队列,用于plugin与agent之间的通讯
- Swift
- Heat软件编排
(四)云平台实施要求
- 平台角色
- 用户:通过网络访问自己的虚拟机、存储、管理个人模板
- 管理员:部署配置
- 开发人员:开发计费、监控、统计等
- 机器规模
- 数十、白 、千计物理节点
- 虚拟化:异构的虚拟化软件
- 应用运维
- 应用发布与快速上线
- 资源调度
- 作业管理
- 用户自服务
- 云平台实施要素
- 虚拟化不等于云计算
- 自服务很关键
- 服务器虚拟化-KVM、VMware、XenServer、Docker
- 计算服务器总体架构--P93 软件注入服务器节点和salt主节点
- 云存储分类
- 基于Swift分布式存储:类似于S3,基于一致性hash做数据分布、NWR策略设置一致性级别
- 传统云网络
- 基于linux kernel的网络协议栈提供的传统网络组件实现云网络基本功能+1-2台服务器作为网络节点
- 安全组:
- 子网隔离
- 地址转换
- 流量控制
- 路由
- 传统云网络不足
- 网络节点的网络业务过于集中,容易出现单点故障
- 东西南北流量混合,网络质量不高。
- 传统Linux网络协议栈的网络功能捆绑严重,资源消耗严重。
- Vlan的子网隔离数量不高
- 横向扩展能力差,网络规模难以扩展
- 纵向吞吐性能,受网络节点点单限制
- 软件定义网络SDN
- 开发API,网络资源可编程
- 控制转发分离
- 优势
- 网络功能软件可编程
- 网络流隔离
- SDN架构
- 应用层
- 北向接口:底层网络抽象成软件概念,并暴露出的接口。neutron,server api
- 南向:接入硬件设备,openflow协议。
- DB:存储SDN指控器的状态和数据
- SDN控制器:各个网络功能的实现
- 数据面:实际网络设备层。
- 传统的网络安全问题仍然存在于云计算环境中
- 服务器、协议漏洞
- web应用安全问题
- DDos
- 密码管理和访问控制
- 虚拟化安全问题
- hypervisor的安全漏洞
- 虚拟机共享同一物理机的资源,资源访问控制
三、云计算安全风险与管理
(一)云计算安全风险与责任划分
- 云用户的安全诉求
- 传统IT环境
- 特点:边际清晰,安全全责。业务可知
- 安全策略:围墙式防护,安全可端对端覆盖,基于业务部署精细化防护策略
- 公有云
- 特点:无边际,安全责任共同承担,业务不可知
- 安全策略:轻管控,重检测,快速响应,强调事后取证
- 传统IT环境
- 企业上云的关键诉求
- 公有云2.0时代,3-5年是上云关键,大型企业、传统企业客户正在加速云化。
- 主要用户:泛互联网客户,诉求:便宜,好用,快
- 未来诉求:安全、可靠、开放、合规
- 云计算主要风险
- 外部入侵攻击
- 流量攻击,中断服务:典型DDOS攻击
- 账号窃取,获取权限:租户安全意识淡薄,弱口令易被攻击
- 漏洞入侵,偷取数据:防护和技能不足,漏洞易被攻击
- 云平台内部风险
- 共享环境下的隔离问题:租户攻击云平台,不同租户共享存储资源
- 如何保证数据的合法使用
- 租户层的安全服务
- 快捷、简单、易用、按需
- 需要统一管理
- 传统安全产品很难部署在云上
- 管理安全
- 管理员权限提升安全风险:技能不足,误删租户重要文件
- 海量系统的快速安全定位:定位困难,重大故障恢复缓慢
- 外部入侵攻击
- 云上客户的安全诉求
- 业务连续不中断:防网络攻击、防黑客入侵、法律遵从、合规
- 运维全程可管控:配置安全策略、风险识别和处置、操作可审计追溯
- 数据保密不扩散:防外部窃取、内部非授权员工不可见、云服务上不可见
- 云计算安全责任划分
- IAAS:客户承担大部分责任
- 数据中心建设
- 物理、网络、传输、系统安全
- PAAS
- 数据与计算可用性
- 数据安全
- 灾难恢复
- SAAS:云服务提供商承担大部分责任
- 数据安全
- 应用安全
- 身份认证
- 安全增值服务:租户购买增值服务提升安全能力
- 这些内容涉及的属性,责任归属在租户方。
- 平台将其中通用、标准的内容,抽象包装成安全服务,供租户更便捷、高效的实现其安全需求。
- 安全基础能力
- 这些内容是云平台自身的核心安全属性,责任归属在平台。
- 所保护的对象,包括I层基础设施和P层平台架构,以及自营的运维类安全S层服务。
- 云计算安全重点关注领域--治理域
- 治理与企业风险管理
- 组织治理和度量云计算带来的企业风险能力
- 法律问题(合同和电子举证)
- 使用云计算时潜在的法律问题。
- 合规性和审计管理
- 保证和证明使用云计算的合规性
- 信息治理
- 治理云中的数据。
- 治理与企业风险管理
- 云计算安全重点关注领域--运行域
- 管理面与业务面的连续性
- 基础设施安全
- 虚拟化及容器基础
- 事件相响应、通告和补救
- 应用安全
- 数据安全和加密
- 身份、授权和访问管理
- 安全即服务
- 相关技术
- 云计算安全风险总结
- IAAS:客户承担大部分责任
(二)云计算安全风险管理与合规性
- 云计算安全风险管理
- 合规性:服务商与客户之间的合同,是客户提供内部控制的唯一途径。
- 本质:将风险控制在可以接受的范围。识别资产、评估资产、部署模型映射、服务器模型映射、勾画数据流、形成文档
- 流程:
- 安全风险评估
- 风险(Risk)=威胁(threat)*脆弱性(vulnerability)*资产价值(cost of asset)
- 脆弱性:资产被威胁龙利用的弱点(漏洞)。漏洞本质:可通过安全措施降低脆弱度但不能完全消灭。
- 威胁:对资产构成潜在破坏的可能性因素。威胁代理利用是漏洞实体,能够具备能力导致、创建、、传播及支持威胁。
- 资产:通过货币价值衡量。
- 风险管理与计算:评估就是风险管理过程。资产风险=威胁*漏洞*资产损失
- 资产识别与分类
- 识别:资产价值、资产清单、资产责任人
- 分类:有形资产(物理、软件、数据)、无形资产(不可预料的风险)、公司人力、声誉
- 威胁与威胁代理:对可能对资产造成损害事故的潜在原因
- 灾难、人为、有意、偶尔
- 威胁代理(threat agent):利用系统上易受攻击的缓解攻击网络的人或进行,或是用破坏安全策略方法访问数据的进行。
- 脆弱性及分类
- 漏洞特征:缺乏安全控制或功能、允许威胁发生的路径,是风险评估的导向性元素、通常被威胁利诱而暴露,但不一定造成威胁、隐蔽性、技术及配置和管理漏洞
- 风险管理与计算
- 风险评估实施方法
- 风险分析
- 技术检测
- 现场查勘
- 事件记录
- 各种报告
- 人员访谈
- 调查问卷
- 专家研讨
- 风险处理
- 规避风险
- 减轻风险
- 转嫁风险
- 残余风险:威胁、资产、脆弱性
- 风险分析
- 风险管理总结
- 不仅要对服务商,也要对服务进行风险评估
- 应确保管理层对云服务的风险有清晰的理解,并且残余风险在可接受程度
- 风险管理计算应该作为云服务合同的附录。
- 云计算合规性
四、云计算安全架构和趋势
(一)云计算安全架构P214
- 云安全与传统安全
- 多租户带来的边界延伸
- 虚拟化带来的新安全威胁
- 海量数据上云增加安全威胁 云安全设计原则 P217
- 业务安全构建视图
- 云安全体系框架
- 云安全技术结构
- 云安全管理架构
- 云安全服务架构
- 华为安全解决方案--全景图 开放(合作伙伴)+自研(AI云安全)+纵深防御 P221
(二)云计算安全趋势
- 防御策略趋势 P224
- 安全防护体系的演进
- 应对攻击行为到攻击者的转变
- 与大数据机器学习结合
- 红蓝对抗
- 建立安全市场和安全生态
安全技术趋势 P227
- 可信计算
- 加密存储
- 数据溯源
- 防御技术
五、云数据与应用安全
(一)云数据安全介绍
- 数据属性
- 池化存储
- 多租户
- 自服务,弹性
- 数据抽象、虚拟化
- 数据多副本
- 服务商可以访问你的数据
- 云数据存储
- 原始存储:没有文件系统服务,没有任务结构,通过可编程API的原创挂载。用户购买裸设备自己装数据库
- HTTPS和SSL
- 提供访问控制,通常没有授权
- 存储,通常未归档
- 可靠的,但非安全
- 用户对授权,静态数据安全,应用使用安全,共享,归档安全和数据销毁/删除负责
- 原始存储:没有文件系统服务,没有任务结构,通过可编程API的原创挂载。用户购买裸设备自己装数据库
- 卷存储
- 云存储以结构化的卷出现,作为一个虚拟的磁盘或者“卷”,块的大小预先定义好的,其本质上是一个虚拟硬盘。
- 持久的,弹性的
- 提供访问控制,通常没有权限
- 通常使用HTTPS
- 存储,通常未归档
- 可靠,安全
- 用户对授权,静态数据安全,应用使用安全,共享,归档安全和数据销毁/删除负责
- 云存储以结构化的卷出现,作为一个虚拟的磁盘或者“卷”,块的大小预先定义好的,其本质上是一个虚拟硬盘。
- 对象存储
- DBAAS(数据存储)
- 云存储PAAS层交付的典型例子是DBAAS,用户不关心数据如何在磁盘上存储和组织的,只需要使用标准的API来定义和操作数据
- Database.com
- SQL Azure
- Amazon EMR
- Hadoop
- 应用管理
- 内容/文件存储
- PaaS数据存储
- SaaS数据存储
- 数据安全的核心原则(CIA)
- 数据安全生命周期
- DRM数字版权管理\DLP数据防泄漏\DAM 内容感知技术
- 数据安全工具
- 数据存储加密
- VM卷加密防止数据被窃取
- 数据安全策略
- 数据分片技术
- 稳定管理安全
- 数据销毁
(二)云应用安全介绍
- WEB应用攻击分析 P252
- WEB应用安全需要考虑的方面
- WEB应用的3个阶段
- 威胁模型 P253
- 应用安全评估
- 网页防篡改
- WAF构筑WEB应用安全屏障
六、云安全服务P259
- 网络安全服务
- VFW虚拟防火墙
- VPN虚拟专用网服务
- VPC虚拟私有云
- 主机安全服务
- 安全组服务
- 主机漏洞检测服务HVD
- 主机入侵检测服务HID
- 程序运行认证服务ARS
- 应用安全服务
- 主机WEB应用防火墙服务HWAF
- 网页防篡改服务WTP
- 安全管理服务
- 安全态势感知服务SSA
- SIS安全指数服务
- 云审计服务
七、大数据计算与应用
- 目标
- 大数据技术的发展趋势和适用场景
- 批处理、交互式和流式三种主流大数据分析技术
- 大数据SQL技术
- 大数据存储于NoSQL数据库
- 大数据与云平台的交互应用
- 大数据的行业应用
- 大数据基础
- 处理数据量大。百TB以上
- 数据关系复杂
- 半结构/非结构化数据居多
- 高并发数据读写
- 大数据适用场景
- 金融服务
- 销售需求预测
- 运营商
- 用户行为分析和体验改善,网络质量优化等 BOM运营商大数据
- 制造业
- 供应链优化,产品定制,库存补货、需求预测
- 政府
- 舆情分析,公共事件预测
- 大数据挑战
- 对系统要求极高。存储、传输、计算
- 事实计算:秒级响应
- Amazon推出的snowball mobile(是一种用于将海量数据移动到 AWS 中的 EB 级数据传输服务。)
- 不是one size fit all的时代 不是一种数据库就能处理所有类型数据的
- 应用驱动
- 不同数据源,不同数据分析需求
- hadoop 分布式系统基础架构
- redis 高性能的key-value数据库
- hypertable 开源、高性能、可伸缩的数据库
- Cassandra是一套开源分布式NoSQL数据库系统
- SciDB 是一个开源的数据管理系统
- MongoDB 是一个基于分布式文件存储的数据库
- Tokyo Cabinet (简称TC)是Mikio Hirabayashi开发的一种DBM的开发库。DBM:储存相对比较静态的索引化数据
- CouchDB 是一个开源的面向文档的数据库管理系统
- HBase是一个分布式的、面向列的开源数据库
- 数据质量
- 信息化程度
- 量多质差
- 量多质好
- 数据治理、多数据源整合
- 90%以上企业在数据采集、清洗、处理、整合方面投。
- 10%资源投入在用户数据分析和应用
- 数据隐私
- 数据规范
- 数据脱敏
- 完整的数据管理制度
- 跨部门、业务层,涵盖数据的全部生命周期
- 形成正向反馈环路,利用数据决策得到实际效果
- 大数据落地
- 懂应用
- 懂分析
- 懂系统
- 对系统要求极高。存储、传输、计算
- 大数据发展趋势
- 流梳理成为大数据处理主流模式
- 流处理是一种重要的大数据处理手段,其主要特点是其处理的数据是源源不断且实时到来的。分布式流处理是一种面向动态数据的细粒度处理模式,基于分布式内存,对不断产生的动态数据进行处理。其对数据处理的快速,高效,低延迟等特性,在大数据处理中发挥越来越重要的作用。
- 统一的大数据处理编程范式
- Apache beam
- 提供统一批处理和流处理的编程范式
- 能运行在任何可执行的引擎之上
- Apache beam
- 人工智能成为大数据分析热点
- 大数据安全和隐私日趋重要
- 流梳理成为大数据处理主流模式
- 大数据关键技术
-
- data source:数据源
- collect:数据收集传播
- store process:存储过程
- visualize:可视化
- reporting monitoring:报告监控
- 采集
- 使用多个数据收集来自源端(web、APP、传感器)的数据
- SQL VS NOsql
- 高并发
- 使用多个数据收集来自源端(web、APP、传感器)的数据
- 导入与预处理
- 前端数据库--后端集中存储
- 导入过程中进行预处理:Storm(分布式实时大数据处理框架,比hadoop好)
- 分析
- 分布式计算
- 分析模式:MapReduce,spark,storm
- MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)"
- Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。
- 可视化
- 传统数据可视化方法:表,图等
- 交互式可视化
- 大规模、高纬度
- 批处理技术:MapReduce
- MapReduce定义
- 一种可用于数据处理的编程模型
- 大规模分布式计算
- 可以用多种语言编写MapReduce程序。
- 考虑如果你要统计一个巨大的文本文件存储在类似HDFS上,你想要知道这个文本里各个词的出现频率。你启动了一个MapReduce程序。Map阶段,几百台机器同时读取这个文件的各个部分,分别把各自读到的部分分别统计出词频,产生类似(hello, 12100次),(world,15214次)等等这样的Pair(我这里把Map和Combine放在一起说以便简化);这几百台机器各自都产生了如上的集合,然后又有几百台机器启动Reduce处理。Reducer机器A将从Mapper机器收到所有以A开头的统计结果,机器B将收到B开头的词汇统计结果(当然实际上不会真的以字母开头做依据,而是用函数产生Hash值以避免数据串化。因为类似X开头的词肯定比其他要少得多,而你不希望数据处理各个机器的工作量相差悬殊)。然后这些Reducer将再次汇总,(hello,12100)+(hello,12311)+(hello,345881)= (hello,370292)。每个Reducer都如上处理,你就得到了整个文件的词频结果。
- 特征
- 数据在哪,计算在哪。
- 开发者仅从key/value角度考虑任务执行
- MapReduce--气象数据处理
- 历史数据文件--计算每年最高气温
- 通常使用awk脚本处理
- MapReduce两个阶段
- Map阶段 map函数:数据准备阶段,程序员开发
- reduce阶段 在准备数据集上继续处理,程序员开发
- 每个以key/value作为输入和输出
- MapReduce框架处理
- 根据key对key/value进行排序和分组
- reduce函数
- 遍历整个列表找出最大值(以气象局找出最高气温为例)
- MapReduce逻辑模型
- MapReduce物理执行
- 优点
- 处理大规模数据问题,可伸缩性:sale-out
- 简单
- 有效的容错
- 缺点
- 不适用非KV问题
- 不适应实时数据处理
- 场景
- 数据量大,实时性要求低
- MapReduce定义
- 交互式处理技术:spark
- 内存计算
- 内存高速的数据传输率
- 某些数据集已经全部放在内存
- 内存容错持续增长
- MapReduce瓶颈
- map中间结果落于磁盘,reduce端再去下载使用,磁盘的速度很慢导致mr过程缓慢。
- 中间结果数据量大,不适用存储内存。
- 跨节点传输需要文件传输,不适用存储内存。
- 弹性分布式数据集(RDD)
- 可以并行处理的元素集合,具有容错特性
- 将硬盘数据加载到内存的数据集
- 关键特性
- spark最基本的抽象,只读的Scala(编程语言)集合对象
- 有一个分片列表,记录每个partition(函数用于返回数值)位置,每一个函数计算每个分片
- 对其他RDD的依赖列表,容错
- 可并行操作
- RDD创建
- 通过持久化存储产生。例如HDFS输入创建
- 从父RDD通过转换(transformation)操作产生
- RDD计算
- action:count,collect,save等
- transformation:map,filter,join等
- transformation转换函数
- map:对每个元素执行一个指定的函数,生成新结构
- filter:对每个元素应用参数函数,返回函数结果为true
- reduce:将元素两两传递给输入函数,同时产生一个新值:新产生的值与一下个元素一起被传入输入函数直到最后一个元素为止。
- reducebykey:元素为KV对。对key相同的value进行reduce
- action行动操作
- 内存计算
-
-
-
-
-
- count() 返回数据集中的元素个数
- collect() 以数组的形式返回数据集中的所有元素
- first() 返回数据集中的第一个元素
- take(n) 以数组的形式返回数据集中的前n个元素
- reduce(func) 通过函数func(输入两个参数并返回一个值)聚合数据集中的元素
- foreach(func) 将数据集中的每个元素传递到函数func中运行
-
-
-
-
-
- RDD窄依赖
- 父RDD的每个分区最多被一个子RDD的分区所用
- RDD宽依赖
- 子RDD的每个分区都依赖于父RDD的所有分区
- RDD作业执行
- spark运行模式
- 本地模式
- 独立模式
- Apache mesos:群集管理软件
- hadoop yarn:可以与MapReduce共用一个集群,提高集群资源利用率
- spark与yarn
- yran分配CPU和内存
- spark执行模型
- 多线程执行任务,避免MR进行模型启动开销。
- blockmanage存储模块,类似于KV系统;多轮迭代运算中,中间数据先保存到该存储系统上,避免HDFS读写
- RDD窄依赖
- 流式处理技术:Storm
- 流式处理
- 数据实时、持续、不断到达
- 到达次序独立
- 数据来源众多
- 数据规模大
- 关注整体数据价值而非单个数据
- 应用场景
- 日志分析:从日志中分析出特定的数据并将分析的结果存入外部存储器如数据库
- 管道系统:将一个数据从一个系统传输到另外一个系统,不如将数据库同步到Hadoop
- 消息转化器:将接受到的消息按照某种格式进行转化,存在到领导一个系统如消息中间件
- 统计分析器:从日志或消息中,提炼出某个字段,做count或sum计算,将统计值存入到外部存储器。中间处理过程复杂
- 流计算框架要求:
- 高性能:每秒处理几十万数据
- 海量数据处理
- 实时性:秒级、毫秒级
- 可伸缩性
- storm分布式实时计算系统特征
- 变成模型简单
- 降低实时处理复杂性
- 提供Spout(用于读取并向计算拓扑中发送数据源)、Bolt(把数据进行计算传递)操作原语
- 可扩展性
- 节点、工作进程、线层和任务多级并行
- 高可靠性
- 保证每个消息至少得到一次完整处理
- 高容错性
- 消息处理过程出现一次,storm重新部署出现问题的处理单元
- 处理单元存储的中间状态被清除,应用负责管理
- 支持多种编程语言
- Java、Python、Ruby、clojure
- 支持本地模式
- stream
- 一个消息流式一个没有边界的tuple序列
- 核心数据结构:tuple
- tuple:一个或多个键值对的列表(以时间进行切换的数据)
- spout
- 消息源:一个topology里面的消息产生者
- 采集角色,连接到数据源,将数据转化为tuple,将tuple作为数据流发射
- bolt
- 消息处理者:封装消息处理逻辑:过滤:连接、聚合:计算:数据读写
- 发送消息给其他bolt
- storm并行度
- worker:JVM进程
- Task:一个spout或者bolt的实例
- executor:JVM中运行的一个线程
- storm数据流分组
- 定义一个数据流中的tuple如何分发给一个bolt的多个task
- shuffle grouping:随机分组
- 随机分发tuple给bolt的各个task
- 给个bolt实例接收到相同数据的tuple
- field grouping:按字段分组
- 根据指定字段的值进行分组
- 相同字段的值得tuple路由到一个bolt实例
- all grouping:全复制分组
- 将所有的tuple复制后分发bolt的所有rask
- 给个订阅数据流的rask会接收到tuple的拷贝
- globa grouping:全局分组
- 将所有的tuple路由到唯一一个task
- storm按最小的task ID选取接收到数据的task
- 设置bolt并发度没有意义
- 可能引起性能瓶颈
- 可靠性保证
- storm消息处理语义
- 至少一次
- 至多一次
- 有且仅有一次
- 消息可靠性
- tuple处理失败
- spout调用fail方法
- 处理时间超出配置的超时时间
- storm acker 系统组件间保证可靠性
- storm消息处理语义
- 变成模型简单
- 流式处理
- 大数据的SQL技术
- Hive:用SQL转化为MapReduce识别的语言(编译);再讲结果存到自己的数据仓库中
- 优势
- 对大规模数据进行分析
- SQL接口
- 劣势
- 不支持记录级别的更新、插入或者删除
- 不支持事务
- 面向批处理,无法实时响应
- 优势
- sparksql
- 分布式sql查询引起
- 处理结构化数据的spark组件
- sparksql-dataframe
- 一个以RDD为基础的分布式数据集,类似于传统的数据库中的二维表格
- 带有schema元信息,即dataframe所表示的二维表数据集的每一列都带有名称和类型
- impala
-
- 实现SQL on hadoop
- MPP模型的实时海量数据的分布式查询引擎
- 针对低延迟的实时数据查询与分析应用
- 支撑直接访问HDFS和HBase中的数据
- 支撑ANSI-92 SQL标准
- impala优势
- 快速执行SQL语句,在数秒内返回查询分析结果
- 灵活:可以直接查询存储在HDFS上的原生数据,也可以查询优化设计而存储的数据
- 非常容易与Hadoop系统整合
- impala劣势
- 可扩展性不高,弱于HIVE
- 容错性差
-
- NoSQL数据库:关系型数据库
-
- 处理结构化数据
- 可以进行复杂查询和计算,例如范围查询、join查询
- 易于数据管理
- 产品:Msql,SqlServer,oracle
- 目标负载:在线交易业务(OLTP)
- 应用场景变化
- web应用向数据密集型应用发展,例如:搜索引擎
- 海量数据
- 数据结构化简单化
- 应用可伸缩性日趋重要
- 超大规模和并发web应用
- 需求
- 数据库高并发读写
- 海量数据效率存储和访问
- 数据库高可扩展性和高可用
- 弱化
- 事务一致性
- 写实时性和读写实时性
- 复杂SQL查询,关联多表查询
- 基本概率
- not only SQL
- 通常只保证数据的最终一致性
- 通常具有伸缩的分布式结构
- 适用于处理海量数据,并且不需要关系模型
- 特征
- 模式自由
- 简单API
- 代表
- 键值存储(key-value)
- NoSQL数据库类型
- 列存储:bigtable,HBase
- 键值存储:dynamo,Redis,voldemort
- 文档:mongodb,couchbase
- 图:Neo4J,ALLegro
- HBase
- HMaster(主节点)
- Region Server(从节点),每个Region Server存一部分数据
- Redis
- 特点:内存数据库(快,一致性查询能力强)
- 架构
- Codis Proxy:负责分配任务
- codis-redis-group:接受任务并执行,一个codis-redis-group包含主备进程保证可靠性,每个codis-redis-group存一部分数据
- MangoDB
- 特点:使用叫做”文档“的数据格式
- 持久化数据库
- 数据量不大的半结构化数据
- 查询条件丰富
-
- Hive:用SQL转化为MapReduce识别的语言(编译);再讲结果存到自己的数据仓库中
- 分布式存储-HDFS
- 设计理念
- 存储大文件,百MB,GB
- 支持一次写入、多次读取的访问模式
- 使用廉价服务器
- 数据块(block)
- 大文件分割成多个block存储
- 每个block 64MB
- 每个BLock在多个datanode上存储多份副本
- datanode
- 存储实际数据
- 定期向namenode发送所存储的块列表
- NameNode
- 维护文件系统树
- 所有目录和文件的元数据,例如文件和block的对应关系,block和datanode的对应关系
- HDFS不适合场景
- 对数据访问要求低延迟
- 存储大量小文件:元数据保存在namenode内存中,大量小文件导致namenode内存饱和
- 文件频繁更新
- 数据量不大
- 设计理念
-
- 大数据与云
- 大数据与云计算的关联与区别
- 大数据
- 大数据基础架构与IAAS
- 大数据系统平台与Paas
- 竖井式大数据平台
- 资源共享vs性能保证
- 基于云平台
- 对接云平台
- 大数据
- 基于云的大数据平台
- 基于虚机构件大数据平台
- 自行搭建
- 自动化构件服务:OpenStack heat,OpenStack sahara
- 基于云基础设施的大数据服务
- 基础架构用户不可见
- result api接口
- 大数据基础服务
- maxcompute数据仓库
- 分析性数据仓库(OLAP)
- NOSQL数据库tablestore
- 对象存储oss
- 大数据算法服务
- 机器学习API
- 语音识别
- 基于虚机构件大数据平台
- 大数据与云计算的关联与区别
- 云安全服务
- 安全服务整体框架
- 框架设计:SCC租户安全服务控制中心
- 策略管理、数据管理、接口配置、restful api、console(安全服务控制台)
- 框架设计:SCC租户安全服务控制中心
- 网络安全服务
- VFW:虚拟防火墙 为网络设备及应用提供安全服务
- VPN:虚拟专业网服务 ipsec-vpn
- vpc:虚拟私有云
- 主机安全服务
- 安全组服务:securitygroup 对虚拟机端口进行过滤,只需设定的端口通过。
- 主机漏洞检测:HVD 对云主机组件、数据库等漏洞进行扫描并告警
- 主机入侵检测:HID 对云主机配置进行风险检测,并提醒用户优化。
- 程序运行认证服务:ARS 检测非法进程并告警
- 应用安全服务
- 主机web应用防火墙服务:HWAF 实时拦截web攻击
- 网页防篡改服务:WTP 对云主机中网站文件进行保护,方式非法修改破坏
- 安全管理服务
- 安全姿态感知服务:SSA 采集海量数据从中发现有用数据。
- 安全指数服务:SIS 对云环境的安全评估
- 云审计服务:cloud trace server 管理云服务资费的操作记录
- 安全服务整体框架