云计算是以硬件服务器为基础,通过将硬件资源整合、池化,作为资源的服务端,从而向用户端提供基础资源服务。
(1)自助式服务
(2)随时随地使用
(3)可度量的服务
(4)快速资源扩缩
(5)资源池化
云计算是分布式计算、并行计算、效用计算、虚拟化、网络存储、负载均衡、热备份冗余等传统计算机和网络技术发展融合的产物,更是SaaS, SOA等技术混合演进的结果。
云计算服务提供商可以专注于自己所在的层次,无需拥有三个层次的服务能力,上层服务提供商可以利用下层的云计算服务来实现自己计划提供的云计算服务。
基础设施即服务是把计算、存储、网络以及搭建应用环境所需的一些工具当成服务提供给用户,使得用户能够按需获取基础设施。laas主要由计算机硬件、网络、存储设备、平台虚拟化环境、效用计费方法、服务级别协议等组成。
①虚拟化技术
②分布式存储技术
③高速网络技术
④超大规模资源管理技术
⑤云服务计费服务
①低成本:laas服务是按照实际使用量进行收费的;laas可以满足突发性需求。
②免维护:IT资源运行在laaS服务中心,维护工作云计算服务商承担。
③伸缩性强:laas只需几分钟就可以给用户提供一个新的计算资源;laas可以根据用户需求来调整资源的大小。
④支持应用广泛:laaS主要以虚拟机的形式为用户提供IT资源,可支持应用的范围非常广泛。
⑤灵活迁移:laaS的跨平台性能很好,运行在laaS的应用将可以灵活地在laas服务平台间进行迁移,不会被固定在某个企业台数据中心。
平台即服务是一种分布式平台服务,为用户提供一个包括应用设计、应用开发、应用测试及应用托管的完整的计算机平台。PaaS的主要用户是开发人员,PaaS平台的种类目前较少,比较著名的有Force.com、Google App Engine 、 Windows Azure、Cloud Foundry。
①REST技术
②多租户技术
③并行计算技术
④应用服务器
⑤分布式缓存
①友好的开发环境
②丰富的服务
③精细的管理和控制
④弹性强
⑤多租户机制
⑥整合率高
软件即服务就是软件服务提供商为了满足用户的需求提供的软件的计算能力。SaaS云服务提供商负责维护和管理云中的软件以及支撑软件运行的硬件设施,同时免费为用户提供服务或者以按需使用的方式向用户收费。所以,用户无需进行安装、升级和防病毒等,并且免去了初期的软硬件支出。
①大规模多租户支持:能够同时为多个组织和用户使用。
②认证和安全
③定价和计费
④服务整合
⑤开发和定制
①使用简单:通过浏览器访问。
②支持公开协议:现有的Sas服务都是基于公开协议的。
③成本低:用户无需在使用前购买"昂贵的许可证“。
④安全保证:Saas服务提供商提供高等级的安全机制。
公有云是一种对公众开放的云服务,由云服务提供商运营,为用户提供各种IT资源,可以支持大量用户的并发请求。
• 所应用的程序及相关数据都存放在公有云的平台上,客户无需前期的大量投资和漫长的建设过程。
• 具有规模优势,其运营成本比较低;只需为其所使用的付费,可节省使用成本。
• 数据安全和隐私等问题是使用公有云时较为担心的问题。
私有云是指组织机构建设的专供自己使用的云平台。
• 与公有云不同,私有云部署在企业内部网络,私有云可以支持动态灵活的基础设施,降低IT架构的复杂度,降低企业IT运营成本。
• 私有云的缺点是企业需要有大量的前期投资,需要采用传统的商业模型。
• 私有云的规模相对于公有云来说一般要小得多,无法充分发挥规模效应。
混合云是由私有云及外部云提供商构建的混合云计算模式。使用混合云计算模式,机构可以在公有云上运行非核心应用程序,而在私有云上支持其核心程序以及内部敏感数据。
• 混合云的部署方式对提供者的要求较高。
• 在混合云部署模式下,公有云和私有云相互独立,但在云的内部又相互结合,可
以发挥出所混合的多种云计算模型各自的优势。
• 企业可以在私有云的私密性和公有云的低廉之间做一定的权衡。
社区云服务的用户是一个特定范围的群体,介于一个单位内部和一个完全公开的服务两者之间。所产生的成本由他们共同承担,因此,所能实现的成本节约效果也并不很大。
1、数据量大—Volume
2、数据类型多—Variety
3、处理速度快—Velocity
4、价值密度低—Value
bit–>Byte–>KB–>MB–>GB–>TB–>PB–>EB–>ZB
云计算强调计算、存储能力。
大数据需要处理大数据的能力。(获取、清洁、转换、存储、分析、统计等)
云计算对大数据而言是支撑关系。
虚拟机是通过软件模拟出的虚拟系统,该系统可以模拟出真实计算机所拥有的全部配置和相关功能。虚拟化是一种方法,本质上讲是指从逻辑角度而不是物理角度来对资源进行配置,是从单一的逻辑角度来看待不同的物理资源的方法。
虚拟化的三层含义:
• 虚拟化的对象是各种各样的资源。
• 经过虚拟化后的逻辑资源对用户隐藏了不必要的细节。
• 用户可以在虚拟环境中实现其在真实环境中的功能。
• 网络虚拟化• 存储虚拟化• 桌面虚拟化• 服务器虚拟化• 系统虚拟化
将用户的桌面环境与使用的终端设备解耦合
优势:桌面虚拟化,将原有的终端数据资源甚至操作系统都转移到后台数据中心的服务器,而前台终端转化为以显示为主、计算为辅的轻量级客户端。
将系统虚拟化应用于服务器上
做法:将服务器进行整合,然后再根据需求虚拟出若干个服务器。
使用虚拟化软件在一 台物理机上虚拟出一台或多台虚拟机,虚拟运行环境需要为在其上运行的虚拟机提供一套虚拟的硬件环境,包括虚拟的CPU、内存、I/O设备及网络接口等。
区块链本质是一种点对点网络下的不可篡改的分布式数据库。
区块链以某种共识算法保障节点间数据的一致性,并以加密算法保证数据安全性,同时通过时间戳和Hash值形成首尾相连的链式结构,创造了一套公开、透明、可验证、不可篡改、可追溯的技术体系。
区块链技术特征:公开透明、可验证、不可篡改、可追溯、规模庞大、高吞吐量、较高延迟,全球化的交易机制需要数据中心的多节点支持,分散了大规模宕机的出现概率。
云服务商提供区块链技术的优势主要在三个方面:成本效率、应用生态、安全隐私。
通过与云服务商结合,区块链技术可以被整合打包交付,为应用落地打下了基础。
虚拟机是通过软件模拟出的虚拟系统,该系统可以模拟出真实计算机所拥有的全部配置和相关功能。
虚拟化是一种方法,本质上讲是指从逻辑角度而不是物理角度来对资源进行配置,是从单一的逻辑角度来看待不同的物理资源的方法。
虚拟化把有限的固定资源根据不同需求进行重新规划以达到最大利用率。
解决传统计算机所带来的痛点:
1.传统计算机硬件成本高2.传统计算机运维管理困难3.传统计算机的资源浪费
(1)分区:单一服务器上运行多个虚拟机。
(2)隔离:同一服务器上的虚拟机之间相互隔离。
(3)封装:虚拟机以文件夹方式保持。
(4)硬件独立:无需修改即可在任何服务器上运行虚拟机。
(1)更高的资源利用率
(2)更高的可用性
(3)降低管理成本
(4)更高的可扩展性
(5)提高使用灵活性
(6)互操作性和投资保护
(7)提高安全性
(8)改进资源供应
虚拟机的组成包括CPU、内存、磁盘、显卡、网卡、声卡等物理计算机所具备的一切资源属性。
虚拟机的一切操作,都是通过虚拟化层,透传给物理机的操作系统或硬件本身。
云计算对外提供的是虚拟主机服务。
将硬件资源虚拟化【计算、存储、网络】
一套开源的技术框架,可基于这两种框架去开发虚拟化软件系,统一虚拟化平台,将虚拟化平台安装在硬件服务器上,对外提供虚拟服务。
KVM(Kernel-Based Virtual Machine)基于内核的虚拟机,开源的虚拟化解决方案,其本身就是嵌在Linux内核里的模块(kvm-intel.ko,kvm-amd.ko) 。
硬件支持虚拟化+底层系统为Linux。
KVM模块仅实现了对CPU、内存的虚拟化,及对虚拟机CPU、内存的管理。需要Qemu负责外设虚拟化。
弥补KVM的限制,负责外设虚拟化。
硬件本身可以不支持虚拟化,从软件上实现虚拟化——半虚拟化。
通过Xen虚拟化出来的虚拟机,其操作系统需要和底层服务器系统保持一致,大大降低虚拟机灵活性,所以虚拟机对外提供的虚拟服务受限很大,但稳定性较好。
Xen稳定性较好。eg:学宝。
虚拟化平台系统组件,是基于KVM,Xen等底层虚拟化技术开发的虚拟化系统中包含的组件。
虚拟化系统上的功能模块。
虚拟化系统内,不同组件(模块)实现不同的功能,分工明确,互相之间又协调统一,共同作用。
最核心的组件——计算组件,主要负责虚拟机的资源管理,也包括用户资源和权限的管理等。
Openstack中以Nova组件来承载此功能。
负责虚拟机的镜像管理,只负责管理,不负责镜像存放。镜像分不同的格式,如iso,raw,qcow2等。Openstack中以Glance组件来承载此功能。
主要负责对虚拟机提供存储服务,服务类型包括:块存储、文件存储、对象存储。
Openstack中以Swift (提供对象存储)和Cinder (提供块存储)组件来承载此功能。
负责为虚拟机提供虚拟网络,以实现虚拟机之间、虚拟机与物理机之间的网络通信。
Openstack中以Quantum组件来承载此功能。
负责为虚拟化系统中其他组件互相之间提
供认证功能,也包括虚拟机和用户认证。
Openstack中以Keystone组件来承载此功能。
(1)虚拟化软件平台最核心的三大组件是:计算、存储、网络。
(2) 虚拟化平台最终要实现的作用:将一台或几台硬件服务器转化为成百上千台的虚拟机,用户可以把这些虚拟机,当成一台台物理上的真实服务器——即对用户来说,虚拟机和真实的物理机没有
差别。
(3)那为什么不用物理服务器,而要用云计算提供的虚拟机?
物理机存在资源浪费和管理运维效率低下等问 题——云计算的目的是硬件资源的统一整合、池化,对外提供虚拟主机服务。
云存储(Cloud Storage)是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。
(1)易管理
(2)高可扩展性
(3)低成本
(4)多租户
(5)无接入限制
(1)云存储架构可以分为两大类:紧耦合对称架构和松耦合非对称架构。
(2)传统的存储系统利用紧耦合对称架构,旨在解决HPC(高性能计算、超级运算)问题。
(3)新的存储系统已经采用了松弛耦合非对称架构,集中元数据和控制操作,不非常适合高性能HPC,但是这种设计旨在解决云部署的大容量存储需求。
(1)构建TCS系统是为了解决单一文件性能所面临的挑战。HPC系统需要的单一文件I/O操作要比单一设备的I/O操作多得多。为了解决这一问题,创建了TCS架构产品,很多节点同时伴随着分布式锁管理(锁定文件不同部分的写操作)和缓存一致性功能。
(2)这种解决方案对于单文件吞吐量问题很有效,在很多HPC客户中得到广泛应用,同时也很先进,需要一定程度的技术经验才能安装和使用。
LCA系统采用不同的方法来向外扩展,它不是通过执行某个策略来使每个节点知道每个行动所执行的操作,而是利用一个数据路径之外的中央元数据控制服务器。
(1)节点可以利用不同的商品硬件CPU和存储配置,而且仍然在云存储中发挥作用。
(2)用户可以通过利用硬件性能或虚拟化实例来调整云存储。
(3)消除节点之间共享的大量状态开销可以消除用户计算机互联的需要,进一步降低成本。
(4)异构硬件的混合和匹配使用户能够在需要的时候在当前经济规模的基础上扩大存储。
(5)存储节点可以旋转地进行深层次应用程序归档,而且在控制节点上,元数据经常都是可用的。
(1)存储方式:本地存储、外置存储
(2)连接方式:DAS (Direct Attached Storage)、 SAN (Storage Area Network) 、 NAS (Network Attached Storage)
(3) 块存储、文件存储、对象存储
直连式存储(Direct-AttachedStorage),存储设备是通过电缆(通常是SCSI接口电缆)直接挂到服务器总线上。SCSI通道是IO瓶颈;服务器主机SCSI ID资源有限,能够建立的SCSI通道连接有限。比如说:U盘。
DAS方案中外接式存储设备目前主要是指RAID、JBOD等。
存储区域网络(Storage Area Network),SAN连接又分ISCSI(网口)SAS(SAS口)以及FC(光纤口)连接。
(1)将存储和服务器隔离,简化了存储管理,能够统一、集中的管理各种资源,使存储更为高效。
(2)把所有存储空间有效的汇集在一起,每个服务器都享有访问组织内部的所有存储空间的同等权利,降低文件冗余度。
(3)SAN能屏蔽系统的硬件,可以同时采用不同厂商的存储设备。
跨平台性能没有NAS好,价格偏高,搭建SAN比在服务器后端安装NAS要复杂的多。
注:这种连接需要单独的存储产品。可以通过交换机连接。
网络附属存储(Network Attached Storage),存储设备通过标准的网络拓扑结构(例如以太网)连接。
NAS即插即用,支持多平台。
但NAS仍使用网络进行备份和恢复,将存储事务由并行SCSI连接转移到网络上。NAS需要服务器自己搜索它的硬盘。
NAS是在网络中放置一个单独的存储服务器,此存储服务器开启网络共享。
1、块存储指的是块设备,一切磁盘形式存在的存储都是块设备,即块存储。
2、所有以磁盘形式直接提供给主机或服务器访问的存储都是块存储。
3、块存储强调的是裸磁盘
对象存储是一种全新的存储架构。综合了块存储和文件存储的优点。特点:速度快、易于共享、扩展性强。比如说:网盘、影像备份、大数据存储……
(1) 非虚拟化存储
(2)虚拟化存储
(3)裸设备映射
(1)传统的存储模式,就是把磁盘进行分区,分割成不同的逻辑卷,每一个逻辑卷可以给到虚拟机进行使用。
(2)特点:性能好(不再有中间的虚拟化层, VM读写直接在磁盘上)、速度快、效率高。
(3)缺点:支持的存储功能少(不支持快照、精简配置等)。
(1)将不同的存储设备、磁盘进行格式化,格式化的目的是屏蔽底层存储设备的能力、接口协议等差异性,将各种存储资源转化为统一管理的数据存储资源。
(2) 特点:支持多种存储功能(快照、精简磁盘、磁盘扩容、存储热迁移等。
(3) 缺点:性能不高(没有非虚拟化存储好) 。
(1)将磁盘直接给到虚拟机使用,让虚拟机直接处理调用存储的命令(直接访问磁盘)中间虚拟化层不再对其进行任何干预(卷都不需要创建)。
(2)特点:速度快(三种模式中最快)、性能好。
(3)缺点:支持的存储功能少(不支持快照、精简配置等) ,仅支持部分操作系统的虚拟机使用、数据存储只能整块当做裸设备映射的磁盘使用,不可分割。
存储虚拟化可以展现给用户一个灵活的、逻辑的数据存储空间。
实现存储虚拟化的方法有:
(1)基于主机的存储虚拟化
(2)基于存储设备的虚拟化
(3)基于网络的存储虚拟化
若单个主机服务器(或单个集群)访问多个磁盘阵列,可采用基于主机的存储虚拟化。
虚拟化的工作通过特定的软件在主机服务器上完成,经过虚拟化的存储空间可以跨越多个异构的磁盘阵列。
1、优点稳定性,以及对异构存储系统的开放性。
2、软件运行于主机上。
3、与主机连接的存储上创建虚拟卷。
若多个主机服务器需要访问同一个磁盘阵列时,可采用基于存储设备虚拟化。
虚拟化的工作在阵列控制器上完成,将一个阵列上的存储容量划分多个存储空间(LUN),供不同的主机系统访问。主要用在同一存储设备内部, 进行数据保护和数据迁移。
1、优点与主机无关,不占用主机资源,数据管理功能丰富。
2、软件运行于存储设备中专门的嵌入式系统上 。
3、从与SAN连接的存储上创建虚拟卷。
通过在存储区域网(SAN)中添加虚拟化引擎实现的,主要用于异构存储系统的整合和统一数据管理。
1、 优点是与主机无关,不占用主机资源;支持异构主机、异构存储设备;能使不同存储设备的数据管理功能统一,统一管理平台,可扩展性好。
2、软件运行于存储网络中的磁盘阵列上 。
3、从与磁盘阵列连接的存储上创建虚拟卷。
将多种、多个存储设备统一管理起来,为用户提供大容量、高数据传输性能的存储系统称为存储虚拟化。
表示实际的物理存储设备,例如DAS (直连存储) 、NAS(网络附加存储)、 SAN (存储区域网络)等。
表示存储资源中的管理单元,例如本地磁盘、LUN (逻辑单元号) 、Storage存储池、NAS共享目录等。
表示虚拟化平台中可管理的存储逻辑单元,承载了虚拟机业务,创建磁盘。
(1)在主机软件界面添加存储资源(SAN, DAS等) ,对主机的启动进行配置。
(2)主机关联存储资源后,进行扫描存储设备(本地磁盘、LUN等) ,将具体的设备扫描到主机上。
(3)主机在选择存储设备,进行数据存储的添加,并进行虚拟化。
(4)最后对虚拟化好的数据存储进行创建卷等操作。
存储虚拟化可以提高硬件资源的使用效率,简化系统管理的复杂度,增强云存储平台的可靠性。
通过以下功能来实现:
• 精简磁盘和空间回收、• 快照和快照链、• 链接克隆、• 虚拟磁盘文件迁移
(1)将虚拟机的磁盘从一个数据存储迁移到另一个数据存储。可以将虚拟机的所有磁盘整体,迁移,也可以单个磁盘分别迁移。
(2)虚拟机的快照可以一起迁移,虚拟机开启或者关闭时都可以迁移。
云安全包括:云计算安全、安全云计算。
(1)云计算安全,主要是对云自身的安全保护,包括云计算应用系统安全、云计算应用服务安全、云计算用户信息安全等。
(2)安全云,通过使用云的形式提供和交付安全,采用云计算技术来提升安全系统的服务性能,如基于云计算的防病毒技术、挂马检测技术等。
(1)数据安全
①数据传输安全;②数据隔离;③数据残留
(2)应用安全
①终端用户安全;②SaaS应用安全;③PaaS应用安全;④IaaS应用安全
(3)虚拟化安全
①虚拟化软件的安全;②虚拟服务器的安全
Alice将待发送的信息原文经哈希函数运算生成摘要信息,并用自己的私有密钥对摘要信息进行加密,将形成的密文和原文传送给Bob。Bob接收到密文后,使用Alice的公开密钥验证密文,得到摘要信息,并按照约定的摘要算法对原文进行摘要运算,再将两个摘要值进行比对,一致则表明数据未被篡改。
数字签名实现了用户的身份认证,保证了数据在传输过程中的完整性、和交易的不可否认性;但是,任何拥有发送方公开密钥的人都可以验证数字签名的正确性,因此无法保证数据的机密性。
(1)用途不一样:数字签名用来验证对错,非对称密钥用来加密通信。
(2)发件人使用的签名不一样:数字签名用的Alice的私钥,非对称密钥用的bob的公钥。
云杀毒是基于特征码杀毒,它融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,推送到Server端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
(1)强大:云安全计划是网络时代信息安全的最新体现,它融合了并行处理网格计算、未知病毒行为判断等新兴技术和概念。
(2)迅速:云安全技术应用后,识别和查杀病毒不再仅仅依靠本地硬盘中的病毒库,而是依靠庞大的网络服务,实时进行采集、分析以及处理。大大提高了安全防护的工作效率,加上安全软件的更快速的处理,得以把计算机和网络上的威胁扼杀在到达之前。
(3)主动:云安全最大革新是改变被动杀毒的现状,使得安全软件在安全威胁安全面前更为主动、涉及面更广,查杀病毒木马等种类更多。
分布式计算是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。
(1)稀有资源可以共享。
(2)通过分布式计算可以在多台计算机上平衡计算负载。
(3)可以把程序放在最适合运行它的计算机上。
ACID是数据库事务正常执行的四个原则,分别指原子性、一致性、独立性及持久性。
(1)A(Atomicity)原子性:事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。
(2)C(Consistency)一致性:数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
(3) I(Isolation)独立性:并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。
(4) D(Durability)持久性:一旦事务提交后,它所做的修改将会永久保存在数据库上,即使出现宕机也不会丢失。
一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance) 这三项中的两项。
(1)C:一致性指更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。
(2)A:可用性是指服务一直可用,而且是在正常的响应时间内。对于一个可用性的分布式系统,每一个非故障的节点必须对每一个请求作出响应。
(3)P:分区容错性指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
通过CAP理论,知道无法同时满足一致性、可用性和分区容错性这三个特性,那应该如何取舍呢?
(1)CA without P:如果不要求P(不允许分区),则C(强一致性)和A(可用性)
是可以保证的。但其实分区始终会存在,因此CA的系统更多的是允许分区后各子系统依然保持CA。
(2)CP without A:如果不要求A(可用),相当于每个请求都需要在Server之间强一致,而P(分区)会导致同步时间无限延长,如此CP也是可以保证的。很多传统的数据库分布式事务都属于这种模式。
(3)AP without C:要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供务,而这样会导致全局数据的不一致性。现在众多的NoSQL都属于此类。
Hadoop是由Apache基金会开发的分布式存储与计算框架,由两个重要模块组成:HDFS,可将文件数据分布式地存储在集群中的不同节点上;MapReduce系统,是一个针对大量数据的分布式计算系统。
HDFS是一个主从式的分布式文件系统,是GFS的一种开源实现。HDFS可以部署在廉价集群上。HDFS集群由一个NameNode和多个DataNode组成,还有Secondary NameNode(热备份),防止集群出现单点故障。
(1)NameNode是整个集群的管理者。它并不存储数据本身,而负责存储文件系统的元数据。它负责管理文件系统名称空间,并控制外部客户端对文件系统的访问。
(2) NameNode决定如何将文件内容映射到DataNode的数据块上。
(3) 整个文件系统只有一个NameNode。集群可能会出现单点故障,需要利用Secondary NameNode来解决问题。
Secondary NameNode是NameNode的备份节点,HDFS会将NameNode的数据实时备份到Secondary NameNode上,当NameNode宕机需要重启时,可以利用Secondary NameNode中的数据加快NameNode的重启恢复速度。
(1)DataNode是实际的数据存储节点,负责相应NameNode创建、删除和复制块的命令。
(2)NameNode会读取来自DataNode的心跳信息,以此判断DataNode是否存活。
(3) 同一份数据会以多份副本存储在不同的DataNode上,一旦某一个DataNode宕机,NameNode会立即采取手段来处理问题。
(1)MapReduce既是Hadoop中的模块。用户需要自己将算法划分成Map和Reduce两个阶段。首先将数据划分为小块的数据,将数据分配到不同计算节点的Map任务中计算,然后将计算结果汇总到Reduce节点中进行合并,得出最终结果。
(2)MapReduce系统也是主从式的计算系统。在使用YARN后,每个集群有一个Resource-Manager,用于管理整个集群。集群中每个计算节点都有一个NodeManager,负责管理某个节点的容器并监视其资源使用。
首先,云计算保证用户可以随时随地访问和处理信息,且可方便地与他人共享信息。
其次,云计算保证用户可以使用大量的在云端的计算资源,包括处理器CPU和存储器(内存和磁盘),而无需自己购买设备。
云栈又称云平台,是在云上面建造的运行环境。它能够支持应用程序的发布、运行、监控、调度、伸缩,并为应用程序提供辅助服务的机制,如访问控制和权限管理等。
三层模式下,云计算可以很简要地概括为IaaS、PaaS、SaaS,也就是基础设施即服务、平台服务、软件服务。其中基础设施即服务可以称为效用计算,平台即服务可称为弹性计算,软件即服务可称为随需应用。
SaaS的主要特点有如下几点:
1、基于网络(一般为Web模式)进行远程访问的商用软件
2、集中式管理,而非分散在每个用户站点
a.应用交付一般为一对多模型,单个实例多个租户架构
b.按照用量计费(实际中一般按月或其他时间周期进行计费)
四层云栈模式是三层云栈模式的一个简单变种。这种模式将三层模式里的基础设施层进行了分解,将里面的硬件部分和虚拟化部分分离成为两层:一层为硬件层,一层为虚拟资源层。
第一层:固件/硬件层
第二层:软件内核层
第三层:云基本资源层
第四层:云软件环境层
第五层:云应用程序层
云体是云计算的物质基础,是云计算所用到的资源集合。它是构成云计算的软硬件环境,如网络、服务器、存储器、交换机等,通过网络连接在一起。某些情况下,广义的云体也可以包括数据中心及其辅助设施如电力、空调、机架、冷却等系统。鉴于当前的云计算都是基于数据中心来进行,云体就是数据中心。
数据中心(Data Center)是数据集中存储、计算、交换的中心。
软件定义的必要性:将数据中心的各个组成部分从硬件中抽象出来、集中协调与管理、统一提供服务。
云计算网络是为多个计算设备提供信息交换支持的系统。
SDN是对传统网络架构的一次重构,由原来的分布式控制的网络架构重构为集中,控制的网络架构。
• 转控分离
• 集中控制
• 开放接口
SDN控制器既不是网管,也不是规划工具。网管没有实现转控分离。规划工具的目的和控制器不同。
NBI (North Bound Interface)北向接口、SBI (South Bound Interface)南向接口
网络功能虚拟化Network Functions Virtualization(NFV)是指借助于标准的IT虚拟化技术,传统的专有硬件设备,通过采用工业化标准大容量服务器、存储器和交换机承载各种各样软件化的网络功能的技术,将许传统多类型的网络设备(如servers,switches和storage等)的网络功能与其物理设备剥离并以软件的形式运行在x86等服务器上。
OpenFlow是一种新型的网络协议,它是控制器和交换机之间的标准协议,可支持多个流表(flowtable)、组表(grouptable),支持多控制器等。一个流表中包含多个流表项,OpenFlowv1.3中流表项主要由7部分组成,分别是匹配域(用来识别该条表项对应的flow)、优先级(定义流表项的优先顺序)、计数器(用于保存与条目相关统计信息),指令(匹配表项后需要对数据分组执行的动作)、Timeouts、Cookie、Flags。
OpenFlow协议在工作中使用GOTO指令从一张流表转到另一张流表,该技术被称为多级流表技术。
SDN控制器的路由原理:OpenFlow协议定义了交换机在报文匹配失败时向控制器申请流表的方法,当交换机收到一个不能被当前流表各条流匹配的数据包时,通过将失配报文的相关信息封装在Packet-In消息中发送给控制器,让控制器知晓报文失配情况,由控制器通过Flow-Mod等消息向交换机安装新流表。
云原生的主旨是构建运行在云端的应用程序,致力于使应用程序能够最大限度地利用云计算技术特性的优势,提供更加优质的应用服务。
敏捷,可靠,高弹性,易扩展,故障隔离保护,不中断业务持续更新。
• 基础设施即服务(IaaS):用户可以将自己的应用程序平台、框架、数据库以及其他相关环境等按照用户以往在本地操作的方式来设置。但用户仍然需要手动安装、配置、维护软件运行的平台环境,没有真正地提高开发和运维人员的效率。
• 平台即服务(PaaS):这种方式可以避免单独购买授权产品,省去烦琐的安装和维护过程。
• PaaS产品服务的目标是突破IaaS云服务所不能提供的一些平台级服务,这个目标或原则也最终被转化为==软件即服务(SaaS)==产品的使用。
• 云原生原则:云端优先、基础设施即代码、敏捷交付…
Development(开发人员)+ Operations(运维人员)。
(1)它是一组过程、方法与系统的统称,用于促进开发部门、运维部门和质量保障部门之间的沟通、协作与整合。
(2)自动化是指所有的操作都不需要人工参与,全部依赖系统自动完成。
(3)DevOps的出现是由于软件行业日益清晰地认识到,为了按时交付软件产品和服务,开发部门和运维部门必须紧密合作。
(1)减少变更范围
(2)加强发布协调
(3)自动化
随着企业的业务发展,传统业务架构面临着很多问题:
① 单体架构在需求越来越多的时候无法满足其变更要求,开发人员对大量代码的变更会越来越困难,同时也无法很好地评估风险,所以迭代速度慢。
② 系统经常会因为某处业务的瓶颈导致整个业务瘫痪,架构无法扩展,木桶效应严重,无法满足业务的可用性要求。
③ 整体组织效率低下,无法很好地利用资源,存在大量的浪费。
微服务是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。
• 微服务是一种架构风格,也是一种服务。
• 微服务的颗粒比较小,一个大型复杂软件应用由多个微服务组成。
• 采用UNIX的设计哲学,每种服务只做一件事。
容器是属于“轻量级”的虚拟化。它的目的和虚拟机一样,都是为了创造“隔离环境”。但,它又和虚拟机有很大的不同——虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。eg:Docker(创建容器的工具,是应用容器引擎),Kubernetes(容器集群管理系统,主要职责是容器编排——启动容器,自动化部署、扩展和管理容器应用,还有回收容器。)
瀑布式开发、敏捷开发、DevOps流程都分为设计、开发、测试和部署,但各部分的开始和结束时间节点不同。从瀑布开发到敏捷开发再到DevOps,各个阶段的切换速度越来越快,瀑布式开发和敏捷开发的运维部署工作都是放到最后,而 DevOps 结合敏捷开发思想,将部署工作也敏捷起来。
(1)瀑布开发是早期的软件开发模型,要求有明确的需求,每一阶段工作的完成是下一阶段工作开始的前提,每一阶段都要进行严格的评审,保证各阶段的工作做得足够好时才允许进入下一阶段,它适用于需求明确的项目。其最大的风险是,当产品研发完成后, 到了产品测试阶段如果发现了问题 ,或者发现其无法满足市场需求, 那么就需要重新开发,甚至需要重新规划产品。
(2)敏捷开发是一种以用户需求进化为核心、迭代、循序渐进的开发方法。先把用户关注的软件原型做出来交付给用户,用户在实际场景中发现问题并给予反馈,研发人员快速修改弥补需求中的不足。上述过程不断迭代,直到用户满意。敏捷适用于需求不明确、创新性或者需要抢占市场的项目,特别适合互联网项目。
(3)DevOps是一组过程、方法与系统的统称,用于促进开发部门、运维部门和质量保障部门之间的沟通、协作与整合。。DevOps 的独特之处在于开发、IT 运营、质量工程和安全团队协同工作,在发布新产品、版本或更新所涉及的所有任务中创造效率。
(4)关于 DevOps 和敏捷,最重要的一点是它们不是互斥的。DevOps 是一种文化,促进参与者之间协作。敏捷述为一种开发方法,维护工作效率和驱动发布。应将这两种方法结合使用, DevOps是敏捷的有效补充,是将运维纳入产品开发过程的思维方式,是敏捷开发方法论的升级,更强调自动化工具的实现与应用,以帮助实现软件的快速迭代。
云操作系统亟需解决的问题:如何管理好互联网平台上的海量资源,为用户提供更好的服务。
云操作系统是指构架于服务器、存储、网络等基础硬件资源和单机操作系统、中间件、数据库等基础软件之上,管理海量的基础硬件、软件资源的云平台综合管理系统。
(1)网络化
(2)安全
(3)具有“计算的可扩充性
(1)VMware vSphere:业界第一款云OS,是由虚拟化技术衍生出来,能更好地进行内部云与外部云协同,构建跨越多个数据中心以及云提供商的私有云环境。
(2)甲骨文:能在SPARC、Oracle集成系统上建立大型企业级IaaS、PaaS和SaaS。
(3)浪潮云海OS: 第 一 款国产的云计算中心OS,采 用“Linux+Xen”开放标准技术路线,支持分布式计算、分布式存储等,性能更好、可用性更强、成本更低。
(4)微软Windows Server:理论上Windows Server 2012每个服务器能够支撑320个处理器、 4TB物理内存,每个虚拟机能够搭载64个虚拟处理器,通过Hyper-V能够扩展到1TB的内存,并不需要支付额外的费用。
(5)曙光Cloudview云操作系统:一款面向公有云和私有云的云OS,通过网络将IT基础设施资源、软件与信息按需提供给用户使用,支持IaaS服务,并通过部署平台服务软件和业务服务软件支持PaaS服务和SaaS服务。
(6)华为FusionSphere:华为自主创新的一款OS,提供强大的虚拟化功能和资源池管理、丰富的云基础服务组件和工具、开放的运维和管理API接口等,专门为云计算环境设计。
(7)阿里YunOS:阿里巴巴集团研发的智能OS,融合了阿里巴巴集团在大数据、云服务以及智能设备操作系统等多领域的技术成果,并且可搭载多种智能终端。
• OpenStack 是 一 个 由 NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
• OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。
• OpenStack是一个旨在为公有云及私有云的建设与管理提供软件的开源项目。
• OpenStack是一个IaaS层的软件。
• OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
(1)Nova -管理虚拟机
(2)Neutron-(管理网络流量和ip
(3)Swift - 网 盘 、对象存储服务
(4)Cinder-磁盘管理
(5)Glance - 镜像管理项目
(6)Keystone - 认证服务、权限管理
(7)Horizon - UI服务
(8)Ceilometer-监控服务
(9)Heat-集群服务
(10)Trove-数据库服务
(11)Dashboard-web项目
• Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证、服务访问规则和服务令牌功能的组件。
• 用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过Keystone 来处理。
• Keystone 类似一个服务总线
1、User :指代任何使用 OpenStack 的实体,可以是真正的用户、其他系统或服务。当 User 请求访问OpenStack 时,Keystone 会对其进行验证。
2、 Credentials:是 User 用来证明自己身份的信息。可以是:用户名/密码、Token 、
API Key 或其他高级方式。
3、Authentication:Keystone验证User身份的过程。User访问OpenStack时向Keystone提交用户名和密码形式的Credentials,Keystone验证通过后会给User签发一个Token作为后续访问的Credential。
4、Token是由数字和字母组成的字符串,User成功Authentication后由Keystone分配给User。Token用做访问Service的Credential,Service会通过Keystone验证Token的有效性。
5、Tenant:将OpenStack的资源(计算、存储和网络)进行分组和隔离。在企业私有云中,Tenant可以是一个部门或者项目组,和公有云的VPC(虚拟私有网络)概念类似。资源的所有权是属于Project的,而不是User。
6、Service:包括Compute(Nova)、BlockStorage(Cinder)、ObjectStorage(Swift)、ImageService(Glance)、NetworkingService(Neutron)等。每个Service都会提供若干个Endpoint,User通过Endpoint访问资源和执行操作。
7.、Endpoint:一个网络上可访问的地址,通常是一个URL。Service通过Endpoint暴露自己的API。Keystone负责管理和维护每个Service的Endpoint。
8、Role:Horizon在“身份管理->角色”中管理Role:可以为User分配一个或多个Role。
•安全包含两部分:Authentication(认证)和Authorization(鉴权)。
1、用户会通过命令行或horizon的方式登录,向keystone发送自己的Credentials,keystone验证成功之后,返回Token/Endpoint。
2、用户通过Token+Endpoint向nova发送请求,nova会拿着user的token向keystone认证,是否可用。keystone验证成功后,会给nova返回验证成功提示。
3、nova创建虚拟机需要镜像,所以向glance提出请求(token+image)。glance会拿着nova给的token向keystone认证,是否可用。keystone认证成功后,会给glance返回认证成功。于是glance给nova发送image。
4、nova创建虚拟机需要网络,所以向neutron发出请求(token+network)。neutron会拿着nova给的token向keystone认证,是否可用。keystone认证成功后,会给neutron返回认证成功。于是neutron为nova发送network。
5、nova开始创建VM,创建成功之后返回信息到User,此时虚拟机已经创建成功了。
Nova(OpenStack Compute Service)是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源,同时管理虚拟机生命周期。
Nova的服务:
(1)虚拟机管理
(2)虚拟机VNC和日志的管理
(3)数据库管理
(4)安全管理
当一个实例开始的时候,会先从硬件上通过hypervisor去调用 cpu, 内存,硬盘等一系列资源,到达conductor进行一个预处理,形成一个构建成虚拟机大小的请求,同时也会调用api向存储器发出请求来调用资源,再通过scheduler调度器来决定哪台计算节点承载计算实例,在这一系列完成之后,会开始进行外部服务,首先会去与keystone进行认证,之后调用网络资源,镜像以及存储资源来完成内部流程。
nova api接受到创建虚拟机的请求,首先使用请求携带的token_id来访问该api,以验证请求是否有效。再通过messaging查看创建虚拟机参数是否有效与合法。nova api 远程调用传递请求、参数给nova scheduler,nova scheduler为创建虚机指定宿主机,nova compute启动虚拟机。nova conductor查询nova数据库,数据库返回虚拟机信息。
(1)2个节点:
A、Cloud Controller Node:
• Keystone(身份验证服务) • Glance(镜像管理服务) • Nova (计算资源管理服务) • 数据库服务(MySQL) • 消息服务(RabbitMQ或QPid)
B、Compute Node:
• Nova-Compute • Nova-Network • KVM虚拟化系统
(2)2种网络:
A、 Internal Network(内部网络)
• 用于提供Provider网络(VM to Provider) • 用于tenant网络(VM to VM)
B、 External Network(外部网络)
• 用于外部用户与VM通信及控制(VM tonternet)
Neutron将网络、子网、端口和路由器抽象化,之后启动的虚拟主机就可以连接到这个虚拟网络上。
• IP地址分配:包含为虚拟主机分配私有(固定)和浮动IP地址。
• 网络模型与管理:提供了虚拟网络使虚拟主机之间以及与外部网络通信。网络模型分为三种(扁平网络、带DHCP功能的扁平网络、VLAN网络) ,这三种模型可以共存在一个云系统中,但是在一个计算节点上只能配备一种模型。
• 安全控制:主要通过ebtables和iptables来实现。
1、扁平网络(Flat Network):在创建虚拟主机时, nova-network会从指定子网中取一个空闲IP并将它写入此虚拟主机的配置文件。
2、带DHCP功能的扁平网络(Flat DHCP Network) :一顾名思义,此种模式相对于扁平网络加入了DHCP功能。
3、VLAN网络(VLAN Network):这是nova-network的默认模型。针对每个项目,都会对应一个vlan。每个项目里的私有IP地址只能在本项目的vlan里访问。
Swift是OpenStack的对象存储(Object Storage)项目,提供高可用分布式对象存储服务。Swift构筑在较便宜的标准硬件存储基础设施之上,无需采用RAID(磁盘冗余阵列) ,通过在软件层面引入一致性散列技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,支持多租户模式、容器和对象读写操作,适合解决互联网的应用场景下非结构化数据存储场。Swift是基于Python开发的,采用Apache 2.0许可协议,可用来开发商用系统。
1、极高的数据持久性
2、完全对称的系统架构
3、无限的可扩展性
4、无单点故障
1、在Swift中元数据呈分布式跨集群复制。
2、 Swift设计时考虑到多租户架构。
3、在Swift中文件可以写入多次,在并发场景下,以最近一次的的操作为标准。
4、Swift能够可靠地存储数量非常多的大小不一的文件。
Cinder是OpenStack的块存储服务, 为云环境提供块设备的创建、添加和卸载。主要核心是对卷的管理,允许对卷、卷的类型、卷的快照进行处理,为后端不同的存储结构提供了统一的接口。
API service:负责接受和处理Rest请求,并将请求放入RabbitMQ队。 Scheduler service:处理任务队列的任务,并根据预定策略选择合适的VolumeService节点来执行任务。Volume service:该服务运行在存储节点上,管理存储空间。每个存储节点都有一个Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。
本篇文章主要展示的是云计算相关的基础概念,同样也可以用于期末复习,希望可以对大家有所帮助。