一、什么是云计算?
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,从可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),共享池内的资源能够被快速提供和释放,管理的工作量或与服务供应商的介入降低至最少。
对云计算这三个字的理解:
- 云,是网络、互联网的一种比喻说法,即互联网与建立互联网所需要的底层基础设施的抽象体。
- “计算”当然不是指一般的数值计算,指的是一台足够强大的计算机提供的计算服务(包括各种功能,资源,存储)。
“云计算”可以理解为:网络上足够强大的计算机为你提供的服务,只是这种服务是按使用量进行付费的。
行业生态:
计算机云经过多年的发展,由一开始的概念,慢慢发展成熟并能够推向市场,提供多种多样的服务,市场空间非常之大。
在云的发展过程中,亚马逊经过多年的深耕积累,发展成为了云行业的标杆企业,甚至是建立了云解决方案的标准。
只要是存在商业价值以及商业利益的存在,就会有更多的公司、人参与进来,google、IBM、思科、Oracle、HP惠普、Intel、华为等IT巨头先后参与进来,在软件和硬件方面提供专门的面向企业的解决方案,纷纷打着云计算、大数据、智能等概念来吸引客户,拓展市场。
另外一方面,基于大数据,存储,云服务等也先后出现一些创新企业,譬如dropbox、rackspace,国内也产生相关的创业公司,譬如七牛、青云、ustack等。
按照开源的习惯来说,只要是有一套成熟的商业软件,就会有一套开源的解决方案(譬如windows之于linux,google的mapreduce、gfs、大表之于hadoop等等),
在云领域,也存在相应的开源解决方案,在开源的云解决方案里有若干公司将解决方案进行开源,而最为著名的有openstack和cloudstack。对于开源行业的领导者redhat来说,redhat在企业操作系统的市场已经做的很好,从RHEL系统的各个版本来都是提供操作系统的稳定版本,在企业级系统市场有相当高的市场份额。redhat特别重视云的发展,并将云操作系统作为未来10年的发展战略重点。并先后收购了openstack,以及ceph等存储企业,壮大自己在云领域的影响力。
随着云领域的发展,逐渐形成了面向企业提供硬件和软件产品产品提供商,面向企业提供服务的服务提供商,面向市场创业企业提供基础服务的服务企业,面向个人提供业务服务的一系列行业生态。
二、为什么要云计算 ?
从供应商角度:
- 资源方面:海量资源动态管理,灵活配置,达到高效利用。
- 人力方面:技术团队的高效利用。
对客户而言:
- 使用方式多:网络访问无处不在。
- 成本投入低:按需使用的自助服务,资源可以弹性伸缩。
三、对云计算总结共有五个特性:
1. 基于互联网络
云计算是通过把一台台的服务器连接起来,使服务器之间可以相互进行数据传输,数据就像网络上的“云一样”在不同服务器之间 “飘”。同时通过网络向用户提供服务。
2. 按需服务
“云”的规模是可以动态伸缩的。在使用云计算服务的时候,用户所获得的计算机资源是按用户个性化需求增加或减少的,并在此基础上对自己的使用的服务进行付费的。
3. 资源池化
资源池是对各种资源(如存储资源,网络资源)进行统一配置的一种配置机制。从用户角度看,无需关心设备型号,内部的复杂结构,实现的方法和地理位置,只需关心自己需要什么服务即可。从资源的管理者角度来看,最大的好处是资源池可以近乎无限地增减和更换设备,并且管理,调度资源十分便捷。
4. 安全可靠
云计算必须要保证服务的可持续性、安全性、高效性和灵活性。故对于提供商来说,必须采用各种冗余机制、备份机制、足够安全的管理机制和保证存取海量数据的灵活机制等,从而保证用户的数据和服务安全可靠。对于用户来说,其只要支付一笔费用,即可得到供应商提供的专业级安全防护,节省大量时间与精力。
5. 资源可控
云计算提出的初衷,是让人们可以像使用水电一样便捷的使用云计算服务,极大的方便人们获取计算服务资源,并大幅度提供计算资源的使用率,有效节约成本,使得资源在一定程度上属于“控制范畴”。但如何对云计算服务进行合理的、有效的计费,仍是一项值得业界关注的课题。
四、云计算的实现方式
Private:传统虚拟化
- 优点:所有事情亲自做,可控,用户成本高。
- 缺点:要求自身水平高。
- 典型软件:传统物理主机
IaaS:基础设施即服务
- 优点:底层硬件到操作系统,都不用用户操心,省事,可以集中精力做业务逻辑。
- 缺点:服务商提供的东西,非自己自由定制,所以不可控。
- 典型软件:OpenStack, CloudStack。
PaaS:平台即服务
- 优点:我不会运维,我只会开发,底层到运行环境,都不用用户操心,省事,可以集中精力做应用项目。
- 缺点:服务商提供的东西,定制太强,不灵活,只适用于特殊的应用项目。
- 典型软件:Docker、Rocket、Openshift. . .
SaaS:软件、应用即服务
- 优点:所有东西由服务商提供,自己只需要花钱使用就行了,对于广大(大中小)企业来说,SaaS是采用先进技术实施信息化的最好途径,如: 企业邮箱,财务软件云。
- 缺点:客户来说,所有东西不可控,安全不安全,看情况。
- 常见应用服务有:DBaaS、FWaaS、 LBaaS、XaaS . . .
- eg: 各种运维平台、日志管理平台、 监控平台、财务平台。。。
一切皆服务,即是云计算的最终目标,云计算不是一种技术手段,而是资源利用模式的变革。
云供应商:
- 亚马逊:国外企业,支持分级别的资源调用。
- 阿里云:国外企业,支持天级别的资源使用。
- 青云:国内企业,支持分级别的资源使用。
- 腾讯云,华为云。。。
目前他们提供的云主机,一般只支持容量扩容,不支持缩小,因为没有需要。
云计算常见种类:
- 公有云:普遍性,用户按需使用,成本低廉,管理方便。缺点是数据安全没法保证,eg: 亚马逊,阿里云,OpenStack。
- 私有云:专用性,所有资源都自己提供,安全有保障。eg: vmware 公司云。
- 混合云:协调性,核心业务用私有云,临时需求/轻量级业务需求使用公有云。
衍生云类型:
- 托管云:IDC(Internet data center)机房自己做一个私有云,按需出租,支持拓展,不需要用户自己购买设备,用户可以自己管理,也可以让提供商管理,用户只有使用权,产权是提供商的。
- 专用云:托管云可能出现一女嫁二夫的,安全没有保障,专用云保证你租用的主机只有你自己可以用。
- 行业云;比如银行不敢使用公有云,银行就会建立一个云,同一行业的使用。省钱安全。eg:正误云,金融云,游戏云。
如何选择?
- 有实力的企业:自己搞一套云,富裕的话,共享一些。
- 实力稍微欠缺:核心自己搞,其他功能使用共有云,作为补充,减轻成本。
- 小微企业: 由于自身特性,选择喜欢的云环境。
下图说明一下在互联网行业各个角色的需求(仅局限于云领域)
云解决什么?
1. 封装
将计算能力和软件放在云端,可以减少重复建设,将通用的服务封装起来,达到重用,减少资源的浪费,提高生产效率,并提供成熟的解决方案。
2.安全
云计算将数据和存储,软件逻辑都集中于云端,更能方便的统一构建安全体系
3.灵活
云计算提供灵活的软件和服务端架构
4.性能
通过集群的能力和云端的集成能够提高集群的性能处理
5.伸缩能力
在存储和计算能力方面提供弹性的资源管理,能够按需使用
6.运维
云计算在IAAS角度来看,重要的是运维,能够将运维更加集中化管理,并完全智能化,大大降低人力成本
7.充分利用物理资源
通过云建设,能够将物理资源进行虚拟化处理,屏蔽物理硬件底层,并能够完成物力资源软化进行逻辑管理和分配调度
8.大数据
大数据保存于云端,能够提供数据分析和智能处理
……
当然,云计算还有很多很多好处,给我们带来很多想像空间和IT技术的革命。
云建设的关键问题
计算机基础知识:
计算机自从诞生以来,一直按照冯.诺伊曼的体系发展,在硬件的基础上的操作系统,也分为网络协议体系的实现,内存管理,文件管理体系等等,大致的抽象图:
云建设要解决的问题?
1.管理问题
云计算的实施,首先要解决运维的问题,在云环境下后端是大规模数量的物理节点的集群,对于同时维护数以千计算的计算节点,以及部署结构的复杂,需求的变化,光靠增加人力也难以解决复杂的问题。从而需要构建高效的计算资源管理系统,能够灵活简单的管理运系统,并能够及时的发现问题。
2.计费问题(公有云)
对于公有云而言,因为是面向公众的,必然产生费用的问题,常用的收费方式多种多样,也因为产品的不同而计费方式不同,譬如:网络、存储、cpu、数据库容量等等
3.资源隔离问题
云计算运行在云端,是通过虚拟化体系建立的,虚拟化是建立在硬件之上,多个虚拟化资源同时运行于同一节点(host)中,存在着资源的共享争用问题,这样就存在着资源使用的公平性问题,导致同一Host上的资源使用相互影响。为了使得彼此资源使用相互独立,我们要建立相应的隔离机制。资源的隔离包括:存储、内存、cpu、数据库、网络等,其中网络是最难控制的。
4.安全问题
在云端的应用和基于客户端的安全,面临的环境不一样,客户端方面大多数是病毒问题引起的,而在云端,也存在一些服务器攻击的问题,以及数据相互独立相互影响的问题,以及一些服务端编程的安全问题等。
5.性能问题
对于云来说,需要保证云端的性能问题,包括CPU处理性能,IO处理能力,资源的就近访问,资源数据同步的速度,还需要解决系统底层的性能问题,包括文件处理Cache,存储介质的优化,采用SSD等,或者采用SATA+SSD的混合方式节约资源和降低成本。
6.存储问题
对于云来说,由于云端是将客户端的数据和运算转移到云端,必须要有足够的存储能力以及足够稳定的存储系统,保证用户数据的安全,对于存储来说,有提供VM虚拟机运行环境的block device(块存储),以及提供KV方式的对象访问存储,这些都需要保证数据复制、数据读写访问的性能和数据永久可用的能力
7.网络问题
对于公有云以及私有云的一些应用场景,需要能够提供网络的逻辑隔离(SDN)或物理隔离,以及对网络的访问灵活问题。构建虚拟化网络,由于物理条件的限制,我们不得不从L2-L4层进行处理,我们常用的方式是:bridge,vlan,gre,sdn(openflow,opendaylight),以及一些厂家的产品等等。
8.高可用问题
高可用问题是在分布式系统中必须要处理的问题,正因为集群的问题,我们必须要从多方面考虑解决的问题,包括保证云管理系统的高可用性,存储介质的高可用性,网络的高可用性,虚拟机高可用问题等等。
9.提高资源利用率问题
对于物理资源的虚拟化,我们有很多种解决方法,KVM、Vmware、xen、Hyperv、LXC等等,在HVM的方式下,对于VM本身的启动需要占用大量的内存、cpu和存储资源,导致系统内存和cpu使用有一定的浪费,基于LXC的解决方案因为是机基于Host OS进程,通过namespace的方式进行隔离的,是一种轻量级的实现,能够在资源初始化,资源利用率方面能够最大化,对于各个应用场景来说,我们可以选用合适的解决方案。
虚拟化 vs 云计算
虚拟化:
一种技术,目的在于提高资源利用率,并将底层硬件和上层应用软件进行隔离,使上层软件及应用计算变得更加弹性可控,最终达到有限成本的高价值。
- 默认情况下虚拟化技术默认并不对外,将底层资源抽象为上层应用软件服务,一个没有被服务化的虚拟化环境只能被称为资源池。只有内部管理人员才可以操作。
云计算:
以虚拟化技术为核心和基础,面向服务架构SOA(service oriented architecture)的一种实现,将虚拟化环境资源池隐藏起来,将其上层应用软件形成丰富的云管理接口,达到所有人自由使用所有资源的一种现象,他是一种资源使用模式的变革。
虚拟化是一种技术,云计算是资源交付模式,云计算不等同于虚拟化而是基于虚拟化。
云计算就介绍到这里。
更多:Python 目录