云计算概述(摘自《云计算 从基础架构到最佳实践》)

来源:互联网 发布:python需要那些插件 编辑:程序博客网 时间:2024/06/05 23:09

001: 云计算的关键特征:


1)网络是实现云计算的基础。云计算时代的用户将严重依赖网络,只有网络畅通才能按需向用户提供服务。

2)云计算提供按需分配和使用计算资源、存储资源和应用资源的能力。


云计算前驱:

a. 电厂模式

b. 效用计算(utility computing)

c. 网格计算 (grid computing)


002: 从服务产品看云计算


1)Amazon云计算


1. Amazon EC2

Amazon Elastic Computing Cloud (EC2, 亚马逊弹性计算云)——是Amazon向公共用户出租虚拟机的商业化服务。

EC2由Amazon Machine Image (AMI)、EC2虚拟机实例和AMI运行环境组成。


2. Amazon S3

Amazon Simple Storage Service (S3) 是云计算平台提供的可靠的虚拟存储服务,通过S3,个人用户可以将自己的数据存储在云上,通过互联网进行访问和管理。

3. Amazon SimpleDB

Amazon SimpleDB 是一种支持结构化数据存储和查询操作的轻量化数据库服务。


4. Amazon SQS

Amazon Simple Queue Service (SQS) 是一种用于分布式应用组件之间的数据传递的消息队列服务,这些组件可以分布在不同的计算机上。


003:Google云计算服务

Google公司拥有目前全球最大规模的互联网搜索引擎,并在海量数据处理方面拥有先进的技术,如分布式文件系统GFS、分布式存储服务Datastore及分布式计算框架MapReduce等。

2008年google推出了Google AppEngine(GAE)Web 运行平台,使用户的应用可以运行在Google分布式基础设施之上。
GAE平台支持Python和Java两种编程语言。

GAE不同于EC2,EC2的目标是为了提供一个分布式的、可伸缩的、高可靠的虚拟机环境。GAE更专注于提供一个开发简单、部署方便、伸缩快捷的Web应用运行和管理平台。


GAE平台主要有5个模块组成:

1)应用服务器,主要用于接收来自外部的Web请求。

2)Datastore, 主要用于对信息进行持久化,并基于Google的BigTable技术。

3)服务,自带很多服务帮助开发者,比如Memcache、邮件、网页抓取、任务队列和XMPP。

4)管理界面。

5)本地开发环境。


004:Salesforce云计算服务


005: 云计算服务


1)SaaS (Software as a Service), 软件即服务也称软件运营服务模式,可以称为应用云,为用户提供可以直接使用的应用,用户只需管理维护自己的业务数据,典型代表:Salesforce云服务。

2)Paas (Platform as a Service), 平台即服务也称平台服务模式,可以称作平台云,为用户提供一个托管平台,用户可以将他们开发和运营的应用托管到云平台,用户需要管理维护自己的应用程序。

3)IaaS (Infrasture as a Service), 基础设施即服务也称基础设施服务模式,可以称作基础设施云,为用户提供虚拟机操作系统,或是底层的、接近于直接操作硬件资源的服务接口。


006:并行计算

云计算的萌芽应始于计算机并行计算,并行计算的出现是人们不满足于CPU摩尔定律的增长速度,希望把多个计算机并联起来,从而获得更快的速度。并行计算主要满足科学和技术领域的专业需要,其应用领域大多限于科学领域。

并行计算的一个代表技术是MPI(Message Passing Interface, 消息传递接口)。MPI最为著名且被广泛使用的一个具体实现是有美国Argonne国家实验室开发小组完成的MPICH,MPICH是一个免费软件,其以函数库的形式提供给开发者,而不是一种新的应用方式。MPICH提供对Fortran和C等编程软件的支持。


1. MPI函数

2. MapReduce算法

图领奖获得者著名的人工智能专家John McCarthy在1956年首次提出了Lisp语言的构想,而在Lisp语言中包含了Map/Reduce功能。


Lisp中的Map和Reduce:

1)Map操作是将;两个操作相乘,如向量(1 2 3 4 5)和向量(10 9 8 7 6),Map操作的输出为(10 18 24 28 30).

2)Reduce操作是将向量中的元素求和,如向量(1 2 3 4 5 6 7 8 9 10), reduce操作输出为55.

在并行计算中,将大的计算任务分割并映射(Map)到多个节点上,在对分布的并行计算结果进行归约(Reduce)。


3. MPI的遗留问题

MPI是一种标准的并行计算程序设计方法,现在的大量数值计算程序都是采用MPI编程。MPI的编程方式能够比较好的应付计算密集型问题,然而对于数据密集型的应用则显得较为吃力。

在MPI中,计算与数据是分开的,子节点往往只负责计算工作,所有的数据都需要从主节点通过网络传向子节点,大量的数据需要节点间进行交换,网络通信将成为制约系统性能的重要因素。

这种分布式计算是将数据向计算资源移动的模式,主要适用于科学计算领域。

另外,MPI在设计理念上假设了服务器是不会失效的,所有节点和网络通信在计算过程是有可靠性保证的,在运行过程中出现节点失效及网络通信中断时,没有提供处理节点失效的备份机制,只有返回并退出,将重新开始计算。

分析上述问题的原因,主要是因为没有分布式文件系统的支持,特别是带有数据块备份能力的分布式文件系统。




0 0
原创粉丝点击