云计算和存储将物理资源(例如处理器和存储)转换成Internet上可伸缩、可共享的资源(“作为服务”的计算和存储)。虽然虚拟化不是一个新概念,但是通过服务器虚拟化实现的物理系统共享,的确能使资源的可伸缩性大得多,效率也高得多。云计算使用户可以访问大规模计算和存储资源,而且他们不必知道那些资源的位置及其是如何配置的。正如您预期的一样,Linuxreg在此扮演着极为重要的角色。探索云计算,了解其中的奥秘。
最近,没有哪家技术性网站不提到所谓的云计算(cloud computing)的。云计算其实就是以服务的形式提供计算资源(计算机和存储)。这又涉及到以一种简单、透明的方式动态地将服务延伸到更多的计算机和存储的能力。所有这些都类似于效用计算(utility computing)背后的思想。在效用计算中,计算资源被看作一种计量服务,就像更传统的公共设施(例如水或电)一样。它们的区别不在于这些思想背后的目标,而在于组合到一起、使这些思想成为现实的现有技术。
云计算背后最重要的概念之一就是可伸缩性,而实现它的关键则是虚拟化(virtualization)。虚拟化在一台共享计算机上聚集多个操作系统和应用程序,以便更好地利用服务器。虚拟化还允许在线迁移,因此,当一个服务器超载时,可以将一个操作系统的一个实例(以及它的应用程序)迁移到一个新的、不那么繁忙的服务器上。
从外部看,云计算只是将计算和存储资源从企业迁出,并迁入到云中。用户定义资源需求(例如计算和广域网、带宽需求),云提供者在它的基础设施中虚拟地装配这些组件。
云计算在 Internet 中迁移资源
云计算的目标是使这些资源比您自己所能提供和管理的资源更廉价。云计算除了降低成本外,还有更大的灵活性和可伸缩性。云计算提供者可以轻松地扩展虚拟环境,以通过提供者的虚拟基础设施提供更大的带宽或计算资源。
云计算在环保方面的优势是,它可以在不同的应用程序之间虚拟化和共享资源,以提高服务器的利用率。下图显示了一个例子。在这个例子中,不同的应用程序使用了 3个独立的平台,每个应用程序都在它自己的服务器上运行。在云中,可以在多个操作系统和应用程序之间共享(虚拟化)服务器,从而减少服务器的数量。更少的服务器意味着需要更少的空间(减少数据中心占用的空间)和更少用于制冷的电力(减少碳足迹)。
虚拟化和资源使用
现在让我们来探索一下,Linux和开源社区如何为云计算领域做出贡献。您可能已经猜到,Linux和开放源代码扮演着极其重要的角色。
Software-as-a-Service
SaaS 就是以服务的形式访问Internet上的软件。一种早期的SaaS方法是Application Service Provider(ASP)。ASP提供对Internet上存放或交付的软件的订阅。ASP交付软件,并根据软件的使用收费。这样一来,您就不必购买软件,只需随需租用软件。
SaaS的另一个方面是在Internet上使用远程执行的软件。这种软件可以是本地应用程序所使用的服务(并定义为Web服务),也可以是通过Web浏览器看到的远程应用程序。远程应用程序服务的一个例子是Google Apps,它通过一个标准的Web浏览器提供一些企业应用。要远程地执行应用程序,通常需要依赖于一个应用服务器来公布所需的服务。应用服务器是一个软件框架,它公布软件服务的API(例如事务管理或数据库访问)。具体的例子有Red Hat JBoss Application Server、Apache Geronimo和IBMreg; WebSpherereg; Application Server等。另外还有很多其他的应用服务器,参考资料 小节给出了一份详细的列表。
SaaS的另一个最近的例子是Google的Chrome浏览器。这个浏览器是作为新桌面的理想环境,除了具有传统的Web浏览体验外,还可以通过它来(以本地或远程方式)交付应用程序。
Platform-as-a-Service
PaaS可描述为一个完整的虚拟平台,它包括一个或多个服务器(在一组物理服务器上虚拟而成)、操作系统以及特定的应用程序(例如用于基于Web的应用程序的Apache和MySQL)。在某些情况下,这些平台可以预先定义和选择。而在另一些情况下,可以提供一个VM镜像,该镜像包含所有的特定于用户的应用程序。
PaaS一个有趣的例子是Google App Engine。App Engine是一个服务,通过它可以在Google的可伸缩性极佳的架构上部署Web应用程序。App Engine为可通过Internet引用的Python应用程序提供一个沙盒(将来还会支持更多的语言)。除了支持用户认证、镜像操作和电子邮件发送外,App Engine还提供了PythonAPI,用于持久地存储和管理数据(使用Google Query Language或GQL)。Web应用程序运行时所在的沙盒将限制对底层操作系统的访问。虽然App Engine限制了应用程序可用的功能,但是它支持有用的Web服务的构造。
注意:在一定的带宽和存储约束范围内,在App Engine中部署应用程序是免费的。但是,如果要用App Engine构建生产Web站点,则需要评估使用费。
PaaS的另一个例子是10gen,它既是一个云平台,又是一个可下载的开放源代码包,可用于创建您自己的私有云。10gen是类似于App Engine的一个软件栈,它提供与App Engine类似的功能——但有一些不同之处。通过10gen,可以使用Python以及JavaScript.和Ruby编程语言开发应用程序。该平台还使用沙盒概念隔离应用程序,并且使用它们自己的应用服务器的许多计算机(当然,是在 Linux上构建)提供一个可靠的环境。
Infrastructure-as-a-Service
IaaS是以服务的形式交付计算机基础设施。这一层与PaaS的不同之处在于,只提供虚拟硬件,而没有软件栈。客户提供一个VM镜像,该镜像在一个或多个虚拟服务器上被调用。IaaS是作为服务的计算的最原始的形式(除了对物理基础设施的访问)。最著名的商业IaaS提供程序是Amazon Elastic Compute Cloud(EC2)。在EC2中,可以指定一个特定的VM(操作系统和应用程序集),然后将应用程序部署到它上面,或者提供要在服务器上执行的VM镜像。然后,只需根据计算时间、存储和网络带宽付费。
Eucalyptus项目(Elastic Utility Computing Architecturefor Linking Your Programs To Useful Systems)是Amazon EC2的一个开源实现,它与商业服务接口兼容。和EC2一样,Eucalyptus依赖于Linux和Xen进行操作系统虚拟化。Eucalyptus是加利福尼亚大学(SantaBarbara)为进行云计算研究而开发的。您可以从该大学的网站上下载它。
另一个EC2风格的IaaS是Enomalism云计算平台。Enomalism是一个开放源代码项目,它提供了一个功能类似于EC2的云计算框架。Enomalism 基于Linux,同时支持Xen和Kernel Virtual Machine(KVM)。与其他纯IaaS解决方案不同的是,Enomalism提供了一个基于TurboGears Web应用程序框架和Python的软件栈。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
谷歌云业务CEO描绘谷歌云计划 收购传言四起
行业观察人士猜测,新任谷歌云首席执行官Thomas Kurian将通过大规模收购来获取市场份额,并与竞争对手A […]
-
Workday公司继续在亚太地区大举投资
随着亚太地区(APAC)地区越来越多的企业转向云计算来拓展其数字业务,Workday公司跻身为全球发展最快的云 […]
-
华为“一云一湖一平台”架构助力客户加速智能化进程
在第十五届华为全球分析师大会上,秉承“智IT,慧未来”的理念,华为IT产品线分享了IT基础设施在数字化转型过程 […]
-
云计算可移植性的来龙去脉
目前云计算提供商都是按不同的方式构建其产品,这造成典型的“缺乏标准、以创新为导向以及供应商锁定”的局面。 但供 […]