将计算机的运算资源,存储资源以及网络资源集中整合起来通过虚拟化的技术,以fine—grand的方式释放出来,并以此为基础构建各类应用能够为消费者提供全面的、全方位的服务。
(1)从技术角度看
云计算包含两部分:云设备和云服务。
(2)从商业角度来就看
大规模数据处理、大规模消息通信、大规模分布式存储、虚拟化技术。这几个是云计算的关键所在。
(1)IaaS使用的关键技术
(2)PaaS使用的关键技术
(3)SaaS使用的关键技术
计算模式 | 定义 | 特点 |
---|---|---|
并行计算 | 同时使用多种计算资源解决计算问题的过程,主要目的是快速解决大型且复杂的计算问题 | 把计算任务分配给系统内的多个运算单元 |
分布式计算 | 把一个需要巨大计算能力才能解决的问题分成多个小部分,把这些小部分分配给多个计算进行处理,最后综合这些计算结果得到最终结果 | 把计算任务分配给网络中多台独立的机器 |
网格计算 | 利用互联网把地理上广泛分布的各种资源连成一个逻辑的整体,就像一台超级计算机一样 | 分布式计算的一种。为用户提供一体化的信息和应用服务。 |
云计算是网格计算、分布式计算、并行计算、网络存储、虚拟化、负载均衡等传统计算机和网络技术发展融合的产物。
云计算并没有明确的分层体系,这里只是为了方便理解。
资源池层是指基础架构层面的云计算服务,这些服务可以提供虚拟化的资源,从而隐藏物理资源的复杂性。例如:物理资源指的是物理设备,如服务器等。服务器服务指的是操作系统的环境,如linux集群等。网络服务指的是提供的网络处理能力,如防火墙,VLAN,负载等。存储服务为用户提供存储能力。
平台层为用户提供对资源层服务的封装,使用户可以构建自己的应用。数据库服务提供可扩展的数据库处理的能力。中间件服务为用户提供可扩展的消息中间件或事务处理中间件等服务。例如:提供各种SDK(Software Development Kit,即软件开发工具包)、文档、测试环境和部署环境等在内的开发平台,它让用户能够使用提供商支持的编程语言和工具把应用程序部署到云中。用户不必管理或控制底层基础架构,而是控制部署的应用程序并在一定程度上控制应用程序驻留环境的配置。
应用层提供软件服务。企业应用是指面向企业的用户,如财务管理,客户关系管理,商业智能等。个人应用指面向个人用户的服务,如电子邮件,文本处理,个人信息存储等。
用户访问层是方便用户使用云计算服务所需的各种支撑服务,针对每个层次的云计算服务都需要提供相应的访问接口。
管理层是提供对所有层次云计算服务的管理功能:
PS:
这里要提到一点,今天软件架构世界中新鲜但是很热门的一个话题——Serverless(无服务器)架构。无服务器并不是指不需要服务器,而是服务器对你来说是透明的,你跟本不用考虑任何和服务器有关的事情,你只需要说出你的需求即可。
Serverless是非常简单的外包解决方案。它可以让您委托服务提供商管理服务器、数据库和应用程序甚至逻辑,否则您就不得不自己来维护
Serverless通常包含了两个领域BaaS(Backend as a Service)和FaaS(Function as a Service),就是上边所谈到的。
它是一种对公众开放的云服务,能支持数目庞大的请求,而且因为规模的优势,其成本偏低。公有云由云供应商运行,为最终用户提供各种各样的IT资源。
一般由一个组织来使用,同时由这个组织来运营。私有云主要为企业内部提供云服务,不对公众开放,在企业的防火墙内工作,并且企业IT人员能对其数据、安全性和服务质量进行有效地控制。与传统的企业数据中心相比,私有云可以支持动态灵活的基础设施,降低IT架构的复杂度,使各种IT资源得以整合和标准化。
它强调基础设施是由二种或更多的云来组成的,但对外呈现的是一个完整的实体。企业正常运营时,把重要数据保存在自己的私有云里面(比如:财务数据),把不重要的信息放到公有云里,两种云组合形成一个整体,就是混合云。比如说电子商务网站,平时业务量比较稳定,自己购买服务器搭建私有云运营,但到了圣诞节促销的时候,业务量非常大,就从运营商的公有云租用服务器,来分担节日的高负荷;但是可以统一的调度这些资源,这样就构成了一个混合云。
传统IDC(Internet Data Center,互联网数据中心)的服务已经无法满足用户的需求,用户期望更强大、更方便和更灵活的IDC服务。IDC云是在IDC原有数据中心的基础上,加入更多云的基因,比如系统虚拟化技术、自动化管理技术和智慧的能源监控技术等。通过IDC的云平台,用户能够使用到虚拟机和存储等资源。还有,IDC可通过引入新的云技术来提供许多新的具有一定附加值的服务,比如,PaaS等。现在已成型的IDC云有Linode和Rackspace等。
对任何大中型企业而言, 80%的IT资源都用于维护现有应用的,而不是让IT更好地为业务服务。使用专业的企业云解决方案来提升企业内部数据中心的自动化管理程度,将整个 IT 服务的思维从过去的软硬件思维转变为以提供服务为主,使得IT人员能分出精力来为业务创新,成为半个业务人员。
由于数据是企业的非常重要的资产和财富,所以需要对数据进行有效的存储和管理,而且普通的个人用户也需要大量的存储空间用于保存大量的个人数据和资料,但由于本地存储在管理方面缺失,使得数据的丢失率非常高。而云存储系统能解决上面提到这些问题,它是通过整合网络中多种存储设备来对外提供云存储服务,并能管理数据的存储、备份、复制和存档,还有,良好的用户界面和强大的API支持也是不可或缺的。
企业需要分析大量的数据来洞察业务发展的趋势,可能的商业机会和存在的问题,从而做出更好、更快和更全面的决策。还有,物联网会采集海量需要处理的数据。大规模数据处理云通过将数据处理软件和服务运行在云计算平台上,能利用云平台的计算能力和存储能力来对海量的数据进行大规模的处理,除了上面提到的物联网之外,还有许多企业和机构都会有这方面的需求。相关产品有Apache的Hadoop等。
在科学方面HPC(High Performance Computing,高性能计算)领域,新一代的高性能计算中心不仅仅需要提供传统的高性能计算,而且还需要增加资源的管理、用户的管理、虚拟化的管理、动态的资源产生和回收等等。这时,基于云计算的高性能计算应运而生,也就是HPC云,其能够为用户提供可以完全定制的高性能计算环境,用户可以根据自己的需求来改变计算环境的操作系统、软件版本和节点规模,从而避免与其他用户的冲突, 并可以成为网格计算的支撑平台,以提升计算的灵活性和便捷性。HPC云特别适合需要使用高性能计算,但缺乏巨资投入的普通企业和学校。
开发测试总是繁琐、易错和耗时的过程,特别是在准备测试环境上面,还有会遇到诸如测试资源管理混乱,难于重现问题发生的环境和缺乏压力测试所需要的强大计算能力等棘手问题。而开发测试云能有效解决上面这些问题,其通过友好的Web界面,可以预约、部署、管理和回收整个开发测试的环境,通过预先配置好(包括操作系统,中间件和开发测试软件)的虚拟镜像来快速地构建一个个异构的开发测试环境,通过快速备份/恢复等虚拟化技术来重现问题,并利用云的强大的计算能力来对应用进行压力测试,比较适合那些需要开发和测试多种应用的组织和企业。
由于传统游戏软件容量都非常巨大,无论是单机,还是网游,都需要在游戏之前,花很多时间在下载和安装上,使玩家无法很尽兴地玩游戏,再加上游戏的购置成本偏高,使得玩家在尝试新游戏方面,兴趣骤降。在这方面,业界部分公司推出了游戏云的解决方案,主要有两大类:其一是使用更多基于Web的游戏模式,比如使用JavaScript 、Flash 和Silverlight等技术,并将这些游戏部署到云中,这种解决方案比较适合休闲游戏;其二是为大容量和高画质的专业游戏设计的,整个游戏都将在运行云中,但会将最新生成的画面传至客户端。总之,休闲玩家和专业玩家都会在游戏云找到自己的所爱。在产品方面:第一种游戏云,已经有很多游戏都采用这种方案,比如许多Facebook上的休闲游戏采用了后端云和前端Flash这样的组合;而第二种游戏云,AMD已经发布了类似的技术,但碍于现有的网络环境,所以短时间内不会有特别成熟技术出现。
讲到这里,我们大致已经能梳理三者之间的关系了,IDC是基础,纯物理硬件服务器服务;云平台是IDC基础上进行升级,服务器功能上再附加更多的综合服务;而CDN是基于IDC或者云平台的一种组网模式,通过分布于各地的缓存服务器,达到最快访问资源的目的。