什么是云计算
一、 什么是云计算
“云计算就是基于互联网的计算,它能像电网供电一样,按需把共享的资源、软件和信息提供给计算机和其它设备。”
首先,云计算不是一种技术,也不是一种标准, 而是一种模式,或者说它是一种服务的理念。它就是将软件资源1大规模地整合,在互联网上提供出来。 云计算通过网络互联的方式把本来分散在世界各地的软件资源整合起来,使本来不是均质的软件资源,能够通过互联网的方式流动起来。所谓众人拾柴火焰高,云计算将通过这种方式产生充沛的软件资源。用户可以按需索取资源,而不会受到环境的束缚。另一方面,软件资源商也就可以不受到环境的束缚将自己的资源销售到互联网所能触及到的任何地方。
另外,大规模整合资源也能提高效率。举个例子来说,早年间,英国资产阶级萌芽时期,手工业是分散在各个家庭当中。就拿用铁丝窝曲别针来说。一天一个人能做七、八十个就了不得了。后来,有人组织了工作坊,将人力资源整合,并将工作细分为削铁丝,磨铁丝,窝铁丝等等。每个人只需要关注自己那一小部分的工作,于是形成了高效的流水工作链。平均每个人一天就可达到几百个曲别针的惊人速度。这里并没有改进生产技术,而是整合了资源。使每个领域的人只专注于自己的那部分工作,不用花费精力在其它的地方。
二、云计算是如何提供服务的
云计算是如何提供整合资源的呢?官方定义了三种服务模型(SPI)。按照基础的顺序,分别是 1软件资源是指一切软件所需要使用到的资源。例如:信息服务、基础硬件、网络带宽等等。
Figure 1云计算的三种服务模型
1、基础设备即服务(IaaS, Infrastructure as a Service)
假使一家信息提供商想要在互联网上提供一项服务。它第一步需要做什么?首先,它需要购置服务,购置网络带宽,这里往往就非常麻烦。提供商需要预计这项服务在较长的一段时间内有多少使用量、使用规律是如何的,并以此确定容量、负载均衡、网络带宽。如果想做得再好的话,还需要做容灾方面的处理。这就需要非常专业的知识和经验。当然,也可以花费大价钱去购买专业公司的解决方案。这样就产生了一个很高的门槛。在较小资本的企业中难以把服务做好做大。只能走做创意,然后被大公司收购的路,比如开心网。
云计算中IaaS 就可以解决这些问题。IaaS 会将互联网中的服务器、存储空间、带宽以整合的方式管理起来,并以付费租用的方式提供给资源消费者。IaaS 容许资源消费者按其需求实时地租用和释放基础设施,而传统的空间商则需要签订较长时间的租用合同。
这样有什么好处呢?
它大大地降低了资本门槛。小型企业商可以一开始不需要花费太多资金,只租用较少的基础设施资源。而随着业务量的增大,企业可以随之增加其基础设施资源的租用量。
另一个角度,它也减少了基础设施资源的浪费。非IaaS 环境下,服务供应商在建立其服务基础设施时,
需要预先设置基础设施资源以应付将来服务量的增长。
即他需要准备充裕的服务器、带宽等资源。这些资源一般在服务开始的相当一段时间内是空闲的,这就造成相当可观的成本浪费。在一个非均衡使用量的服务中,即该服务在随时间变化,服务使用量也会产生极大的波动。这种情况下,在服务使用量的低谷也会造成基础设施资源的浪费,对企业来说就是成本的浪费。IaaS 环境下,企业就可以根据使用量实时租用和释放基础设施资源。在使用量较多的时候,租用更多的资源,以增加服务供应量;在使用量较少的时候,释放空闲的资源,以减少租用费用。这就消除了资源和资金的浪费。
IaaS 是通过互联网将全球的2资源整合在一起,使租用资源的企业消除地域限制。举例来说,如果要提供全球性服务, 在传统的方式下就需要在全球各地租用托管机房,布署其服务器。但是非国际企业是无力做到这一点的。在IaaS 环境下,企业就可以很简单地租用IaaS 环境下相应地域的基础设施资源进行部署,达成全球性的服务。IaaS 环境还可以通过提供地域缓存技术(DSN),提高全球性服务的用户体验。
2、平台即服务(PaaS, Platform as a Service)
既然是提供网络服务,就需要诸如J2EE, ASP.net这样的服务平台,支撑我们服务的业务逻辑。PaaS 意味着服务平台的部署不需要企业自己进行支撑维护,只需要通过PaaS 平台进行定制就可以了。
这样就降低企业的技术门槛,使他们能够专心于自己的业务逻辑。
3、软件即服务(SaaS, Software as a Service)
软件即服务这个概念已经不陌生了。用户不需要将软件产品安装在自己的电脑或服务器上,而是按某种服务水平协议直接通过互联网从专门的提供商获取自己所需要的、带有相应软件功能的服务。
一般云计算平台提供的服务都是Web 服务。可以基于SOAP,JSON 协议来实现分布式的中间件系统。这样就在云计算平台上形成一条条产业链。另外,随着手机等移动终端越来越多地接入互联网,云计算平台同样可以有能力对移动终端提供服务。
如一个地图服务商就可以这样配置它的服务实现。 2这当然与实际的云计算环境相关。如果是全球的云计算环境,则是整合了全球资源。
Figure 2地图服务的业务链
三、云计算的实现技术
1) 虚拟化技术
虚拟化是将一个计算机资源从另一个计算机资源当中分离的技术。简单来说,虚拟化技术就是虚拟出一套计算机硬件资源3,使软件运行在这个虚拟资源上,从而脱离对实际计算机硬件资源的依赖。
虚拟化技术在上述的三种层次的服务模型里都有所应用。其中应用最密切的就是基础设施即服务(IaaS)。
首先,虚拟化技术可以对服务器资源进行进一步的整合,使服务器效率更高。虚拟化消除了软件之间的冲突,它可以让冲突的软件独自运行在各自的虚拟环境当中。这样就可以解决不兼容软件不能在同一服务器上运行的问题。比如说3Q 。最直观的例子,如果我们有两个业务组件分别只能运行在Linux 和Windows 两种系统上,那么在之前的情况下我只能布署两台服务器。而虚拟化则可以在同一台服务器上直接虚拟一套Linux 环境和一套Windows 环境,这就节省了服务器3有时不光光是硬件资源,也可以是软件的运行环境
资源, 提高了一台服务器使用效率。
其二,虚拟化可以方便实现实时布署。如果想布署一组服务组件到几台服务器上,只需要把运行有该服务组件的虚拟环境镜像传送到这几台服务器上,就可以立刻运行起来,根本不需要任何配置和安装。
其三,业务连续性和容灾措施。如果一个系统发生严重错误,导致无法运行。在非虚拟化环境下,必须通过人为干预才可以解决这些问题。比如重启系统,重装系统、重新配置。而虚拟环境下,虚拟管理器可以自动识别故障,采取相应的措施――重启系统,或者是重新运行一份之前已经备份的正常的虚拟环境镜像。当发生自然灾害之类的严重灾难时,云计算管理可以立即将虚拟环境备份转移到安全的服务器上去运行。从而使服务避免因为灾难而被迫中断。
四、微软的云计算平台– Windows Azure:
Windows Azure 是一整套云计算平台的实现。它同时提供IaaS,PaaS 和SaaS 服务。其地址是https://windows.azure.com/Default.aspx。
在Windows Azure可以上传我们的ASP.NET, MCV工程作为一个软件。在Azure 中称之为Role 。在Azure 管理界面中,我们可以为每个Role 分配多个Instance 。每个Instance 其实就是IaaS 层面中的服务器。我们可以选择每个Instance 的性能和它的地理位置。每个Role 都会有一个唯一的URL 。Azure 会对每个对该URL 的请求进行负载均衡分派给每个Instance 。
Windows Azure从三个层面来说,分别提供下面的特性
Windows Azure资费清单:
http://www.microsoft.com/windowsazure/pricing