云计算技术

来源:互联网 发布:程序员书籍推荐 编辑:程序博客网 时间:2024/04/29 01:18

1、概念

云计算(cloudcomputing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。

美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。XenSystem,以及在国外已经非常成熟的Intel 和IBM,各种“云计算”的应用服务范围正日渐扩大,影响力也无可估量。

2、服务形式

云计算可以认为包括以下几个层次的服务:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。

IaaS(Infrastructure-as-a-Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。

PaaS(Platform-as-a-Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。

SaaS(Software-as-a-Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。

3、云计算平台

国外云计算平台

  • http://aws.amazon.com/cn/
  • https://cloud.google.com/
  • http://www.ibm.com/cloud-computing/cn/zh/
  • http://azure.microsoft.com/zh-cn/
  • https://cloud.oracle.com
  • http://pivotal.io/platform-as-a-service/pivotal-cloud-foundry (Pivotal是由通用电器、EMC 和 VMware 联合组成的合资公司)
  • https://www.openshift.com/ (Red Hat)

国内云计算平台

  • https://www.aliyun.com/
  • https://cloud.baidu.com/
  • https://www.qcloud.com/
  • https://www.jcloud.com/
  • https://sinacloud.com/
  • https://www.hwclouds.com/
  • http://www.inspur.com/

4、云计算技术

构建云计算基础实施的开源软件

http://www.openstack.org/

OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。

OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。

OpenStack云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。

OpenStack 包含两个主要模块:Nova 和 Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspace开发的分布式云存储模块,两者可以一起用,也可以分开单独用。

OpenStack是IaaS(基础设施即服务)组件,让任何人都可以自行建立和提供云端运算服务。此外,OpenStack也用作建立防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。

http://cloudstack.apache.org/

CloudStack是一个开源的具有高可用性及扩展性的云计算平台。支持管理大部分主流的hypervisors,如KVM,XenServer,VMware,Oracle VM,Xen等。

同时CloudStack是一个开源云计算解决方案。可以加速高伸缩性的公共和私有云(IaaS)的部署、管理、配置。使用CloudStack作为基础,数据中心操作者可以快速方便的通过现存基础架构创建云服务。

构建云计算应用运行环境的开源软件

http://www.cloudfoundry.org/

Cloud Foundry是一个开源的平台即服务,它提供给开发者自由度去选择云平台,开发框架和应用服务。

Cloud Foundry是VMware于2011年4月12日推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。同时,它本身是一个基于Ruby on Rails的由多个相对独立的子系统通过消息机制组成的分布式系统,使平台在各层级都可水平扩展,既能在大型数据中心里运行,也能运行在一台桌面电脑中,二者使用相同的代码库。

作为新一代云应用平台,Cloud Foundry专为私有云计算环境、企业级数据中心和公有云服务提供商所打造。Cloud Foundry云平台可以简化现代应用程序的开发、交付和运行过程,在面对多种公有云和私有云选择、符合业界标准的高效开发框架以及应用基础设施服务时,可以显著提高开发者在云环境中部署和运行应用程序的能力。

虚拟化技术

https://linuxcontainers.org/

LXC为Linux Container的简写。Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。

Linux Container提供了在单一可控主机节点上支持多个相互隔离的server container同时执行的机制。Linux Container有点像chroot,提供了一个拥有自己进程和网络空间的虚拟环境,但又有别于虚拟机,因为lxc是一种操作系统层次上的资源的虚拟化。

https://www.docker.com/

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包括系统。

http://www.xenproject.org/

Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。

http://www.linux-kvm.org/

Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。

KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

Hyper-V : https://technet.microsoft.com/zh-cn/library/cc753637(v=ws.10).aspx

通过 Windows Server 2008 和 Windows Server 2008 R2 中的 Hyper-V 可以创建虚拟化的服务器计算环境。可以使用虚拟化的计算环境,利用多种硬件资源来提高计算资源的效率。这是可能实现的,因为您是使用 Hyper-V 来创建和管理虚拟机并管理其资源的。每个虚拟机都是在独立执行环境中运行的虚拟化计算机系统。这允许您在一台物理计算机上同时运行多个操作系统。

http://www.vmware.com/cn/

VMware 是业界领先的虚拟化软件公司。我们的技术能够简化 IT 的复杂性,优化运维,帮助企业变得更加敏捷、高效,利润更加丰厚。从数据中心到云计算再到移动设备,通过虚拟化各类基础架构,我们使得 IT 能够随时随地通过任何设备交付服务。

大数据技术

http://hadoop.apache.org/

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

Hadoop子项目:

Hadoop Common: 在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common

HDFS: Hadoop分布式文件系统(Distributed File System) - HDFS (Hadoop Distributed File System)

MapReduce:并行计算框架,0.20前使用 org.apache.hadoop.mapred 旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新API

HBase: 类似Google BigTable的分布式NoSQL列数据库。(HBase和Avro已经于2010年5月成为顶级 Apache 项目)

Hive:数据仓库工具,由Facebook贡献。

Zookeeper:分布式锁设施,提供类似Google Chubby的功能,由Facebook贡献。

Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。

Pig: 大数据分析平台,为用户提供多种接口。

Ambari:Hadoop管理工具,可以快捷的监控、部署、管理集群。

Sqoop:于在HADOOP与传统的数据库间进行数据的传递。

http://storm.apache.org/

Twitter开源的Storm正式开源是一个分布式的、容错的实时计算系统。Storm为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。 Storm也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。 Storm的主工程师Nathan Marz表示:“Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm用于实时处理,就好比 Hadoop 用于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。更棒的是你可以使用任意编程语言来做开发。”

http://spark.apache.org/

Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的分布式计算系统。Spark拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。

其他参考资源

云计算的核心技术有哪些? http://lihaigang.baijia.baidu.com/article/5140

(原文发表于:www.wangdandong.com/2015/03/25/introduction-of-cloud-computing.html)

0 0
原创粉丝点击