`
kevinwu
  • 浏览: 57300 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

开源代码及Linux系统在云计算中应用

阅读更多
云计算和存储将物理资源(例如处理器和存储)转换成 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)为进行云计算研究而开发的。您可以从该大学的网站上下载它(见 参考资料),或者通过 Eucalyptus PublicCloud 体验它,不过后者有一些限制。 另一个 EC2 风格的 IaaS 是 Enomalism 云计算平台。Enomalism 是一个开放源代码项目,它提供了一个功能类似于 EC2 的云计算框架。Enomalism 基于 Linux,同时支持 Xen 和 Kernel Virtual Machine(KVM)。与其他纯 IaaS 解决方案不同的是,Enomalism 提供了一个基于 TurboGears Web 应用程序框架和 Python 的软件栈。(eNet硅谷动力)
分享到:
评论

相关推荐

    开源代码及Linux系统在云计算中应用.pdf

    开源代码及Linux系统在云计算中应用.pdf

    嵌入式系统/ARM技术中的开源代码及Linux系统在云计算中应用

    虽然虚拟化不是一个新概念,但是通过服务器虚拟化实现的物理系统共享,的确能使资源的可伸缩性大得多,效率也高得多。云计算使用户可以访问大规模计算和存储资源,而且他们不必知道那些资源的位置及其是如何配置的。...

    Linux系统设计-本项目包含免费的XJGARSDK及示例开源代码

    本项目包含免费的XJGARSDK及示例开源代码。XJGARSDK是一个免费的跨平台实时视频处理库,只需学会一套API就可以在MAC、Windows、Linux、IOS、Android等主流操作系统,提供了业界领先的视频磨皮美颜、视频滤镜、人脸...

    云计算第二版

    7.3.1 在Linux系统中安装Eucalyptus 233 7.3.2 Eucalyptus配置和管理 236 7.3.3 Eucalyptus常用命令的示例和说明 238 习题 240 参考文献 240 第8章 其他开源云计算系统 241 8.1 简介 241 8.1.1 Cassandra 241 8.1.2 ...

    云计算应用实例.doc

    "蓝云"基于IBM Almaden研究中心的云基础架构,采用了Xen和PowerVM虚拟化软件,Linux操作系统映像 以及Hadoop软件(Google File System以及MapReduce的开源实现)。IBM已经正式推出了基于x86芯片服务器系统的"蓝云 ...

    本项目包含免费的XJGARSDK及示例开源代码。.zip

    本项目包含免费的XJGARSDK及示例开源代码。XJGARSDK是一个免费的跨平台实时视频处理库,只需学会一套API就可以在MAC、Windows、Linux、IOS、Android等主流操作系统,提供了业界领先的视频磨皮美颜、视频滤镜、人脸...

    1《云计算技术》课程标准.doc

    学生应先修《网 络操作系统应用与配置》一课,掌握Linux的基础知识和操作后,方可修本课程。 三、课程设计思路 本课程的设计思路是以计算机专业学生就业为导向,着重培养学生的动手能力。通过 调查研究社会对云计算...

    2020年浙江省智能车竞赛二等奖开源代码.zip

    操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习...

    云计算技术课程标准.docx

    学生应先修《网络操作系统应用与配置》一课,掌握Linux的基础知识和操作后,方可修本课程。 三、课程设计思路 本课程的设计思路是以计算机专业学生就业为导向,着重培养学生的动手能力。通过调查研究社会对云计算的...

    《云计算技术》课程标准.docx

    学生应先修《网络操作系统应用与配置》一课,掌握Linux的基础知识和操作后,方可修本课程。 三、课程设计思路 本课程的设计思路是以计算机专业学生就业为导向,着重培养学生的动手能力。通过调查研究社会对云计算的...

    《云计算技术》课程标准.doc

    学生应先修《网 络操作系统应用与配置》一课,掌握Linux的基础知识和操作后,方可修本课程。 三、课程设计思路 本课程的设计思路是以计算机专业学生就业为导向,着重培养学生的动手能力。通过 调查研究社会对云计算...

    2《云计算技术》课程标准.doc

    学生应先修《网 络操作系统应用与配置》一课,掌握Linux的基础知识和操作后,方可修本课程。 三、课程设计思路 本课程的设计思路是以计算机专业学生就业为导向,着重培养学生的动手能力。通过 调查研究社会对云计算...

    PHP台账管理系统,实现业务员提成和客户对账.zip

    操作系统:LInux、Android树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全...

    DDuilib一个建立在C++开源项目duilib.zip

    DDuilib是一个建立在C++开源项目duilib之上,且最大限度不去修改duilib源代码从而可以应用在Delphi或者FreePascal中构建Direcut UI的开源项目(作者已弃坑)。 软件开发设计:应用软件开发、系统软件开发、移动应用...

    JAVA上百实例源码以及开源项目源代码

    Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。...

    旅游自助系统。分为Android APP和Web管理系统JAVA旅游自助系统.zip

    分为Android APP和Web管理系统JAVA旅游自助系统, 是一套开源的项目,系统具有完整的源代码和数据库,以及配套的文档。因为是一个课程设计,功能很简单,所以只能参考学习 软件开发设计:PHP、QT、应用软件开发、...

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    基于Android 的旅游自助系统的设计与实现(包括论文、源程序、数据库等).zip

    分为Android APP和Web管理系统JAVA旅游自助系统, 是一套开源的项目,系统具有完整的源代码和数据库,以及配套的文档 软件开发设计:PHP、QT、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python...

    Vue全家桶 + Koa+Socket+Vant前后端分离移动端聊天应用。vue+node全栈入门项目.zip

    软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...

Global site tag (gtag.js) - Google Analytics